{"title":"男-車衣","description":"","products":[{"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":"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":"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-altitude-ls-jersey-dark-brown","title":"เสื้อจักรยานแขนยาวผู้ชาย รุ่น Altitude \/ สีน้ำตาลเข้ม","description":"ttbici a Line Altitude LS Jersey\u003cbr\u003e\r\nออกแบบมาสำหรับสภาพอากาศเย็นถึงหนาว ให้สมดุลที่แม่นยำระหว่างความอบอุ่นและความเร็ว ทรงเสื้อแบบกระชับแนบลำตัวสะท้อน DNA\r\nสายเรซของ A Line อย่างชัดเจน ช่วยลดแรงต้านอากาศและรองรับท่าทางการปั่นที่มีประสิทธิภาพสูงสุด\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าน้ำหนักปานกลางให้ความอบอุ่นอย่างสม่ำเสมอ พร้อมคุณสมบัติระบายอากาศและดูดซับความชื้นได้ดี\r\nช่วยควบคุมอุณหภูมิร่างกายในช่วงการปั่นความเข้มข้นสูง โครงสร้างน้ำหนักเบาและเส้นสายดีไซน์ที่สะอาด เรียบคม\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\t\u003cmeta charset=\"UTF-8\" \/\u003e\r\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n\t\u003cstyle\u003e\r\n\t\tbody.product-modal-open {\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.product-modal-overlay {\r\n\t\t\tdisplay: none;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\twidth: 100vw;\r\n\t\t\theight: 100vh;\r\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\t\tbackdrop-filter: blur(2px);\r\n\t\t\tz-index: 1000;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t}\r\n\r\n\t\t.product-modal {\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 20px;\r\n\t\t\t\/* border-radius: 10px; *\/\r\n\t\t\tmax-width: 600px;\r\n\t\t\twidth: 90%;\r\n\t\t\tmax-height: 90vh;\r\n\t\t\toverflow-y: auto;\r\n\t\t\tposition: relative;\r\n\t\t}\r\n\r\n\t\t.product-modal .modal-close {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 10px;\r\n\t\t\tright: 12px;\r\n\t\t\tfont-size: 20px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 統一按鈕樣式 *\/\r\n\t\t.button-group {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 12px;\r\n\t\t\tpadding-top: 20px;\r\n\t\t}\r\n\r\n\t\t.button-group button {\r\n\t\t\tpadding: 0px;\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\tcolor: #333;\r\n\t\t\tcursor: pointer;\r\n\t\t\t\/* border-radius: 5px; *\/\r\n\t\t\tfont-size: 15px;\r\n\t\t\tfont-family: 'Microsoft JhengHei';\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\r\n\t\t.button-group button.active {\r\n\t\t\t\/* background-color: #444; *\/\r\n\t\t}\r\n\r\n\t\tbutton:active {\r\n\t\t\tbox-shadow: none !important;\r\n\t\t\tcolor: #333 !important;\r\n\t\t}\r\n\r\n\t\t.product-modal table {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.product-modal th,\r\n\t\t.product-modal td {\r\n\t\t\tborder-bottom: 1px solid #ddd;\r\n\t\t\ttext-align: center;\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 新增的欄寬限制 *\/\r\n\t\t.product-modal table th:first-child,\r\n\t\t.product-modal table td:first-child {\r\n\t\t\twidth: 15%;\r\n\t\t\tmax-width: 15%;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle-wrapper {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 10px;\r\n\t\t\tmargin: 10px 0 20px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 50px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle input {\r\n\t\t\topacity: 0;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider {\r\n\t\t\tposition: absolute;\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground-color: #ccc;\r\n\t\t\tborder-radius: 24px;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tright: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\ttransition: 0.4s;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider:before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\theight: 18px;\r\n\t\t\twidth: 18px;\r\n\t\t\tleft: 3px;\r\n\t\t\tbottom: 3px;\r\n\t\t\tbackground-color: white;\r\n\t\t\ttransition: 0.4s;\r\n\t\t\tborder-radius: 50%;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider {\r\n\t\t\tbackground-color: #333;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider:before {\r\n\t\t\ttransform: translateX(26px);\r\n\t\t}\r\n\r\n\t\t.product-modal .modalInnerContent h3 {\r\n\t\t\tpadding: 20px 0;\r\n\r\n\t\t}\r\n\t\u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n\t\u003c!-- 外部觸發按鈕 --\u003e\r\n\t\u003cdiv class=\"button-group\"\u003e\r\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003c!-- Modal --\u003e\r\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內部選單 --\u003e\r\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\t\t\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內容區 --\u003e\r\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n\t\t\u003c\/div\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003cscript\u003e\r\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\r\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tfunction openModal(defaultTab) {\r\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\r\n\t\t\tmodalOverlay.style.display = \"flex\";\r\n\t\t\tswitchTab(defaultTab);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tmodalOverlay.style.display = \"none\";\r\n\t\t\tmodalInner.innerHTML = \"\";\r\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\r\n\t\t}\r\n\r\n\t\tfunction switchTab(tab) {\r\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\r\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\r\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\r\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n\t\t\tif (tab === 'shipping') {\r\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n\t\t\t} else if (tab === 'care') {\r\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\r\n\t\t\t\tmodalInner.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\t\t\t\trenderSizeTable('cm');\r\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderSizeTable(unit) {\r\n\t\t\tconst body = document.getElementById(\"tableBody\");\r\n\t\t\tbody.innerHTML = \"\";\r\n\t\t\tsizeData[unit].forEach(row =\u003e {\r\n\t\t\t\tbody.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\t\t\t});\r\n\t\t}\r\n\t\u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48900751982816,"sku":"B6TC-A10-BR0XSM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48900752015584,"sku":"B6TC-A10-BR00SM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48900752048352,"sku":"B6TC-A10-BR00MM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48900752081120,"sku":"B6TC-A10-BR00LM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48900752113888,"sku":"B6TC-A10-BR0XLM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48900752146656,"sku":"B6TC-A10-BR2XLM","price":4680.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-altitude-ls-jersey-dark-brown01_1_1_1_1_1_1_1.jpg?v=1772785754"},{"product_id":"a-line-men-s-altitude-ls-jersey-bronze-mist","title":"เสื้อจักรยานแขนยาวผู้ชาย รุ่น Altitude \/ สีบรอนซ์หมอก","description":"ttbici a Line Altitude LS Jersey\u003cbr\u003e\r\nออกแบบมาสำหรับสภาพอากาศเย็นถึงหนาว ให้สมดุลที่แม่นยำระหว่างความอบอุ่นและความเร็ว ทรงเสื้อแบบกระชับแนบลำตัวสะท้อน DNA\r\nสายเรซของ A Line อย่างชัดเจน ช่วยลดแรงต้านอากาศและรองรับท่าทางการปั่นที่มีประสิทธิภาพสูงสุด\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าน้ำหนักปานกลางให้ความอบอุ่นอย่างสม่ำเสมอ พร้อมคุณสมบัติระบายอากาศและดูดซับความชื้นได้ดี\r\nช่วยควบคุมอุณหภูมิร่างกายในช่วงการปั่นความเข้มข้นสูง โครงสร้างน้ำหนักเบาและเส้นสายดีไซน์ที่สะอาด เรียบคม\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\t\u003cmeta charset=\"UTF-8\" \/\u003e\r\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n\t\u003cstyle\u003e\r\n\t\tbody.product-modal-open {\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.product-modal-overlay {\r\n\t\t\tdisplay: none;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\twidth: 100vw;\r\n\t\t\theight: 100vh;\r\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\t\tbackdrop-filter: blur(2px);\r\n\t\t\tz-index: 1000;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t}\r\n\r\n\t\t.product-modal {\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 20px;\r\n\t\t\t\/* border-radius: 10px; *\/\r\n\t\t\tmax-width: 600px;\r\n\t\t\twidth: 90%;\r\n\t\t\tmax-height: 90vh;\r\n\t\t\toverflow-y: auto;\r\n\t\t\tposition: relative;\r\n\t\t}\r\n\r\n\t\t.product-modal .modal-close {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 10px;\r\n\t\t\tright: 12px;\r\n\t\t\tfont-size: 20px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 統一按鈕樣式 *\/\r\n\t\t.button-group {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 12px;\r\n\t\t\tpadding-top: 20px;\r\n\t\t}\r\n\r\n\t\t.button-group button {\r\n\t\t\tpadding: 0px;\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\tcolor: #333;\r\n\t\t\tcursor: pointer;\r\n\t\t\t\/* border-radius: 5px; *\/\r\n\t\t\tfont-size: 15px;\r\n\t\t\tfont-family: 'Microsoft JhengHei';\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\r\n\t\t.button-group button.active {\r\n\t\t\t\/* background-color: #444; *\/\r\n\t\t}\r\n\r\n\t\tbutton:active {\r\n\t\t\tbox-shadow: none !important;\r\n\t\t\tcolor: #333 !important;\r\n\t\t}\r\n\r\n\t\t.product-modal table {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.product-modal th,\r\n\t\t.product-modal td {\r\n\t\t\tborder-bottom: 1px solid #ddd;\r\n\t\t\ttext-align: center;\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 新增的欄寬限制 *\/\r\n\t\t.product-modal table th:first-child,\r\n\t\t.product-modal table td:first-child {\r\n\t\t\twidth: 15%;\r\n\t\t\tmax-width: 15%;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle-wrapper {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 10px;\r\n\t\t\tmargin: 10px 0 20px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 50px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle input {\r\n\t\t\topacity: 0;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider {\r\n\t\t\tposition: absolute;\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground-color: #ccc;\r\n\t\t\tborder-radius: 24px;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tright: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\ttransition: 0.4s;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider:before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\theight: 18px;\r\n\t\t\twidth: 18px;\r\n\t\t\tleft: 3px;\r\n\t\t\tbottom: 3px;\r\n\t\t\tbackground-color: white;\r\n\t\t\ttransition: 0.4s;\r\n\t\t\tborder-radius: 50%;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider {\r\n\t\t\tbackground-color: #333;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider:before {\r\n\t\t\ttransform: translateX(26px);\r\n\t\t}\r\n\r\n\t\t.product-modal .modalInnerContent h3 {\r\n\t\t\tpadding: 20px 0;\r\n\r\n\t\t}\r\n\t\u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n\t\u003c!-- 外部觸發按鈕 --\u003e\r\n\t\u003cdiv class=\"button-group\"\u003e\r\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003c!-- Modal --\u003e\r\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內部選單 --\u003e\r\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\t\t\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內容區 --\u003e\r\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n\t\t\u003c\/div\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003cscript\u003e\r\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\r\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tfunction openModal(defaultTab) {\r\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\r\n\t\t\tmodalOverlay.style.display = \"flex\";\r\n\t\t\tswitchTab(defaultTab);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tmodalOverlay.style.display = \"none\";\r\n\t\t\tmodalInner.innerHTML = \"\";\r\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\r\n\t\t}\r\n\r\n\t\tfunction switchTab(tab) {\r\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\r\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\r\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\r\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n\t\t\tif (tab === 'shipping') {\r\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n\t\t\t} else if (tab === 'care') {\r\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\r\n\t\t\t\tmodalInner.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\t\t\t\trenderSizeTable('cm');\r\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderSizeTable(unit) {\r\n\t\t\tconst body = document.getElementById(\"tableBody\");\r\n\t\t\tbody.innerHTML = \"\";\r\n\t\t\tsizeData[unit].forEach(row =\u003e {\r\n\t\t\t\tbody.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\t\t\t});\r\n\t\t}\r\n\t\u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48900752474336,"sku":"B6TC-A10-AM0XSM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48900752507104,"sku":"B6TC-A10-AM00SM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48900752539872,"sku":"B6TC-A10-AM00MM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48900752572640,"sku":"B6TC-A10-AM00LM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48900752605408,"sku":"B6TC-A10-AM0XLM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48900752638176,"sku":"B6TC-A10-AM2XLM","price":4680.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-altitude-ls-jersey-bronze-mist01_1_1_1_1_1_1.jpg?v=1772785766"},{"product_id":"a-line-men-s-altitude-ls-jersey-crown-blue","title":"เสื้อจักรยานแขนยาวผู้ชาย รุ่น Altitude \/ สีคราวน์บลู","description":"ttbici a Line Altitude LS Jersey\u003cbr\u003e\r\nออกแบบมาสำหรับสภาพอากาศเย็นถึงหนาว ให้สมดุลที่แม่นยำระหว่างความอบอุ่นและความเร็ว ทรงเสื้อแบบกระชับแนบลำตัวสะท้อน DNA\r\nสายเรซของ A Line อย่างชัดเจน ช่วยลดแรงต้านอากาศและรองรับท่าทางการปั่นที่มีประสิทธิภาพสูงสุด\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าน้ำหนักปานกลางให้ความอบอุ่นอย่างสม่ำเสมอ พร้อมคุณสมบัติระบายอากาศและดูดซับความชื้นได้ดี\r\nช่วยควบคุมอุณหภูมิร่างกายในช่วงการปั่นความเข้มข้นสูง โครงสร้างน้ำหนักเบาและเส้นสายดีไซน์ที่สะอาด เรียบคม\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\t\u003cmeta charset=\"UTF-8\" \/\u003e\r\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n\t\u003cstyle\u003e\r\n\t\tbody.product-modal-open {\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.product-modal-overlay {\r\n\t\t\tdisplay: none;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\twidth: 100vw;\r\n\t\t\theight: 100vh;\r\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\t\tbackdrop-filter: blur(2px);\r\n\t\t\tz-index: 1000;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t}\r\n\r\n\t\t.product-modal {\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 20px;\r\n\t\t\t\/* border-radius: 10px; *\/\r\n\t\t\tmax-width: 600px;\r\n\t\t\twidth: 90%;\r\n\t\t\tmax-height: 90vh;\r\n\t\t\toverflow-y: auto;\r\n\t\t\tposition: relative;\r\n\t\t}\r\n\r\n\t\t.product-modal .modal-close {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 10px;\r\n\t\t\tright: 12px;\r\n\t\t\tfont-size: 20px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 統一按鈕樣式 *\/\r\n\t\t.button-group {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 12px;\r\n\t\t\tpadding-top: 20px;\r\n\t\t}\r\n\r\n\t\t.button-group button {\r\n\t\t\tpadding: 0px;\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\tcolor: #333;\r\n\t\t\tcursor: pointer;\r\n\t\t\t\/* border-radius: 5px; *\/\r\n\t\t\tfont-size: 15px;\r\n\t\t\tfont-family: 'Microsoft JhengHei';\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\r\n\t\t.button-group button.active {\r\n\t\t\t\/* background-color: #444; *\/\r\n\t\t}\r\n\r\n\t\tbutton:active {\r\n\t\t\tbox-shadow: none !important;\r\n\t\t\tcolor: #333 !important;\r\n\t\t}\r\n\r\n\t\t.product-modal table {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.product-modal th,\r\n\t\t.product-modal td {\r\n\t\t\tborder-bottom: 1px solid #ddd;\r\n\t\t\ttext-align: center;\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 新增的欄寬限制 *\/\r\n\t\t.product-modal table th:first-child,\r\n\t\t.product-modal table td:first-child {\r\n\t\t\twidth: 15%;\r\n\t\t\tmax-width: 15%;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle-wrapper {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 10px;\r\n\t\t\tmargin: 10px 0 20px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 50px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle input {\r\n\t\t\topacity: 0;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider {\r\n\t\t\tposition: absolute;\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground-color: #ccc;\r\n\t\t\tborder-radius: 24px;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tright: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\ttransition: 0.4s;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider:before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\theight: 18px;\r\n\t\t\twidth: 18px;\r\n\t\t\tleft: 3px;\r\n\t\t\tbottom: 3px;\r\n\t\t\tbackground-color: white;\r\n\t\t\ttransition: 0.4s;\r\n\t\t\tborder-radius: 50%;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider {\r\n\t\t\tbackground-color: #333;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider:before {\r\n\t\t\ttransform: translateX(26px);\r\n\t\t}\r\n\r\n\t\t.product-modal .modalInnerContent h3 {\r\n\t\t\tpadding: 20px 0;\r\n\r\n\t\t}\r\n\t\u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n\t\u003c!-- 外部觸發按鈕 --\u003e\r\n\t\u003cdiv class=\"button-group\"\u003e\r\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003c!-- Modal --\u003e\r\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內部選單 --\u003e\r\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\t\t\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內容區 --\u003e\r\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n\t\t\u003c\/div\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003cscript\u003e\r\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\r\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tfunction openModal(defaultTab) {\r\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\r\n\t\t\tmodalOverlay.style.display = \"flex\";\r\n\t\t\tswitchTab(defaultTab);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tmodalOverlay.style.display = \"none\";\r\n\t\t\tmodalInner.innerHTML = \"\";\r\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\r\n\t\t}\r\n\r\n\t\tfunction switchTab(tab) {\r\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\r\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\r\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\r\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n\t\t\tif (tab === 'shipping') {\r\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n\t\t\t} else if (tab === 'care') {\r\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\r\n\t\t\t\tmodalInner.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\t\t\t\trenderSizeTable('cm');\r\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderSizeTable(unit) {\r\n\t\t\tconst body = document.getElementById(\"tableBody\");\r\n\t\t\tbody.innerHTML = \"\";\r\n\t\t\tsizeData[unit].forEach(row =\u003e {\r\n\t\t\t\tbody.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\t\t\t});\r\n\t\t}\r\n\t\u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48900752965856,"sku":"B6TC-A10-BL0XSM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48900752998624,"sku":"B6TC-A10-BL00SM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48900753031392,"sku":"B6TC-A10-BL00MM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48900753064160,"sku":"B6TC-A10-BL00LM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48900753096928,"sku":"B6TC-A10-BL0XLM","price":4680.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48900753129696,"sku":"B6TC-A10-BL2XLM","price":4680.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-altitude-ls-jersey-crown-blue01_1_1_1_1_1_1.jpg?v=1772785776"},{"product_id":"a-line-men-s-altitude-ls-team-jersey-mylar-silver","title":"เสื้อจักรยานแขนยาวทีมผู้ชาย รุ่น Altitude \/ สีมายลาร์ซิลเวอร์","description":"ttbici a Line Altitude LS Team Jersey\u003cbr\u003e\r\nออกแบบภายใต้แนวคิดของ “กระแสอากาศ” กราฟิกบนตัวเสื้อสื่อถึงการไหลเวียนของลมที่พุ่งผ่านร่างกายอย่างลื่นไหล ลดแรงต้าน\r\nและถ่ายทอดภาพลักษณ์ของความเร็วอันบริสุทธิ์\r\n\u003cbr\u003e\u003cbr\u003e\r\nเหมาะสำหรับสภาพอากาศเย็นถึงหนาว ด้วยเนื้อผ้าน้ำหนักปานกลางที่มอบทรงกระชับสไตล์เรซ\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\t\u003cmeta charset=\"UTF-8\" \/\u003e\r\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n\t\u003cstyle\u003e\r\n\t\tbody.product-modal-open {\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.product-modal-overlay {\r\n\t\t\tdisplay: none;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\twidth: 100vw;\r\n\t\t\theight: 100vh;\r\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\t\tbackdrop-filter: blur(2px);\r\n\t\t\tz-index: 1000;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t}\r\n\r\n\t\t.product-modal {\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 20px;\r\n\t\t\t\/* border-radius: 10px; *\/\r\n\t\t\tmax-width: 600px;\r\n\t\t\twidth: 90%;\r\n\t\t\tmax-height: 90vh;\r\n\t\t\toverflow-y: auto;\r\n\t\t\tposition: relative;\r\n\t\t}\r\n\r\n\t\t.product-modal .modal-close {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 10px;\r\n\t\t\tright: 12px;\r\n\t\t\tfont-size: 20px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 統一按鈕樣式 *\/\r\n\t\t.button-group {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 12px;\r\n\t\t\tpadding-top: 20px;\r\n\t\t}\r\n\r\n\t\t.button-group button {\r\n\t\t\tpadding: 0px;\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\tcolor: #333;\r\n\t\t\tcursor: pointer;\r\n\t\t\t\/* border-radius: 5px; *\/\r\n\t\t\tfont-size: 15px;\r\n\t\t\tfont-family: 'Microsoft JhengHei';\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\r\n\t\t.button-group button.active {\r\n\t\t\t\/* background-color: #444; *\/\r\n\t\t}\r\n\r\n\t\tbutton:active {\r\n\t\t\tbox-shadow: none !important;\r\n\t\t\tcolor: #333 !important;\r\n\t\t}\r\n\r\n\t\t.product-modal table {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.product-modal th,\r\n\t\t.product-modal td {\r\n\t\t\tborder-bottom: 1px solid #ddd;\r\n\t\t\ttext-align: center;\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 新增的欄寬限制 *\/\r\n\t\t.product-modal table th:first-child,\r\n\t\t.product-modal table td:first-child {\r\n\t\t\twidth: 15%;\r\n\t\t\tmax-width: 15%;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle-wrapper {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 10px;\r\n\t\t\tmargin: 10px 0 20px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 50px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle input {\r\n\t\t\topacity: 0;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider {\r\n\t\t\tposition: absolute;\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground-color: #ccc;\r\n\t\t\tborder-radius: 24px;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tright: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\ttransition: 0.4s;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider:before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\theight: 18px;\r\n\t\t\twidth: 18px;\r\n\t\t\tleft: 3px;\r\n\t\t\tbottom: 3px;\r\n\t\t\tbackground-color: white;\r\n\t\t\ttransition: 0.4s;\r\n\t\t\tborder-radius: 50%;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider {\r\n\t\t\tbackground-color: #333;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider:before {\r\n\t\t\ttransform: translateX(26px);\r\n\t\t}\r\n\r\n\t\t.product-modal .modalInnerContent h3 {\r\n\t\t\tpadding: 20px 0;\r\n\r\n\t\t}\r\n\t\u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n\t\u003c!-- 外部觸發按鈕 --\u003e\r\n\t\u003cdiv class=\"button-group\"\u003e\r\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003c!-- Modal --\u003e\r\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內部選單 --\u003e\r\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\t\t\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內容區 --\u003e\r\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n\t\t\u003c\/div\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003cscript\u003e\r\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\r\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tfunction openModal(defaultTab) {\r\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\r\n\t\t\tmodalOverlay.style.display = \"flex\";\r\n\t\t\tswitchTab(defaultTab);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tmodalOverlay.style.display = \"none\";\r\n\t\t\tmodalInner.innerHTML = \"\";\r\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\r\n\t\t}\r\n\r\n\t\tfunction switchTab(tab) {\r\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\r\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\r\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\r\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n\t\t\tif (tab === 'shipping') {\r\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n\t\t\t} else if (tab === 'care') {\r\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\r\n\t\t\t\tmodalInner.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\t\t\t\trenderSizeTable('cm');\r\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderSizeTable(unit) {\r\n\t\t\tconst body = document.getElementById(\"tableBody\");\r\n\t\t\tbody.innerHTML = \"\";\r\n\t\t\tsizeData[unit].forEach(row =\u003e {\r\n\t\t\t\tbody.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\t\t\t});\r\n\t\t}\r\n\t\u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48900753424608,"sku":"B6TC-A10-GY0XSM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48900753457376,"sku":"B6TC-A10-GY00SM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48900753490144,"sku":"B6TC-A10-GY00MM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48900753522912,"sku":"B6TC-A10-GYGY00LM","price":4980.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48900753555680,"sku":"B6TC-A10-GY0XLM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48900753588448,"sku":"B6TC-A10-GY2XLM","price":4980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-altitude-ls-team-jersey-mylar-silver01.jpg?v=1772785786"},{"product_id":"a-line-men-s-lightweight-team-jersey-mylar-gold","title":"เสื้อจักรยานทีมผ้าน้ำหนักเบาผู้ชาย \/ สีมายลาร์โกลด์","description":"ttbici a Line Team Lightweight Jersey\u003cbr\u003e\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\t\u003cmeta charset=\"UTF-8\" \/\u003e\r\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n\t\u003cstyle\u003e\r\n\t\tbody.product-modal-open {\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.product-modal-overlay {\r\n\t\t\tdisplay: none;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\twidth: 100vw;\r\n\t\t\theight: 100vh;\r\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\t\tbackdrop-filter: blur(2px);\r\n\t\t\tz-index: 1000;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t}\r\n\r\n\t\t.product-modal {\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 20px;\r\n\t\t\t\/* border-radius: 10px; *\/\r\n\t\t\tmax-width: 600px;\r\n\t\t\twidth: 90%;\r\n\t\t\tmax-height: 90vh;\r\n\t\t\toverflow-y: auto;\r\n\t\t\tposition: relative;\r\n\t\t}\r\n\r\n\t\t.product-modal .modal-close {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 10px;\r\n\t\t\tright: 12px;\r\n\t\t\tfont-size: 20px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 統一按鈕樣式 *\/\r\n\t\t.button-group {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 12px;\r\n\t\t\tpadding-top: 20px;\r\n\t\t}\r\n\r\n\t\t.button-group button {\r\n\t\t\tpadding: 0px;\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\tcolor: #333;\r\n\t\t\tcursor: pointer;\r\n\t\t\t\/* border-radius: 5px; *\/\r\n\t\t\tfont-size: 15px;\r\n\t\t\tfont-family: 'Microsoft JhengHei';\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\r\n\t\t.button-group button.active {\r\n\t\t\t\/* background-color: #444; *\/\r\n\t\t}\r\n\r\n\t\tbutton:active {\r\n\t\t\tbox-shadow: none !important;\r\n\t\t\tcolor: #333 !important;\r\n\t\t}\r\n\r\n\t\t.product-modal table {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.product-modal th,\r\n\t\t.product-modal td {\r\n\t\t\tborder-bottom: 1px solid #ddd;\r\n\t\t\ttext-align: center;\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 新增的欄寬限制 *\/\r\n\t\t.product-modal table th:first-child,\r\n\t\t.product-modal table td:first-child {\r\n\t\t\twidth: 15%;\r\n\t\t\tmax-width: 15%;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle-wrapper {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 10px;\r\n\t\t\tmargin: 10px 0 20px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 50px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle input {\r\n\t\t\topacity: 0;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider {\r\n\t\t\tposition: absolute;\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground-color: #ccc;\r\n\t\t\tborder-radius: 24px;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tright: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\ttransition: 0.4s;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider:before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\theight: 18px;\r\n\t\t\twidth: 18px;\r\n\t\t\tleft: 3px;\r\n\t\t\tbottom: 3px;\r\n\t\t\tbackground-color: white;\r\n\t\t\ttransition: 0.4s;\r\n\t\t\tborder-radius: 50%;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider {\r\n\t\t\tbackground-color: #333;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider:before {\r\n\t\t\ttransform: translateX(26px);\r\n\t\t}\r\n\r\n\t\t.product-modal .modalInnerContent h3 {\r\n\t\t\tpadding: 20px 0;\r\n\r\n\t\t}\r\n\t\u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n\t\u003c!-- 外部觸發按鈕 --\u003e\r\n\t\u003cdiv class=\"button-group\"\u003e\r\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003c!-- Modal --\u003e\r\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內部選單 --\u003e\r\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\t\t\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內容區 --\u003e\r\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n\t\t\u003c\/div\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003cscript\u003e\r\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\r\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tfunction openModal(defaultTab) {\r\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\r\n\t\t\tmodalOverlay.style.display = \"flex\";\r\n\t\t\tswitchTab(defaultTab);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tmodalOverlay.style.display = \"none\";\r\n\t\t\tmodalInner.innerHTML = \"\";\r\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\r\n\t\t}\r\n\r\n\t\tfunction switchTab(tab) {\r\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\r\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\r\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\r\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n\t\t\tif (tab === 'shipping') {\r\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n\t\t\t} else if (tab === 'care') {\r\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\r\n\t\t\t\tmodalInner.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\t\t\t\trenderSizeTable('cm');\r\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderSizeTable(unit) {\r\n\t\t\tconst body = document.getElementById(\"tableBody\");\r\n\t\t\tbody.innerHTML = \"\";\r\n\t\t\tsizeData[unit].forEach(row =\u003e {\r\n\t\t\t\tbody.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\t\t\t});\r\n\t\t}\r\n\t\u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48900753948896,"sku":"B6TC-A11-YW0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48900753981664,"sku":"B6TC-A11-YW00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48900754014432,"sku":"B6TC-A11-YW00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48900754047200,"sku":"B6TC-A11-YW00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48900754079968,"sku":"B6TC-A11-YW0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48900754112736,"sku":"B6TC-A11-YW2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-lightweight-team-jersey-mylar-gold01_1_1_1_1_1_1.jpg?v=1772785796"},{"product_id":"a-line-men-s-lightweight-team-jersey-mylar-pink","title":"เสื้อจักรยานทีมผ้าน้ำหนักเบาผู้ชาย \/ สีมายลาร์พิงก์","description":"ttbici a Line Team Lightweight Jersey\u003cbr\u003e\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\t\u003cmeta charset=\"UTF-8\" \/\u003e\r\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n\t\u003cstyle\u003e\r\n\t\tbody.product-modal-open {\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.product-modal-overlay {\r\n\t\t\tdisplay: none;\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\twidth: 100vw;\r\n\t\t\theight: 100vh;\r\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\t\tbackdrop-filter: blur(2px);\r\n\t\t\tz-index: 1000;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t}\r\n\r\n\t\t.product-modal {\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 20px;\r\n\t\t\t\/* border-radius: 10px; *\/\r\n\t\t\tmax-width: 600px;\r\n\t\t\twidth: 90%;\r\n\t\t\tmax-height: 90vh;\r\n\t\t\toverflow-y: auto;\r\n\t\t\tposition: relative;\r\n\t\t}\r\n\r\n\t\t.product-modal .modal-close {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 10px;\r\n\t\t\tright: 12px;\r\n\t\t\tfont-size: 20px;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 統一按鈕樣式 *\/\r\n\t\t.button-group {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 12px;\r\n\t\t\tpadding-top: 20px;\r\n\t\t}\r\n\r\n\t\t.button-group button {\r\n\t\t\tpadding: 0px;\r\n\t\t\tborder: none;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\tcolor: #333;\r\n\t\t\tcursor: pointer;\r\n\t\t\t\/* border-radius: 5px; *\/\r\n\t\t\tfont-size: 15px;\r\n\t\t\tfont-family: 'Microsoft JhengHei';\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\r\n\t\t.button-group button.active {\r\n\t\t\t\/* background-color: #444; *\/\r\n\t\t}\r\n\r\n\t\tbutton:active {\r\n\t\t\tbox-shadow: none !important;\r\n\t\t\tcolor: #333 !important;\r\n\t\t}\r\n\r\n\t\t.product-modal table {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t\tmargin-top: 10px;\r\n\t\t}\r\n\r\n\t\t.product-modal th,\r\n\t\t.product-modal td {\r\n\t\t\tborder-bottom: 1px solid #ddd;\r\n\t\t\ttext-align: center;\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t\/* ✅ 新增的欄寬限制 *\/\r\n\t\t.product-modal table th:first-child,\r\n\t\t.product-modal table td:first-child {\r\n\t\t\twidth: 15%;\r\n\t\t\tmax-width: 15%;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle-wrapper {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 10px;\r\n\t\t\tmargin: 10px 0 20px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 50px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\r\n\t\t.product-modal .toggle input {\r\n\t\t\topacity: 0;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider {\r\n\t\t\tposition: absolute;\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground-color: #ccc;\r\n\t\t\tborder-radius: 24px;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t\tright: 0;\r\n\t\t\tbottom: 0;\r\n\t\t\ttransition: 0.4s;\r\n\t\t}\r\n\r\n\t\t.product-modal .slider:before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\theight: 18px;\r\n\t\t\twidth: 18px;\r\n\t\t\tleft: 3px;\r\n\t\t\tbottom: 3px;\r\n\t\t\tbackground-color: white;\r\n\t\t\ttransition: 0.4s;\r\n\t\t\tborder-radius: 50%;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider {\r\n\t\t\tbackground-color: #333;\r\n\t\t}\r\n\r\n\t\t.product-modal input:checked+.slider:before {\r\n\t\t\ttransform: translateX(26px);\r\n\t\t}\r\n\r\n\t\t.product-modal .modalInnerContent h3 {\r\n\t\t\tpadding: 20px 0;\r\n\r\n\t\t}\r\n\t\u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n\t\u003c!-- 外部觸發按鈕 --\u003e\r\n\t\u003cdiv class=\"button-group\"\u003e\r\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003c!-- Modal --\u003e\r\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內部選單 --\u003e\r\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n\t\t\t\u003c\/div\u003e\r\n\r\n\t\t\t\u003c!-- 內容區 --\u003e\r\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n\t\t\u003c\/div\u003e\r\n\t\u003c\/div\u003e\r\n\r\n\t\u003cscript\u003e\r\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\r\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n\t\tconst sizeData = {\r\n\t\t\tcm: [\r\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tfunction openModal(defaultTab) {\r\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\r\n\t\t\tmodalOverlay.style.display = \"flex\";\r\n\t\t\tswitchTab(defaultTab);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tmodalOverlay.style.display = \"none\";\r\n\t\t\tmodalInner.innerHTML = \"\";\r\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\r\n\t\t}\r\n\r\n\t\tfunction switchTab(tab) {\r\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\r\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\r\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\r\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n\t\t\tif (tab === 'shipping') {\r\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n\t\t\t} else if (tab === 'care') {\r\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\r\n\t\t\t\tmodalInner.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\t\t\t\trenderSizeTable('cm');\r\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderSizeTable(unit) {\r\n\t\t\tconst body = document.getElementById(\"tableBody\");\r\n\t\t\tbody.innerHTML = \"\";\r\n\t\t\tsizeData[unit].forEach(row =\u003e {\r\n\t\t\t\tbody.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\t\t\t});\r\n\t\t}\r\n\t\u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48900754440416,"sku":"B6TC-A11-PI0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48900754473184,"sku":"B6TC-A11-PI00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48900754505952,"sku":"B6TC-A11-PI00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48900754538720,"sku":"B6TC-A11-PI00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48900754571488,"sku":"B6TC-A11-PI0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48900754604256,"sku":"B6TC-A11-PI2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-lightweight-team-jersey-mylar-pink01_1_2.jpg?v=1772785805"},{"product_id":"ciao-wilier-2000-men-s-jersey-blue","title":"ttbici Ciao! Wilier 2000 Men's Jersey 男款車衣 \/ 藍色","description":"\u003cbody\u003e以 ttbici e Line 經典車衣為基礎，打造 CIAO! Wilier 2000 賽事紀念車衣。以獨特電繡工藝展顯低調奢華的品牌質感。注重舒適度及便利性的多元合身剪裁，使用高透氣面料製作，柔軟手感，適合溫暖氣候著用，提供優異與優雅的騎乘體驗。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n\t\u003cmeta charset=\"UTF-8\"\u003e\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\t\u003cstyle\u003e\n\t\tbody.product-modal-open {\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.product-modal-overlay {\n\t\t\tdisplay: none;\n\t\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100vw;\n\t\t\theight: 100vh;\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\tbackdrop-filter: blur(2px);\n\t\t\tz-index: 1000;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t.product-modal {\n\t\t\tbackground: white;\n\t\t\tpadding: 20px;\n\t\t\t\/* border-radius: 10px; *\/\n\t\t\tmax-width: 600px;\n\t\t\twidth: 90%;\n\t\t\tmax-height: 90vh;\n\t\t\toverflow-y: auto;\n\t\t\tposition: relative;\n\t\t}\n\n\t\t.product-modal .modal-close {\n\t\t\tposition: absolute;\n\t\t\ttop: 10px;\n\t\t\tright: 12px;\n\t\t\tfont-size: 20px;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t\/* ✅ 統一按鈕樣式 *\/\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding-top: 20px;\n\t\t}\n\n\t\t.button-group button {\n\t\t\tpadding: 0px;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #333;\n\t\t\tcursor: pointer;\n\t\t\t\/* border-radius: 5px; *\/\n\t\t\tfont-size: 15px;\n\t\t\tfont-family: 'Microsoft JhengHei';\n\t\t\ttext-decoration: underline;\n\t\t}\n\n\t\t.button-group button.active {\n\t\t\t\/* background-color: #444; *\/\n\t\t}\n\n\t\tbutton:active {\n\t\t\tbox-shadow: none !important;\n\t\t\tcolor: #333 !important;\n\t\t}\n\n\t\t.product-modal table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin-top: 10px;\n\t\t}\n\n\t\t.product-modal th,\n\t\t.product-modal td {\n\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\ttext-align: center;\n\t\t\tpadding: 8px;\n\t\t}\n\n\t\t\/* ✅ 新增的欄寬限制 *\/\n\t\t.product-modal table th:first-child,\n\t\t.product-modal table td:first-child {\n\t\t\twidth: 15%;\n\t\t\tmax-width: 15%;\n\t\t}\n\n\t\t.product-modal .toggle-wrapper {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 10px;\n\t\t\tmargin: 10px 0 20px;\n\t\t}\n\n\t\t.product-modal .toggle {\n\t\t\tposition: relative;\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 50px;\n\t\t\theight: 24px;\n\t\t}\n\n\t\t.product-modal .toggle input {\n\t\t\topacity: 0;\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t}\n\n\t\t.product-modal .slider {\n\t\t\tposition: absolute;\n\t\t\tcursor: pointer;\n\t\t\tbackground-color: #ccc;\n\t\t\tborder-radius: 24px;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\ttransition: 0.4s;\n\t\t}\n\n\t\t.product-modal .slider:before {\n\t\t\tcontent: \"\";\n\t\t\tposition: absolute;\n\t\t\theight: 18px;\n\t\t\twidth: 18px;\n\t\t\tleft: 3px;\n\t\t\tbottom: 3px;\n\t\t\tbackground-color: white;\n\t\t\ttransition: 0.4s;\n\t\t\tborder-radius: 50%;\n\t\t}\n\n\t\t.product-modal input:checked+.slider {\n\t\t\tbackground-color: #333;\n\t\t}\n\n\t\t.product-modal input:checked+.slider:before {\n\t\t\ttransform: translateX(26px);\n\t\t}\n\n\t\t.product-modal .modalInnerContent h3 {\n\t\t\tpadding: 20px 0;\n\n\t\t}\n\t\u003c\/style\u003e\n\n\n\n\n\t\u003c!-- 外部觸發按鈕 --\u003e\n\t\u003cdiv class=\"button-group\"\u003e\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n\t\u003c\/div\u003e\n\n\t\u003c!-- Modal --\u003e\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n\t\t\t\u003c!-- 內部選單 --\u003e\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n\t\t\t\u003c\/div\u003e\n\n\t\t\t\u003c!-- 內容區 --\u003e\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n\t\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cscript\u003e\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\n\n\t\tconst sizeData = {\n\t\t\tcm: [\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n\t\t\t],\n\t\t\tinches: [\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n\t\t\t]\n\t\t};\n\n\t\tfunction openModal(defaultTab) {\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\n\t\t\tmodalOverlay.style.display = \"flex\";\n\t\t\tswitchTab(defaultTab);\n\t\t}\n\n\t\tfunction closeModal() {\n\t\t\tmodalOverlay.style.display = \"none\";\n\t\t\tmodalInner.innerHTML = \"\";\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\n\t\t}\n\n\t\tfunction switchTab(tab) {\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\n\t\t\t});\n\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\n\n\t\t\tif (tab === 'shipping') {\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n\t\t\t} else if (tab === 'care') {\n\t\t\t\tmodalInner.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\t\t\t} else if (tab === 'size') {\n\t\t\t\tmodalInner.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\u003eSIZE\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\t\t\t\trenderSizeTable('cm');\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction renderSizeTable(unit) {\n\t\t\tconst body = document.getElementById(\"tableBody\");\n\t\t\tbody.innerHTML = \"\";\n\t\t\tsizeData[unit].forEach(row =\u003e {\n\t\t\t\tbody.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\t\t\t});\n\t\t}\n\t\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":52659049955552,"sku":"B6TC-CIA-MC0XSM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":52659049988320,"sku":"B6TC-CIA-MC00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":52659050021088,"sku":"B6TC-CIA-MC00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":52659050053856,"sku":"B6TC-CIA-MC00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":52659050086624,"sku":"B6TC-CIA-MC0XLM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":52659050119392,"sku":"B6TC-CIA-MC2XLM","price":2880.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/ciao-wilier-2000-men-jersey-blue_1_1_1_1_1_1_1.jpg?v=1779088363"}],"url":"https:\/\/www.ttbici.com\/th-th\/collections\/men-jerseys.oembed","provider":"TTBICI","version":"1.0","type":"link"}