{"title":"女-夏季","description":"","products":[{"product_id":"ttbici-a-line-lightweight-jacket-black","title":"เสื้อแจ็คเก็ตบางเบา รุ่น A LINE สีดำ","description":"ttbici a Line Lightweight Jacket\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อแจ็คเก็ตรุ่น A Line Lightweight Jacket ผสานวัสดุน้ำหนักเบาพิเศษเข้ากับคุณสมบัติกันลมอย่างยอดเยี่ยม เคลือบสาร DWR\r\nCoating เพื่อช่วยป้องกันละอองน้ำและความชื้น มอบการปกป้องที่เชื่อถือได้ในสภาพอากาศที่ไม่แน่นอน\r\n\u003cbr\u003e\u003cbr\u003e\r\nสามารถพับเก็บได้ในตัว พกพาสะดวก ให้คุณพร้อมรับมือฝนหรือแรงลมได้ทุกเมื่อ ปั่นได้อย่างมั่นใจไม่ว่าจะในสภาพอากาศแบบใด\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48067794731232,"sku":"B6TC-A06-BK0XSN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48067794764000,"sku":"B6TC-A06-BK00SN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48067794796768,"sku":"B6TC-A06-BK00MN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48067794829536,"sku":"B6TC-A06-BK00LN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48067794862304,"sku":"B6TC-A06-BK0XLN","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48067794895072,"sku":"B6TC-A06-BK2XLN","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05803_1.jpg?v=1761635446"},{"product_id":"ttbici-a-line-lightweight-jacket-grey","title":"เสื้อแจ็คเก็ตบางเบา รุ่น A LINE สีเทา","description":"ttbici a Line Lightweight Jacket\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้อแจ็คเก็ตรุ่น A Line Lightweight Jacket ผสานวัสดุน้ำหนักเบาพิเศษเข้ากับคุณสมบัติกันลมอย่างยอดเยี่ยม เคลือบสาร DWR\r\nCoating เพื่อช่วยป้องกันละอองน้ำและความชื้น มอบการปกป้องที่เชื่อถือได้ในสภาพอากาศที่ไม่แน่นอน\r\n\u003cbr\u003e\u003cbr\u003e\r\nสามารถพับเก็บได้ในตัว พกพาสะดวก ให้คุณพร้อมรับมือฝนหรือแรงลมได้ทุกเมื่อ ปั่นได้อย่างมั่นใจไม่ว่าจะในสภาพอากาศแบบใด\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48067794993376,"sku":"B6TC-A06-GY0XSN","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48067795026144,"sku":"B6TC-A06-GY00SN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48067795058912,"sku":"B6TC-A06-GY00MN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48067795091680,"sku":"B6TC-A06-GY00LN","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48067795124448,"sku":"B6TC-A06-GY0XLN","price":3880.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48067795157216,"sku":"B6TC-A06-GY2XLN","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05804_1.jpg?v=1761635455"},{"product_id":"ttbici-u-line-tech-t-shirt-black","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีดำ","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\r\n\u003cbr\u003e\u003cbr\u003e\r\nเป็นตัวเลือกที่เหมาะที่สุดสำหรับการปั่นไปทำงาน ปั่นในชีวิตประจำวัน หรือปั่นแบบสบาย ๆ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073386295520,"sku":"B6TC-U01-BK0XSN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073386328288,"sku":"B6TC-U01-BK00SN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073386361056,"sku":"B6TC-U01-BK00MN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073386393824,"sku":"B6TC-U01-BK00LN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073386426592,"sku":"B6TC-U01-BK0XLN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073386459360,"sku":"B6TC-U01-BK2XLN","price":1980.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05559_1.jpg?v=1761813182"},{"product_id":"ttbici-u-line-tech-t-shirt-bleached-sand","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีขาวทราย","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\r\n\u003cbr\u003e\u003cbr\u003e\r\nเป็นตัวเลือกที่เหมาะที่สุดสำหรับการปั่นไปทำงาน ปั่นในชีวิตประจำวัน หรือปั่นแบบสบาย ๆ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073386590432,"sku":"B6TC-U01-SD0XSN","price":1980.0,"currency_code":"TWD","in_stock":false},{"title":"S","offer_id":48073386623200,"sku":"B6TC-U01-SD00SN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073386655968,"sku":"B6TC-U01-SD00MN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073386688736,"sku":"B6TC-U01-SD00LN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073386721504,"sku":"B6TC-U01-SD0XLN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073386754272,"sku":"B6TC-U01-SD2XLN","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05552_1.jpg?v=1761813190"},{"product_id":"ttbici-u-line-tech-t-shirt-rum-brown","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีน้ำตาลรัม","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\r\n\u003cbr\u003e\u003cbr\u003e\r\nเป็นตัวเลือกที่เหมาะที่สุดสำหรับการปั่นไปทำงาน ปั่นในชีวิตประจำวัน หรือปั่นแบบสบาย ๆ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073386918112,"sku":"B6TC-U01-BR0XSM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073386950880,"sku":"B6TC-U01-BR00SM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073386983648,"sku":"B6TC-U01-BR00MM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073387016416,"sku":"B6TC-U01-BR00LM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073387049184,"sku":"B6TC-U01-BR0XLM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073387081952,"sku":"B6TC-U01-BR2XLM","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05554-dark_red_1.jpg?v=1761813199"},{"product_id":"ttbici-u-line-tech-t-shirt-forest-green","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีเขียวป่า","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\r\n\u003cbr\u003e\u003cbr\u003e\r\nเป็นตัวเลือกที่เหมาะที่สุดสำหรับการปั่นไปทำงาน ปั่นในชีวิตประจำวัน หรือปั่นแบบสบาย ๆ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073387180256,"sku":"B6TC-U01-GR0XSM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073387213024,"sku":"B6TC-U01-GR00SM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073387245792,"sku":"B6TC-U01-GR00MM","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073387278560,"sku":"B6TC-U01-GR00LM","price":1980.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48073387311328,"sku":"B6TC-U01-GR0XLM","price":1980.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48073387344096,"sku":"B6TC-U01-GR2XLM","price":1980.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05554-dark_green_1.jpg?v=1761813207"},{"product_id":"ttbici-u-line-tech-t-shirt-granite-grey","title":"TTBICI U LINE TECH T-SHIRT เสื้อยืดเทค \/ สีเทาแกรนิต","description":"Ttbici U Line เสื้อยืดฟังก์ชัน ออกแบบมาเพื่อการปั่นจักรยานในเมืองโดยเฉพาะ ผ้าด่วนแห้งและดูดซับเหงื่อ มอบทั้งฟังก์ชันการใช้งานและความสบายสำหรับใส่ในชีวิตประจำวัน พร้อมตะเข็บสะท้อนแสงพิเศษ ช่วยเพิ่มความปลอดภัยขณะปั่นกลางคืน\r\n\u003cbr\u003e\u003cbr\u003e\r\nเนื้อผ้าเสริมเทคโนโลยี Polygiene® ช่วยยับยั้งการเจริญเติบโตของแบคทีเรีย ควบคุมกลิ่นไม่พึงประสงค์ตั้งแต่ต้นทาง ลดความยุ่งยากจากการต้องเปลี่ยนเสื้อบ่อยๆ\r\n\u003cbr\u003e\u003cbr\u003e\r\nเป็นตัวเลือกที่เหมาะที่สุดสำหรับการปั่นไปทำงาน ปั่นในชีวิตประจำวัน หรือปั่นแบบสบาย ๆ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073398026464,"sku":"B6TC-U01-GY0XSN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073398059232,"sku":"B6TC-U01-GY00SN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073398092000,"sku":"B6TC-U01-GY00MN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073398124768,"sku":"B6TC-U01-GY00LN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073398157536,"sku":"B6TC-U01-GY0XLN","price":1980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073398190304,"sku":"B6TC-U01-GY2XLN","price":1980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05548_5.jpg?v=1761813775"},{"product_id":"ttbici-a-line-lightweight-gilet-black","title":"เสื้อกั๊กบางเบา รุ่น A LINE สีดำ","description":"ttbici a Line Lightweight Gilet\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อกั๊กบางเบารุ่น A Line Lightweight Gilet ใช้วัสดุน้ำหนักเบาแต่ป้องกันลมได้ดีเยี่ยม เคลือบ DWR Coating เพื่อป้องกันน้ำและความชื้นอย่างมีประสิทธิภาพ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบให้พับเก็บได้ง่าย พกพาสะดวก ช่วยป้องกันลมแรงหรือฝนตกกะทันหัน ให้คุณปั่นได้อย่างมั่นใจในทุกสภาพอากาศ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073429221600,"sku":"B6TC-A07-BK0XSN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073429254368,"sku":"B6TC-A07-BK00SN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073429287136,"sku":"B6TC-A07-BK00MN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073429319904,"sku":"B6TC-A07-BK00LN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073429352672,"sku":"B6TC-A07-BK0XLN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48073429385440,"sku":"B6TC-A07-BK2XLN","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05799_1.jpg?v=1761814829"},{"product_id":"ttbici-a-line-lightweight-gilet-grey","title":"เสื้อกั๊กบางเบา รุ่น A LINE สีเทา","description":"ttbici a Line Lightweight Gilet\r\n\u003cbr\u003e\u003cbr\u003e\r\nเสื้อกั๊กบางเบารุ่น A Line Lightweight Gilet ใช้วัสดุน้ำหนักเบาแต่ป้องกันลมได้ดีเยี่ยม เคลือบ DWR Coating เพื่อป้องกันน้ำและความชื้นอย่างมีประสิทธิภาพ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบให้พับเก็บได้ง่าย พกพาสะดวก ช่วยป้องกันลมแรงหรือฝนตกกะทันหัน ให้คุณปั่นได้อย่างมั่นใจในทุกสภาพอากาศ\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\r\n        { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\r\n        { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\r\n        { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\r\n        { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\r\n        { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\r\n        { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\r\n        { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\r\n        { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\r\n        { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\r\n        { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48073429483744,"sku":"B6TC-A07-GY0XSN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48073429516512,"sku":"B6TC-A07-GY00SN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48073429549280,"sku":"B6TC-A07-GY00MN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48073429582048,"sku":"B6TC-A07-GY00LN","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48073429614816,"sku":"B6TC-A07-GY0XLN","price":3280.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48073429647584,"sku":"B6TC-A07-GY2XLN","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05798_1.jpg?v=1761814838"},{"product_id":"ttbici-a-line-women-s-team-base-layer-white","title":"เสื้อเบสเลเยอร์ผู้หญิง รุ่น A LINE TEAM สีขาว","description":"ttbici a Line Base Layer\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้ออินเนอร์รุ่น A Line Base Layer ผลิตจากผ้าเนื้อนุ่ม แห้งเร็ว และระบายอากาศดีเยี่ยม\r\nโครงสร้างผ้าที่ช่วยดูดซับเหงื่อและควบคุมอุณหภูมิของร่างกายได้อย่างมีประสิทธิภาพ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาสำหรับสภาพอากาศอบอุ่น มอบความสบายสูงสุดและช่วยเพิ่มประสิทธิภาพในการปั่นทุกครั้ง\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48076929827040,"sku":"B6TC-A05-WH0XSW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48076929859808,"sku":"B6TC-A05-WH00SW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48076929892576,"sku":"B6TC-A05-WH00MW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48076929925344,"sku":"B6TC-A05-WH00LW","price":1580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05760-_-__4.jpg?v=1761900679"},{"product_id":"ttbici-a-line-women-s-team-base-layer-lime","title":"เสื้อเบสเลเยอร์ผู้หญิง รุ่น A LINE TEAM สีเขียวมะนาว","description":"ttbici a Line Base Layer\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้ออินเนอร์รุ่น A Line Base Layer ผลิตจากผ้าเนื้อนุ่ม แห้งเร็ว และระบายอากาศดีเยี่ยม\r\nโครงสร้างผ้าที่ช่วยดูดซับเหงื่อและควบคุมอุณหภูมิของร่างกายได้อย่างมีประสิทธิภาพ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาสำหรับสภาพอากาศอบอุ่น มอบความสบายสูงสุดและช่วยเพิ่มประสิทธิภาพในการปั่นทุกครั้ง\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48076929990880,"sku":"B6TC-A05-LG0XSW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48076930023648,"sku":"B6TC-A05-LG00SW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48076930056416,"sku":"B6TC-A05-LG00MW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48076930089184,"sku":"B6TC-A05-LG00LW","price":1580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05766_1.jpg?v=1761900686"},{"product_id":"ttbici-a-line-women-s-team-base-layer-grey","title":"เสื้อเบสเลเยอร์ผู้หญิง รุ่น A LINE TEAM สีเทา","description":"ttbici a Line Base Layer\r\n\u003cbr\u003e\u003cbr\u003e\r\n\r\nเสื้ออินเนอร์รุ่น A Line Base Layer ผลิตจากผ้าเนื้อนุ่ม แห้งเร็ว และระบายอากาศดีเยี่ยม\r\nโครงสร้างผ้าที่ช่วยดูดซับเหงื่อและควบคุมอุณหภูมิของร่างกายได้อย่างมีประสิทธิภาพ\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาสำหรับสภาพอากาศอบอุ่น มอบความสบายสูงสุดและช่วยเพิ่มประสิทธิภาพในการปั่นทุกครั้ง\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48076930154720,"sku":"B6TC-A05-GY0XSW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48076930187488,"sku":"B6TC-A05-GY00SW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48076930220256,"sku":"B6TC-A05-GY00MW","price":1580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48076930253024,"sku":"B6TC-A05-GY00LW","price":1580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05760_1.jpg?v=1761900693"},{"product_id":"ttbici-a-line-women-s-lightweight-bib-shorts-black","title":"กางเกงบิบขาสั้นผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีดำ","description":"ttbici a Line Lightweight Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบขาสั้นรุ่น A Line Lightweight Bib Shorts ออกแบบเพื่อการปั่นระยะไกลและความเข้มข้นสูง ใช้ผ้ายืดคุณภาพสูง\r\nน้ำหนักเบา ระบายอากาศดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ระดับพรีเมียม\r\n\u003cbr\u003e\u003cbr\u003e\r\nให้การรองรับที่ยอดเยี่ยม ลดแรงกดทับ และช่วยให้คุณรู้สึกมั่นคงสบายตลอดเส้นทาง ไม่ว่าจะปั่นระยะสั้นหรือยาว\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082448416992,"sku":"B6TC-A03-BK0XSW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082448449760,"sku":"B6TC-A03-BK00SW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082448482528,"sku":"B6TC-A03-BK00MW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082448515296,"sku":"B6TC-A03-BK00LW","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05780_3.jpg?v=1762154487"},{"product_id":"ttbici-a-line-women-s-lightweight-bib-shorts-bronze-green","title":"กางเกงบิบขาสั้นผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีเขียว Bronze","description":"ttbici a Line Lightweight Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบขาสั้นรุ่น A Line Lightweight Bib Shorts ออกแบบเพื่อการปั่นระยะไกลและความเข้มข้นสูง ใช้ผ้ายืดคุณภาพสูง\r\nน้ำหนักเบา ระบายอากาศดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ระดับพรีเมียม\r\n\u003cbr\u003e\u003cbr\u003e\r\nให้การรองรับที่ยอดเยี่ยม ลดแรงกดทับ และช่วยให้คุณรู้สึกมั่นคงสบายตลอดเส้นทาง ไม่ว่าจะปั่นระยะสั้นหรือยาว\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082449039584,"sku":"B6TC-A03-GR0XSW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082449072352,"sku":"B6TC-A03-GR00SW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082449105120,"sku":"B6TC-A03-GR00MW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082449137888,"sku":"B6TC-A03-GR00LW","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05784_1.jpg?v=1762154499"},{"product_id":"ttbici-a-line-women-s-cargo-bib-shorts-charcoal","title":"กางเกงบิบคาร์โก้ผู้หญิง รุ่น A LINE สีเทาเข้ม Charcoal","description":"ttbici a Line Lightweight Cargo Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบคาร์โก้รุ่น A Line Lightweight Cargo Bib Shorts มาพร้อมช่องเก็บของด้านข้างและช่องตรงกลางด้านหลัง จัดเก็บของจำเป็นได้สะดวกและหยิบง่าย เหมาะอย่างยิ่งสำหรับการปั่นระยะไกล\r\n\u003cbr\u003e\u003cbr\u003e\r\nผลิตจากผ้ายืดประสิทธิภาพสูง น้ำหนักเบา ระบายอากาศได้ดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ที่ให้การรองรับและความสบายสูงสุด มอบความมั่นคงและสมรรถนะระดับพรีเมียมโดยไม่ลดทอนความคล่องตัว\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082449170656,"sku":"B6TC-A04-CH0XSW","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082449203424,"sku":"B6TC-A04-CH00SW","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082449236192,"sku":"B6TC-A04-CH00MW","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082449268960,"sku":"B6TC-A04-CH00LW","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05789-gray_1.jpg?v=1762154509"},{"product_id":"ttbici-a-line-women-s-cargo-bib-shorts-chocolate","title":"กางเกงบิบคาร์โก้ผู้หญิง รุ่น A LINE สีน้ำตาล Chocolate","description":"ttbici a Line Lightweight Cargo Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบคาร์โก้รุ่น A Line Lightweight Cargo Bib Shorts มาพร้อมช่องเก็บของด้านข้างและช่องตรงกลางด้านหลัง จัดเก็บของจำเป็นได้สะดวกและหยิบง่าย เหมาะอย่างยิ่งสำหรับการปั่นระยะไกล\r\n\u003cbr\u003e\u003cbr\u003e\r\nผลิตจากผ้ายืดประสิทธิภาพสูง น้ำหนักเบา ระบายอากาศได้ดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ที่ให้การรองรับและความสบายสูงสุด มอบความมั่นคงและสมรรถนะระดับพรีเมียมโดยไม่ลดทอนความคล่องตัว\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082449629408,"sku":"B6TC-A04-BR0XSW","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082449662176,"sku":"B6TC-A04-BR00SW","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082449694944,"sku":"B6TC-A04-BR00MW","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082449727712,"sku":"B6TC-A04-BR00LW","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05789_1.jpg?v=1762154517"},{"product_id":"ttbici-a-line-women-s-lightweight-bib-shorts-eclipse-purple","title":"กางเกงบิบขาสั้นผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีม่วง Eclipse","description":"ttbici a Line Lightweight Bib Shorts\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบขาสั้นรุ่น A Line Lightweight Bib Shorts ออกแบบเพื่อการปั่นระยะไกลและความเข้มข้นสูง ใช้ผ้ายืดคุณภาพสูง\r\nน้ำหนักเบา ระบายอากาศดี พร้อมแผ่นรองนั่ง Italian Elastic Interface Pads (E.I.T) ระดับพรีเมียม\r\n\u003cbr\u003e\u003cbr\u003e\r\nให้การรองรับที่ยอดเยี่ยม ลดแรงกดทับ และช่วยให้คุณรู้สึกมั่นคงสบายตลอดเส้นทาง ไม่ว่าจะปั่นระยะสั้นหรือยาว\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082449760480,"sku":"B6TC-A03-PG0XSW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082449793248,"sku":"B6TC-A03-PG00SW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082449826016,"sku":"B6TC-A03-PG00MW","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082449858784,"sku":"B6TC-A03-PG00LW","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05784-purple_2.jpg?v=1762154525"},{"product_id":"ttbici-e-line-women-s-classic-bib-shorts-black","title":"กางเกงบิบขาสั้นปั่นจักรยานผู้หญิง TTBICI รุ่น E LINE แบบคลาสสิก \/ สีดำ","description":"“TTBICI E Line Classic Bib Shorts”\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบปั่นจักรยาน TTBICI E Line Classic Bib Shorts ผสมผสานองค์ประกอบแบบดั้งเดิมเข้ากับนวัตกรรมร่วมสมัย ถ่ายทอดความหรูหราแบบเรียบง่ายด้วยงานปักละเอียดประณีต\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและสมรรถนะสูงสุด มาพร้อมทรงกระชับแบบตามสรีระที่ยืดหยุ่นได้ดี ช่วยให้เคลื่อนไหวได้อย่างอิสระและสวมใส่สบายตลอดวัน ผลิตจากผ้าที่มีความทนทาน ระบายความชื้นได้ดี และเสริมด้วยแผ่นรองนั่งหนาแน่นพิเศษ เพื่อมอบการรองรับและความสบายสูงสุดระหว่างการปั่นจักรยาน\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082451235040,"sku":"B6TC-E02-BK0XSW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082451267808,"sku":"B6TC-E02-BK00SW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082451300576,"sku":"B6TC-E02-BK00MW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082451333344,"sku":"B6TC-E02-BK00LW","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09495_8.jpg?v=1762154873"},{"product_id":"ttbici-e-line-women-s-classic-bib-shorts-dark-brown","title":"กางเกงบิบขาสั้นปั่นจักรยานผู้หญิง TTBICI รุ่น E LINE แบบคลาสสิก \/ สีน้ำตาลเข้ม","description":"“TTBICI E Line Classic Bib Shorts”\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบปั่นจักรยาน TTBICI E Line Classic Bib Shorts ผสมผสานองค์ประกอบแบบดั้งเดิมเข้ากับนวัตกรรมร่วมสมัย ถ่ายทอดความหรูหราแบบเรียบง่ายด้วยงานปักละเอียดประณีต\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและสมรรถนะสูงสุด มาพร้อมทรงกระชับแบบตามสรีระที่ยืดหยุ่นได้ดี ช่วยให้เคลื่อนไหวได้อย่างอิสระและสวมใส่สบายตลอดวัน ผลิตจากผ้าที่มีความทนทาน ระบายความชื้นได้ดี และเสริมด้วยแผ่นรองนั่งหนาแน่นพิเศษ เพื่อมอบการรองรับและความสบายสูงสุดระหว่างการปั่นจักรยาน\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082451628256,"sku":"B6TC-E02-BR0XSW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082451661024,"sku":"B6TC-E02-BR00SW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082451693792,"sku":"B6TC-E02-BR00MW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082451726560,"sku":"B6TC-E02-BR00LW","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09545-light_brown_1_1.jpg?v=1762154881"},{"product_id":"ttbici-e-line-women-s-classic-bib-shorts-dark-grey","title":"กางเกงบิบขาสั้นปั่นจักรยานผู้หญิง TTBICI รุ่น E LINE แบบคลาสสิก \/ สีเทา","description":"“TTBICI E Line Classic Bib Shorts”\r\n\u003cbr\u003e\u003cbr\u003e\r\nกางเกงบิบปั่นจักรยาน TTBICI E Line Classic Bib Shorts ผสมผสานองค์ประกอบแบบดั้งเดิมเข้ากับนวัตกรรมร่วมสมัย ถ่ายทอดความหรูหราแบบเรียบง่ายด้วยงานปักละเอียดประณีต\r\n\u003cbr\u003e\u003cbr\u003e\r\nออกแบบมาเพื่อความสบายและสมรรถนะสูงสุด มาพร้อมทรงกระชับแบบตามสรีระที่ยืดหยุ่นได้ดี ช่วยให้เคลื่อนไหวได้อย่างอิสระและสวมใส่สบายตลอดวัน ผลิตจากผ้าที่มีความทนทาน ระบายความชื้นได้ดี และเสริมด้วยแผ่นรองนั่งหนาแน่นพิเศษ เพื่อมอบการรองรับและความสบายสูงสุดระหว่างการปั่นจักรยาน\r\n\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082451759328,"sku":"B6TC-E02-GY0XSW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082451792096,"sku":"B6TC-E02-GY00SW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082451824864,"sku":"B6TC-E02-GY00MW","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082451857632,"sku":"B6TC-E02-GY00LW","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09545_8.jpg?v=1762154889"},{"product_id":"ttbici-e-line-women-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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087478698208,"sku":"B6TC-E01-BK0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087478730976,"sku":"B6TC-E01-BK00SW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087478763744,"sku":"B6TC-E01-BK00MW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087478796512,"sku":"B6TC-E01-BK00LW","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09592_1_2.jpg?v=1762226950"},{"product_id":"ttbici-e-line-women-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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087479714016,"sku":"B6TC-E01-NY0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087479746784,"sku":"B6TC-E01-NY00SW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087479779552,"sku":"B6TC-E01-NY00MW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087479812320,"sku":"B6TC-E01-NY00LW","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09602-3_color-deep_blue_2.jpg?v=1762226958"},{"product_id":"ttbici-e-line-women-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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087480074464,"sku":"B6TC-E01-BE0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087480107232,"sku":"B6TC-E01-BE00SW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087480140000,"sku":"B6TC-E01-BE00MW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087480172768,"sku":"B6TC-E01-BE00LW","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09606_a.jpg?v=1762226966"},{"product_id":"ttbici-e-line-women-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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087481221344,"sku":"B6TC-E01-BR0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087481254112,"sku":"B6TC-E01-BR00SW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087481286880,"sku":"B6TC-E01-BR00MW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087481319648,"sku":"B6TC-E01-BR00LW","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09602-3_color-light_brown_2.jpg?v=1762226974"},{"product_id":"ttbici-e-line-women-s-classic-jersey-pine-green","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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087481811168,"sku":"B6TC-E01-GR0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087481843936,"sku":"B6TC-E01-GR00SW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087481876704,"sku":"B6TC-E01-GR00MW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087481909472,"sku":"B6TC-E01-GR00LW","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09602-3_color-deep_green_a.jpg?v=1762226983"},{"product_id":"ttbici-a-line-women-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\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: '70–78', waist: '55–63', hip: '74–82' },\r\n\t\t\t\t{ size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n\t\t\t\t{ size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n\t\t\t\t{ size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n\t\t\t\t{ size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n\t\t\t\t{ size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n\t\t\t\t{ size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\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":48087482302688,"sku":"B6TC-A01-PG0XSW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087482335456,"sku":"B6TC-A01-PG00SW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087482368224,"sku":"B6TC-A01-PG00MW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087482400992,"sku":"B6TC-A01-PG00LW","price":3580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05614.jpg?v=1762226991"},{"product_id":"ttbici-a-line-women-s-lightweight-jersey-powder-blue","title":"เสื้อปั่นจักรยานผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีฟ้าอ่อน Powder","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\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: '70–78', waist: '55–63', hip: '74–82' },\r\n\t\t\t\t{ size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n\t\t\t\t{ size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n\t\t\t\t{ size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n\t\t\t\t{ size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n\t\t\t\t{ size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n\t\t\t\t{ size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\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":48087483285728,"sku":"B6TC-A01-BL0XSW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087483318496,"sku":"B6TC-A01-BL00SW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087483351264,"sku":"B6TC-A01-BL00MW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087483384032,"sku":"B6TC-A01-BL00LW","price":3580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05593-pink_blue.jpg?v=1762226998"},{"product_id":"ttbici-a-line-women-s-lightweight-jersey-peach-pink","title":"เสื้อปั่นจักรยานผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีชมพู Peach","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\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: '70–78', waist: '55–63', hip: '74–82' },\r\n\t\t\t\t{ size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n\t\t\t\t{ size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n\t\t\t\t{ size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n\t\t\t\t{ size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n\t\t\t\t{ size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n\t\t\t\t{ size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\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":48087485186272,"sku":"B6TC-A01-PI0XSW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087485219040,"sku":"B6TC-A01-PI00SW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087485251808,"sku":"B6TC-A01-PI00MW","price":3580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087485284576,"sku":"B6TC-A01-PI00LW","price":3580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05593-pink.jpg?v=1762227006"},{"product_id":"ttbici-a-line-women-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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087487021280,"sku":"B6TC-A02-GY0XSW","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087487054048,"sku":"B6TC-A02-GY00SW","price":4180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087487086816,"sku":"B6TC-A02-GY00MW","price":4180.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48087487119584,"sku":"B6TC-A02-GY00LW","price":4180.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05752.jpg?v=1762227014"},{"product_id":"ttbici-a-line-women-s-lightweight-team-jersey-white","title":"เสื้อปั่นจักรยานผู้หญิง รุ่น A LINE TEAM เนื้อผ้าบางเบา สีขาว","description":"ttbici a Line Lightweight Team Jersey\r\n\u003cbr\u003e\u003cbr\u003e\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\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: '70–78', waist: '55–63', hip: '74–82' },\r\n\t\t\t\t{ size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n\t\t\t\t{ size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n\t\t\t\t{ size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n\t\t\t\t{ size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n\t\t\t\t{ size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n\t\t\t\t{ size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\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":48087487512800,"sku":"B6TC-A01-WH0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087487545568,"sku":"B6TC-A01-WH00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087487578336,"sku":"B6TC-A01-WH00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087487611104,"sku":"B6TC-A01-WH00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/2.jpg?v=1762227022"},{"product_id":"ttbici-a-line-women-s-lightweight-team-jersey-lime","title":"เสื้อปั่นจักรยานผู้หญิง รุ่น A LINE TEAM เนื้อผ้าบางเบา สีเขียวมะนาว","description":"ttbici a Line Lightweight Team Jersey\r\n\u003cbr\u003e\u003cbr\u003e\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\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: '70–78', waist: '55–63', hip: '74–82' },\r\n\t\t\t\t{ size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n\t\t\t\t{ size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n\t\t\t\t{ size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n\t\t\t],\r\n\t\t\tinches: [\r\n\t\t\t\t{ size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n\t\t\t\t{ size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n\t\t\t\t{ size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n\t\t\t\t{ size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\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":48087488659680,"sku":"B6TC-A01-LG0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087488692448,"sku":"B6TC-A01-LG00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087488725216,"sku":"B6TC-A01-LG00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087488757984,"sku":"B6TC-A01-LG00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/lightweight_team_jersey_lime_01.jpg?v=1762227030"},{"product_id":"ttbici-a-line-women-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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087489446112,"sku":"B6TC-A02-BK0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087489478880,"sku":"B6TC-A02-BK00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087489511648,"sku":"B6TC-A02-BK00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087489544416,"sku":"B6TC-A02-BK00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05617.jpg?v=1762227038"},{"product_id":"ttbici-a-line-women-s-lightweight-ls-jersey-power-blue","title":"เสื้อปั่นจักรยานแขนยาวผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีฟ้าอ่อน Powder","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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087490396384,"sku":"B6TC-A02-BL0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087490429152,"sku":"B6TC-A02-BL00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087490461920,"sku":"B6TC-A02-BL00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087490494688,"sku":"B6TC-A02-BL00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05627.jpg?v=1762227046"},{"product_id":"ttbici-a-line-women-s-lightweight-ls-jersey-peach-pink","title":"เสื้อปั่นจักรยานแขนยาวผู้หญิง รุ่น A LINE เนื้อผ้าบางเบา สีชมพู Peach","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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48087491051744,"sku":"B6TC-A02-PI0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48087491084512,"sku":"B6TC-A02-PI00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48087491117280,"sku":"B6TC-A02-PI00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48087491150048,"sku":"B6TC-A02-PI00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05627-pink.jpg?v=1762227054"},{"product_id":"a-line-women-s-altitude-ls-team-jersey-mylar-silver","title":"เสื้อจักรยานแขนยาวทีมหญิง รุ่น Altitude \/ สีมายลาร์ซิลเวอร์","description":"ttbici a Line Altitude LS Team 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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917421555936,"sku":"B6TC-A10-GY0XSW","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917421588704,"sku":"B6TC-A10-GY00SW","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917421621472,"sku":"B6TC-A10-GY00MW","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917421654240,"sku":"B6TC-A10-GY00LW","price":4980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/women-s-altitude-ls-team-jersey-mylar-silver01_1_1_1_1.jpg?v=1773026238"},{"product_id":"a-line-women-s-lightweight-team-jersey-mylar-gold","title":"เสื้อจักรยานทีมผ้าน้ำหนักเบาผู้หญิง \/ สีมายลาร์โกลด์","description":"ttbici a Line Team Lightweight Jersey\u003cbr\u003e\r\nออกแบบภายใต้แนวคิดของ “กระแสอากาศ” กราฟิกบนตัวเสื้อสะท้อนภาพลมที่ไหลผ่านร่างกายอย่างลื่นไหล ลดแรงต้าน\r\nและสื่อถึงความเร็วอันบริสุทธิ์ โครงสร้างน้ำหนักเบาผสานกับภาษาดีไซน์ที่เฉียบคม\r\nเพื่อสนับสนุนนักปั่นในการไล่ล่าสมรรถนะสูงสุด\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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917421916384,"sku":"B6TC-A11-YW0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917421949152,"sku":"B6TC-A11-YW00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917421981920,"sku":"B6TC-A11-YW00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917422014688,"sku":"B6TC-A11-YW00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/women-s-lightweight-team-jersey-mylar-gold01_1_1_1_1.jpg?v=1773026246"},{"product_id":"a-line-women-s-lightweight-team-jersey-mylar-pink","title":"เสื้อจักรยานทีมผ้าน้ำหนักเบาผู้หญิง \/ สีมายลาร์พิงก์","description":"ttbici a Line Team Lightweight Jersey\u003cbr\u003e\r\nออกแบบภายใต้แนวคิดของ “กระแสอากาศ” กราฟิกบนตัวเสื้อสะท้อนภาพลมที่ไหลผ่านร่างกายอย่างลื่นไหล ลดแรงต้าน\r\nและสื่อถึงความเร็วอันบริสุทธิ์ โครงสร้างน้ำหนักเบาผสานกับภาษาดีไซน์ที่เฉียบคม\r\nเพื่อสนับสนุนนักปั่นในการไล่ล่าสมรรถนะสูงสุด\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: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917422211296,"sku":"B6TC-A11-PI0XSW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917422244064,"sku":"B6TC-A11-PI00SW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917422276832,"sku":"B6TC-A11-PI00MW","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917422309600,"sku":"B6TC-A11-PI00LW","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/women-s-lightweight-team-jersey-mylar-pink01_1_1_1_1.jpg?v=1773026254"},{"product_id":"a-line-women-s-apex-cargo-bib-shorts-charcoal","title":"กางเกงจักรยานผู้หญิง รุ่น Apex Cargo \/ สีชาร์โคล","description":"ttbici A Line APEX Cargo Bib Shorts\u003cbr\u003e\r\nออกแบบมาเพื่อการปั่นระยะไกลโดยเฉพาะ ใช้ผ้า Performance น้ำหนักปานกลางที่มอบความสมดุลระหว่างแรงซัพพอร์ต ความสบาย และการระบายอากาศได้อย่างลงตัว\r\n\u003cbr\u003e\u003cbr\u003e\r\nทรงกระชับสไตล์เรซถูกผสานเข้ากับกระเป๋า Cargo แบบอินทิเกรต เพื่อการจัดเก็บที่มั่นคงและปลอดภัย พร้อมรองรับทุกสถานการณ์เมื่อระยะทางยาวไกลยิ่งขึ้น\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917921300704,"sku":"B6TC-A12-CH0XSW","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917921333472,"sku":"B6TC-A12-CH00SW","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917921366240,"sku":"B6TC-A12-CH00MW","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917921399008,"sku":"B6TC-A12-CH00LW","price":5580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/women-s-apex-cargo-bib-shorts-charcoal01_1_3.jpg?v=1773035795"},{"product_id":"a-line-women-s-apex-cargo-bib-shorts-off-white","title":"กางเกงจักรยานผู้หญิง รุ่น Apex Cargo \/ สีออฟไวท์","description":"ttbici A Line APEX Cargo Bib Shorts\u003cbr\u003e\r\nออกแบบมาเพื่อการปั่นระยะไกลโดยเฉพาะ ใช้ผ้า Performance น้ำหนักปานกลางที่มอบความสมดุลระหว่างแรงซัพพอร์ต ความสบาย และการระบายอากาศได้อย่างลงตัว\r\n\u003cbr\u003e\u003cbr\u003e\r\nทรงกระชับสไตล์เรซถูกผสานเข้ากับกระเป๋า Cargo แบบอินทิเกรต เพื่อการจัดเก็บที่มั่นคงและปลอดภัย พร้อมรองรับทุกสถานการณ์เมื่อระยะทางยาวไกลยิ่งขึ้น\r\n\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"zh-Hant\"\u003e\r\n\r\n\u003chead\u003e\r\n  \u003cmeta charset=\"UTF-8\" \/\u003e\r\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/\u003e\r\n  \u003cstyle\u003e\r\n    body.product-modal-open {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .product-modal-overlay {\r\n      display: none;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100vw;\r\n      height: 100vh;\r\n      background-color: rgba(0, 0, 0, 0.5);\r\n      backdrop-filter: blur(2px);\r\n      z-index: 1000;\r\n      justify-content: center;\r\n      align-items: center;\r\n    }\r\n\r\n    .product-modal {\r\n      background: white;\r\n      padding: 20px;\r\n      \/* border-radius: 10px; *\/\r\n      max-width: 600px;\r\n      width: 90%;\r\n      max-height: 90vh;\r\n      overflow-y: auto;\r\n      position: relative;\r\n    }\r\n\r\n    .product-modal .modal-close {\r\n      position: absolute;\r\n      top: 10px;\r\n      right: 12px;\r\n      font-size: 20px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    \/* ✅ 統一按鈕樣式 *\/\r\n    .button-group {\r\n      display: flex;\r\n      gap: 12px;\r\n      padding-top: 20px;\r\n    }\r\n\r\n    .button-group button {\r\n      padding: 0px;\r\n      border: none;\r\n      background-color: transparent;\r\n      color: #333;\r\n      cursor: pointer;\r\n      \/* border-radius: 5px; *\/\r\n      font-size: 15px;\r\n      font-family: 'Microsoft JhengHei';\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .button-group button.active {\r\n      \/* background-color: #444; *\/\r\n    }\r\n\r\n    button:active {\r\n      box-shadow: none !important;\r\n      color: #333 !important;\r\n    }\r\n\r\n    .product-modal table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .product-modal th,\r\n    .product-modal td {\r\n      border-bottom: 1px solid #ddd;\r\n      text-align: center;\r\n      padding: 8px;\r\n    }\r\n\r\n    \/* ✅ 新增的欄寬限制 *\/\r\n    .product-modal table th:first-child,\r\n    .product-modal table td:first-child {\r\n      width: 15%;\r\n      max-width: 15%;\r\n    }\r\n\r\n    .product-modal .toggle-wrapper {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin: 10px 0 20px;\r\n    }\r\n\r\n    .product-modal .toggle {\r\n      position: relative;\r\n      display: inline-block;\r\n      width: 50px;\r\n      height: 24px;\r\n    }\r\n\r\n    .product-modal .toggle input {\r\n      opacity: 0;\r\n      width: 0;\r\n      height: 0;\r\n    }\r\n\r\n    .product-modal .slider {\r\n      position: absolute;\r\n      cursor: pointer;\r\n      background-color: #ccc;\r\n      border-radius: 24px;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      transition: 0.4s;\r\n    }\r\n\r\n    .product-modal .slider:before {\r\n      content: \"\";\r\n      position: absolute;\r\n      height: 18px;\r\n      width: 18px;\r\n      left: 3px;\r\n      bottom: 3px;\r\n      background-color: white;\r\n      transition: 0.4s;\r\n      border-radius: 50%;\r\n    }\r\n\r\n    .product-modal input:checked+.slider {\r\n      background-color: #333;\r\n    }\r\n\r\n    .product-modal input:checked+.slider:before {\r\n      transform: translateX(26px);\r\n    }\r\n\r\n    .product-modal .modalInnerContent h3 {\r\n      padding: 20px 0;\r\n\r\n    }\r\n  \u003c\/style\u003e\r\n\u003c\/head\u003e\r\n\r\n\u003cbody\u003e\r\n\r\n  \u003c!-- 外部觸發按鈕 --\u003e\r\n  \u003cdiv class=\"button-group\"\u003e\r\n    \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n    \u003cbutton onclick=\"openModal('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n    \u003cbutton onclick=\"openModal('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003c!-- Modal --\u003e\r\n  \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\r\n    \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\r\n      \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\r\n\r\n      \u003c!-- 內部選單 --\u003e\r\n      \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\r\n        \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003eรายละเอียดการจัดส่ง\u003c\/button\u003e --\u003e\r\n        \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003eตารางไซซ์\u003c\/button\u003e\r\n        \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003eการดูแลและซักล้าง\u003c\/button\u003e\r\n      \u003c\/div\u003e\r\n\r\n      \u003c!-- 內容區 --\u003e\r\n      \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n  \u003c\/div\u003e\r\n\r\n  \u003cscript\u003e\r\n    const modalOverlay = document.getElementById(\"modalOverlay\");\r\n    const modalInner = document.getElementById(\"modalInnerContent\");\r\n\r\n    const sizeData = {\r\n      cm: [\r\n        { size: 'XS', chest: '70–78', waist: '55–63', hip: '74–82' },\r\n        { size: 'S', chest: '74–82', waist: '59–67', hip: '78–86' },\r\n        { size: 'M', chest: '78–86', waist: '63–71', hip: '82–90' },\r\n        { size: 'L', chest: '82–90', waist: '67–75', hip: '86–94' }\r\n      ],\r\n      inches: [\r\n        { size: 'XS', chest: '27–31', waist: '21–25', hip: '29–32' },\r\n        { size: 'S', chest: '29–32', waist: '23–26', hip: '31–34' },\r\n        { size: 'M', chest: '31–34', waist: '25–28', hip: '32–36' },\r\n        { size: 'L', chest: '32–36', waist: '27–30', hip: '34–37' }\r\n      ]\r\n    };\r\n\r\n    function openModal(defaultTab) {\r\n      document.body.classList.add(\"product-modal-open\");\r\n      modalOverlay.style.display = \"flex\";\r\n      switchTab(defaultTab);\r\n    }\r\n\r\n    function closeModal() {\r\n      modalOverlay.style.display = \"none\";\r\n      modalInner.innerHTML = \"\";\r\n      document.body.classList.remove(\"product-modal-open\");\r\n    }\r\n\r\n    function switchTab(tab) {\r\n      ['shipping', 'care', 'size'].forEach(id =\u003e {\r\n        const btn = document.getElementById(`tab-${id}`);\r\n        if (btn) btn.classList.remove(\"active\");\r\n      });\r\n\r\n      const activeBtn = document.getElementById(`tab-${tab}`);\r\n      if (activeBtn) activeBtn.classList.add(\"active\");\r\n\r\n      if (tab === 'shipping') {\r\n        modalInner.innerHTML = `\u003ch3\u003eรายละเอียดการจัดส่ง\u003c\/h3\u003e\u003cp\u003eสามารถใส่ข้อมูลเกี่ยวกับวิธีการจัดส่ง ระยะเวลา และค่าจัดส่งได้ที่นี่\u003c\/p\u003e`;\r\n      } else if (tab === 'care') {\r\n        modalInner.innerHTML = `\r\n\t\t\u003ch3\u003eการดูแลและซักล้าง\u003c\/h3\u003e\r\n\t\t\u003col\u003e\r\n\t\t\t\u003cli\u003eแนะนำให้แยกซักเสื้อผ้าตามโทนสีเข้มและอ่อนเพื่อลดความเสี่ยงของการเกิดสีตก\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eหลังจากใช้งาน ควรซักทันทีเพื่อลดการสะสมของแบคทีเรียและกลิ่นเหม็น และเพื่อป้องกันการเกิดคราบเหงื่อหรือสีเหลืองบนเสื้อผ้า\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eก่อนซัก ควรรูดซิปทุกอันให้เรียบร้อย เพื่อป้องกันการทำลายผ้าในระหว่างซัก ใช้น้ำเย็นและผงซักฟอกแบบอ่อนแช่ไว้ 5–10 นาที แล้วขยี้เบา ๆ ก่อนล้างออกให้สะอาด\u003cbr\u003e\r\n\t\t\t\u003cstrong\u003eห้ามใช้ผลิตภัณฑ์ซักผ้าที่มีส่วนผสมของน้ำยาปรับผ้านุ่ม น้ำยาฟอกขาว หรือน้ำยาซักผ้าเย็น เพราะอาจทำลายเนื้อผ้าได้\u003c\/strong\u003e\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eควรซักด้วยมือ หากต้องการใช้เครื่องซักผ้า ให้รูดซิปทุกอัน ใส่ถุงซักและกลับด้านในออก ตั้งโหมดเครื่องซักผ้าเป็น “ซักแบบถนอมผ้า”\u003c\/li\u003e\r\n\t\t\t\u003cli\u003eห้ามบิดผ้าแรง ๆ และไม่ควรใช้เครื่องอบผ้าเพราะอาจทำให้เสื้อผ้าเสียหาย\u003cbr\u003e\r\n\t\t\tแนะนำให้ใช้ผ้าขนหนูซับน้ำออกก่อน และตากในที่ร่มที่อากาศถ่ายเท\u003c\/li\u003e\r\n\t\t\u003c\/ol\u003e\r\n\t\t\u003cp\u003e\u003cstrong\u003e※ เนื่องจากกระบวนการผลิตและการย้อมของแต่ละรุ่นแตกต่างกัน เสื้อผ้าอาจมีการซีดจางบ้างระหว่างการใช้งานหรือซักล้าง ซึ่งไม่ควรถือว่าเป็นข้อบกพร่องของสินค้า โดยเฉพาะเสื้อผ้าสีสว่างอาจซีดง่ายกว่าสีอื่น ๆ แนะนำให้สวมใส่หรือซักกับเสื้อผ้าสีใกล้เคียงกัน\u003c\/strong\u003e\u003c\/p\u003e\r\n\t`;\r\n\r\n      } else if (tab === 'size') {\r\n        modalInner.innerHTML = `\r\n          \u003ch3\u003eตารางไซซ์\u003c\/h3\u003e\r\n          \u003cdiv class=\"toggle-wrapper\"\u003e\r\n            \u003cspan\u003eCM\u003c\/span\u003e\r\n            \u003clabel class=\"toggle\"\u003e\r\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\r\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\r\n            \u003c\/label\u003e\r\n            \u003cspan\u003eINCHES\u003c\/span\u003e\r\n          \u003c\/div\u003e\r\n          \u003ctable\u003e\r\n            \u003cthead\u003e\r\n              \u003ctr\u003e\r\n                \u003cth\u003eขนาด\u003c\/th\u003e\r\n                \u003cth id=\"chestHeader\"\u003eรอบอก\u003c\/th\u003e\r\n                \u003cth id=\"waistHeader\"\u003eเอว\u003c\/th\u003e\r\n                \u003cth id=\"hipHeader\"\u003eสะโพก\u003c\/th\u003e\r\n              \u003c\/tr\u003e\r\n            \u003c\/thead\u003e\r\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\r\n          \u003c\/table\u003e\r\n        `;\r\n        renderSizeTable('cm');\r\n        document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\r\n          renderSizeTable(e.target.checked ? 'inches' : 'cm');\r\n        });\r\n      }\r\n    }\r\n\r\n    function renderSizeTable(unit) {\r\n      const body = document.getElementById(\"tableBody\");\r\n      body.innerHTML = \"\";\r\n      sizeData[unit].forEach(row =\u003e {\r\n        body.innerHTML += `\r\n      \u003ctr\u003e\r\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\r\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\r\n      \u003c\/tr\u003e`;\r\n      });\r\n    }\r\n  \u003c\/script\u003e\r\n\u003c\/body\u003e\r\n\r\n\u003c\/html\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917921562848,"sku":"B6TC-A12-BE0XSW","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917921595616,"sku":"B6TC-A12-BE00SW","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917921628384,"sku":"B6TC-A12-BE00MW","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917921661152,"sku":"B6TC-A12-BE00LW","price":5580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/women-s-apex-cargo-bib-shorts-off-white01_1_1_1_1.jpg?v=1773035804"},{"product_id":"ciao-wilier-2000-women-s-jersey-blue","title":"ttbici Ciao! Wilier 2000 Women's Jersey 女款車衣 \/ 藍色","description":"\u003cp\u003e以 ttbici e Line 經典車衣為基礎，打造 CIAO! Wilier 2000 賽事紀念車衣。以獨特電繡工藝展顯低調奢華的品牌質感。注重舒適度及便利性的多元合身剪裁，使用高透氣面料製作，柔軟手感，適合溫暖氣候著用，提供優異與優雅的騎乘體驗。\u003cbr\u003e\u003cbr\u003e\u003cmeta charset=\"UTF-8\"\u003e \u003cmeta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\"\u003e\u003c\/p\u003e\n\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\u003c!-- 外部觸發按鈕 --\u003e\n\u003cdiv class=\"button-group\"\u003e\n\u003cbutton\u003e尺寸指南\u003c\/button\u003e \u003cbutton\u003e洗滌保養\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Modal --\u003e\n\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n\u003cdiv class=\"modal-close\"\u003e×\u003c\/div\u003e\n\u003c!-- 內部選單 --\u003e\n\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n\u003cbutton id=\"tab-size\"\u003e尺寸指南\u003c\/button\u003e \u003cbutton id=\"tab-care\"\u003e洗滌保養\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- 內容區 --\u003e\n\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":52659050184928,"sku":"B6TC-CIA-MC0XSW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":52659050217696,"sku":"B6TC-CIA-MC00SW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":52659050250464,"sku":"B6TC-CIA-MC00MW","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":52659050283232,"sku":"B6TC-CIA-MC00LW","price":2880.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/ciao-wilier-2000-women-jersey-blue_1_1_1_1_1.jpg?v=1779088371"}],"url":"https:\/\/www.ttbici.com\/th-th\/collections\/women-summer.oembed","provider":"TTBICI","version":"1.0","type":"link"}