{"title":"男-車褲","description":"","products":[{"product_id":"ttbici-e-line-men-s-classic-bib-shorts-black","title":"e Line Men's Classic Bib Shorts 男款經典車褲 \/ 黑色","description":"\u003cbody\u003ettbici E Line 經典車褲，揉合傳統與現代要素，以獨特電繡工藝展顯低調奢華的品牌質感。注重舒適度及便利性的多元合身剪裁，以耐用排汗面料製作，搭配加厚褲墊，提供舒適的騎乘感受。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082528895200,"sku":"B6TC-E02-BK0XSM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082528927968,"sku":"B6TC-E02-BK00SM","price":3280.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48082528960736,"sku":"B6TC-E02-BK00MM","price":3280.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48082528993504,"sku":"B6TC-E02-BK00LM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082529026272,"sku":"B6TC-E02-BK0XLM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082529059040,"sku":"B6TC-E02-BK2XLM","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09485_1.jpg?v=1762159706"},{"product_id":"ttbici-e-line-men-s-classic-bib-shorts-dark-brown","title":"e Line Men's Classic Bib Shorts 男款經典車褲 \/ 深棕色","description":"\u003cbody\u003ettbici E Line 經典車褲，揉合傳統與現代要素，以獨特電繡工藝展顯低調奢華的品牌質感。注重舒適度及便利性的多元合身剪裁，以耐用排汗面料製作，搭配加厚褲墊，提供舒適的騎乘感受。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082529124576,"sku":"B6TC-E02-BR0XSM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082529157344,"sku":"B6TC-E02-BR00SM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082529190112,"sku":"B6TC-E02-BR00MM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082529222880,"sku":"B6TC-E02-BR00LM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082529255648,"sku":"B6TC-E02-BR0XLM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082529288416,"sku":"B6TC-E02-BR2XLM","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09534-light_brown_1.jpg?v=1762159715"},{"product_id":"ttbici-e-line-men-s-classic-bib-shorts-dark-grey","title":"e Line Men's Classic Bib Shorts 男款經典車褲 \/ 灰色","description":"\u003cbody\u003ettbici E Line 經典車褲，揉合傳統與現代要素，以獨特電繡工藝展顯低調奢華的品牌質感。注重舒適度及便利性的多元合身剪裁，以耐用排汗面料製作，搭配加厚褲墊，提供舒適的騎乘感受。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082529321184,"sku":"B6TC-E02-GY0XSM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082529353952,"sku":"B6TC-E02-GY00SM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082529386720,"sku":"B6TC-E02-GY00MM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082529419488,"sku":"B6TC-E02-GY00LM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082529452256,"sku":"B6TC-E02-GY0XLM","price":3280.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082529485024,"sku":"B6TC-E02-GY2XLM","price":3280.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09534_6.jpg?v=1762159725"},{"product_id":"ttbici-a-line-men-s-lightweight-bib-shorts-black","title":"a Line Men's Lightweight Bib Shorts 男款輕量車褲 \/ 黑色","description":"\u003cbody\u003ettbici a Line 輕量車褲，專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082529583328,"sku":"B6TC-A03-BK0XSM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082529616096,"sku":"B6TC-A03-BK00SM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082529648864,"sku":"B6TC-A03-BK00MM","price":4580.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48082529681632,"sku":"B6TC-A03-BK00LM","price":4580.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48082529714400,"sku":"B6TC-A03-BK0XLM","price":4580.0,"currency_code":"TWD","in_stock":false},{"title":"2XL","offer_id":48082529747168,"sku":"B6TC-A03-BK2XLM","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05787_1.jpg?v=1762159742"},{"product_id":"ttbici-a-line-men-s-lightweight-bib-shorts-bronze-green","title":"a Line Men's Lightweight Bib Shorts 男款輕量車褲 \/ 青銅綠","description":"\u003cbody\u003ettbici a Line 輕量車褲，專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082530107616,"sku":"B6TC-A03-GR0XSM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530140384,"sku":"B6TC-A03-GR00SM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530173152,"sku":"B6TC-A03-GR00MM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082530205920,"sku":"B6TC-A03-GR00LM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530238688,"sku":"B6TC-A03-GR0XLM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530271456,"sku":"B6TC-A03-GR2XLM","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05782_1.jpg?v=1762159757"},{"product_id":"ttbici-a-line-men-s-cargo-bib-shorts-charcoal","title":"a Line Men's Cargo Bib Shorts 男款輕量口袋車褲 \/ 炭灰","description":"\u003cbody\u003ettbici a Line 輕量口袋車褲，側邊收納口袋與中央後袋設計，方便快速取放物品，提升長途騎乘過程中的實用性與便捷性。\n\u003cbr\u003e\u003cbr\u003e\n專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082530304224,"sku":"B6TC-A04-CH0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530336992,"sku":"B6TC-A04-CH00SM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530369760,"sku":"B6TC-A04-CH00MM","price":5180.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48082530402528,"sku":"B6TC-A04-CH00LM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530435296,"sku":"B6TC-A04-CH0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530468064,"sku":"B6TC-A04-CH2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05791-gray_1.jpg?v=1762159765"},{"product_id":"ttbici-a-line-men-s-lightweight-bib-shorts-eclipse-purple","title":"a Line Men's Lightweight Bib Shorts 男款輕量車褲 \/ 月蝕紫","description":"\u003cbody\u003ettbici a Line 輕量車褲，專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082530599136,"sku":"B6TC-A03-PG0XSM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530631904,"sku":"B6TC-A03-PG00SM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530664672,"sku":"B6TC-A03-PG00MM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082530697440,"sku":"B6TC-A03-PG00LM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530730208,"sku":"B6TC-A03-PG0XLM","price":4580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530762976,"sku":"B6TC-A03-PG2XLM","price":4580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05782-purple_1.jpg?v=1762159774"},{"product_id":"ttbici-a-line-men-s-cargo-bib-shorts-chocolate","title":"a Line Men's Cargo Bib Shorts 男款輕量口袋車褲 \/ 巧克力","description":"\u003cbody\u003ettbici a Line 輕量口袋車褲，側邊收納口袋與中央後袋設計，方便快速取放物品，提升長途騎乘過程中的實用性與便捷性。\n\u003cbr\u003e\u003cbr\u003e\n專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48082530795744,"sku":"B6TC-A04-BR0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48082530828512,"sku":"B6TC-A04-BR00SM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48082530861280,"sku":"B6TC-A04-BR00MM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48082530894048,"sku":"B6TC-A04-BR00LM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48082530926816,"sku":"B6TC-A04-BR0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48082530959584,"sku":"B6TC-A04-BR2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc05791_1.jpg?v=1762159783"},{"product_id":"e-line-men-s-classic-thermal-tights-black","title":"e Line Men's Classic Thermal Tight 男款經典保暖長車褲 \/ 黑色","description":"\u003cbody\u003ettbici e Line 經典保暖長車褲，為寒冷天氣與冬季騎乘打造。腿部採用內裡刷毛彈性面料，保暖的同時維持絕佳延展性與肌肉支撐，幫助雙腿在低溫中持續保持溫度。表層具 DWR 防潑水處理，有效抵禦風雨。延續 e Line 極簡設計與電繡細節，展現低調質感與穩定風格。\n\u003cbr\u003e\u003cbr\u003e\n適合氣溫：\u0026lt;15°C 騎乘穿著\n\n\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48531800621280,"sku":"B6TC-E04-BK0XSM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531800654048,"sku":"B6TC-E04-BK00SM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531800686816,"sku":"B6TC-E04-BK00MM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531800719584,"sku":"B6TC-E04-BK00LM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531800752352,"sku":"B6TC-E04-BK0XLM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531800785120,"sku":"B6TC-E04-BK2XLM","price":4980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_tights_black_01.jpg?v=1768184548"},{"product_id":"e-line-men-s-classic-thermal-tights-limestone","title":"e Line Men's Classic Thermal Tight 男款經典保暖長車褲 \/ 岩灰","description":"\u003cbody\u003ettbici e Line 經典保暖長車褲，為寒冷天氣與冬季騎乘打造。腿部採用內裡刷毛彈性面料，保暖的同時維持絕佳延展性與肌肉支撐，幫助雙腿在低溫中持續保持溫度。表層具 DWR 防潑水處理，有效抵禦風雨。延續 e Line 極簡設計與電繡細節，展現低調質感與穩定風格。\n\u003cbr\u003e\u003cbr\u003e\n適合氣溫：\u0026lt;15°C 騎乘穿著\n\n\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48531800817888,"sku":"B6TC-E04-GY0XSM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531800850656,"sku":"B6TC-E04-GY00SM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531800883424,"sku":"B6TC-E04-GY00MM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531800916192,"sku":"B6TC-E04-GY00LM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531800948960,"sku":"B6TC-E04-GY0XLM","price":4980.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531800981728,"sku":"B6TC-E04-GY2XLM","price":4980.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_tights_limestone_01.jpg?v=1768184557"},{"product_id":"a-line-men-s-stay-gold-bib-shorts-white","title":"a Line Men's Stay Gold Bib Shorts 男款車褲 \/ 白金","description":"\u003cbody\u003e以「純粹．極致．永恆」為設計理念，ttbici a Line 推出全新 Stay Gold 系列，以最純粹的白金 \/ 黑金色彩為基調，展現速度與優雅的平衡。\n\u003cbr\u003e\u003cbr\u003e\nttbici a Line Stay Gold 輕量車褲，專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\n\u003cbr\u003e\u003cbr\u003e\n適合氣溫：\u0026gt;25°C 騎乘穿著\n\n\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48876246958304,"sku":"B6TC-A09-WH0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48876246991072,"sku":"B6TC-A09-WH00SM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48876247023840,"sku":"B6TC-A09-WH00MM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48876247056608,"sku":"B6TC-A09-WH00LM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48876247089376,"sku":"B6TC-A09-WH0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48876247122144,"sku":"B6TC-A09-WH2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_stay_gold_aero_bib_white_01.jpg?v=1772530325"},{"product_id":"a-line-men-s-stay-gold-bib-shorts-black","title":"a Line Men's Stay Gold Bib Shorts 男款車褲 \/ 黑金","description":"\u003cbody\u003e以「純粹．極致．永恆」為設計理念，ttbici a Line 推出全新 Stay Gold 系列，以最純粹的白金 \/ 黑金色彩為基調，展現速度與優雅的平衡。\n\u003cbr\u003e\u003cbr\u003e\nttbici a Line Stay Gold 輕量車褲，專為高強度騎乘打造，採用高彈力輕量面料及義大利雙箭牌褲墊，支撐性強、透氣度高，確保長時間騎乘的穩定與舒適。\n\u003cbr\u003e\u003cbr\u003e\n適合氣溫：\u0026gt;25°C 騎乘穿著\n\n\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n \u003cmeta charset=\"UTF-8\"\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \u003cstyle\u003e\n  body.product-modal-open {\n   overflow: hidden;\n  }\n\n  .product-modal-overlay {\n   display: none;\n   position: fixed;\n   top: 0;\n   left: 0;\n   width: 100vw;\n   height: 100vh;\n   background-color: rgba(0, 0, 0, 0.5);\n   backdrop-filter: blur(2px);\n   z-index: 1000;\n   justify-content: center;\n   align-items: center;\n  }\n\n  .product-modal {\n   background: white;\n   padding: 20px;\n   \/* border-radius: 10px; *\/\n   max-width: 600px;\n   width: 90%;\n   max-height: 90vh;\n   overflow-y: auto;\n   position: relative;\n  }\n\n  .product-modal .modal-close {\n   position: absolute;\n   top: 10px;\n   right: 12px;\n   font-size: 20px;\n   cursor: pointer;\n  }\n\n  \/* ✅ 統一按鈕樣式 *\/\n  .button-group {\n   display: flex;\n   gap: 12px;\n   padding-top: 20px;\n  }\n\n  .button-group button {\n   padding: 0px;\n   border: none;\n   background-color: transparent;\n   color: #333;\n   cursor: pointer;\n   \/* border-radius: 5px; *\/\n   font-size: 15px;\n   font-family: 'Microsoft JhengHei';\n   text-decoration: underline;\n  }\n\n  .button-group button.active {\n   \/* background-color: #444; *\/\n  }\n\n  button:active {\n   box-shadow: none !important;\n   color: #333 !important;\n  }\n\n  .product-modal table {\n   width: 100%;\n   border-collapse: collapse;\n   margin-top: 10px;\n  }\n\n  .product-modal th,\n  .product-modal td {\n   border-bottom: 1px solid #ddd;\n   text-align: center;\n   padding: 8px;\n  }\n\n  \/* ✅ 新增的欄寬限制 *\/\n  .product-modal table th:first-child,\n  .product-modal table td:first-child {\n   width: 15%;\n   max-width: 15%;\n  }\n\n  .product-modal .toggle-wrapper {\n   display: flex;\n   align-items: center;\n   gap: 10px;\n   margin: 10px 0 20px;\n  }\n\n  .product-modal .toggle {\n   position: relative;\n   display: inline-block;\n   width: 50px;\n   height: 24px;\n  }\n\n  .product-modal .toggle input {\n   opacity: 0;\n   width: 0;\n   height: 0;\n  }\n\n  .product-modal .slider {\n   position: absolute;\n   cursor: pointer;\n   background-color: #ccc;\n   border-radius: 24px;\n   top: 0;\n   left: 0;\n   right: 0;\n   bottom: 0;\n   transition: 0.4s;\n  }\n\n  .product-modal .slider:before {\n   content: \"\";\n   position: absolute;\n   height: 18px;\n   width: 18px;\n   left: 3px;\n   bottom: 3px;\n   background-color: white;\n   transition: 0.4s;\n   border-radius: 50%;\n  }\n\n  .product-modal input:checked+.slider {\n   background-color: #333;\n  }\n\n  .product-modal input:checked+.slider:before {\n   transform: translateX(26px);\n  }\n\n  .product-modal .modalInnerContent h3 {\n   padding: 20px 0;\n\n  }\n \u003c\/style\u003e\n\n\n\n\n \u003c!-- 外部觸發按鈕 --\u003e\n \u003cdiv class=\"button-group\"\u003e\n  \u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n  \u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n  \u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n \u003c\/div\u003e\n\n \u003c!-- Modal --\u003e\n \u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n  \u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n   \u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n   \u003c!-- 內部選單 --\u003e\n   \u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n    \u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n    \u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n    \u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n   \u003c\/div\u003e\n\n   \u003c!-- 內容區 --\u003e\n   \u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\n \u003cscript\u003e\n  const modalOverlay = document.getElementById(\"modalOverlay\");\n  const modalInner = document.getElementById(\"modalInnerContent\");\n\n  const sizeData = {\n   cm: [\n    { size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n    { size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n    { size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n    { size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n    { size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n    { size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n   ],\n   inches: [\n    { size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n    { size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n    { size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n    { size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n    { size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n    { size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n   ]\n  };\n\n  function openModal(defaultTab) {\n   document.body.classList.add(\"product-modal-open\");\n   modalOverlay.style.display = \"flex\";\n   switchTab(defaultTab);\n  }\n\n  function closeModal() {\n   modalOverlay.style.display = \"none\";\n   modalInner.innerHTML = \"\";\n   document.body.classList.remove(\"product-modal-open\");\n  }\n\n  function switchTab(tab) {\n   ['shipping', 'care', 'size'].forEach(id =\u003e {\n    const btn = document.getElementById(`tab-${id}`);\n    if (btn) btn.classList.remove(\"active\");\n   });\n\n   const activeBtn = document.getElementById(`tab-${tab}`);\n   if (activeBtn) activeBtn.classList.add(\"active\");\n\n   if (tab === 'shipping') {\n    modalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n   } else if (tab === 'care') {\n    modalInner.innerHTML = `\n  \u003ch3\u003e洗滌保養\u003c\/h3\u003e\n  \u003col\u003e\n   \u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n   \u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n   \u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n   \u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n   \u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n   \u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n   可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n  \u003c\/ol\u003e\n  \u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n `;\n\n   } else if (tab === 'size') {\n    modalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n    renderSizeTable('cm');\n    document.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n     renderSizeTable(e.target.checked ? 'inches' : 'cm');\n    });\n   }\n  }\n\n  function renderSizeTable(unit) {\n   const body = document.getElementById(\"tableBody\");\n   body.innerHTML = \"\";\n   sizeData[unit].forEach(row =\u003e {\n    body.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n   });\n  }\n \u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48876247679200,"sku":"B6TC-A09-BK0XSM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48876247711968,"sku":"B6TC-A09-BK00SM","price":5180.0,"currency_code":"TWD","in_stock":false},{"title":"M","offer_id":48876247744736,"sku":"B6TC-A09-BK00MM","price":5180.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48876247777504,"sku":"B6TC-A09-BK00LM","price":5180.0,"currency_code":"TWD","in_stock":false},{"title":"XL","offer_id":48876247810272,"sku":"B6TC-A09-BK0XLM","price":5180.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48876247843040,"sku":"B6TC-A09-BK2XLM","price":5180.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_stay_gold_aero_bib_black_01.jpg?v=1772530336"},{"product_id":"a-line-men-s-apex-cargo-bib-shorts-charcoal","title":"a Line Men's Apex Cargo Bib Shorts 男款口袋車褲 \/ 炭灰","description":"\u003cbody\u003ettbici a Line APEX Cargo 車褲以中等厚度機能面料打造，提供穩定支撐與舒適透氣表現，適合長時間騎乘。競技導向剪裁搭配整合式收納口袋，在維持俐落線條的同時，兼顧實用機能，陪你持續向前。\n\n\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n\t\u003cmeta charset=\"UTF-8\"\u003e\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\t\u003cstyle\u003e\n\t\tbody.product-modal-open {\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.product-modal-overlay {\n\t\t\tdisplay: none;\n\t\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100vw;\n\t\t\theight: 100vh;\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\tbackdrop-filter: blur(2px);\n\t\t\tz-index: 1000;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t.product-modal {\n\t\t\tbackground: white;\n\t\t\tpadding: 20px;\n\t\t\t\/* border-radius: 10px; *\/\n\t\t\tmax-width: 600px;\n\t\t\twidth: 90%;\n\t\t\tmax-height: 90vh;\n\t\t\toverflow-y: auto;\n\t\t\tposition: relative;\n\t\t}\n\n\t\t.product-modal .modal-close {\n\t\t\tposition: absolute;\n\t\t\ttop: 10px;\n\t\t\tright: 12px;\n\t\t\tfont-size: 20px;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t\/* ✅ 統一按鈕樣式 *\/\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding-top: 20px;\n\t\t}\n\n\t\t.button-group button {\n\t\t\tpadding: 0px;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #333;\n\t\t\tcursor: pointer;\n\t\t\t\/* border-radius: 5px; *\/\n\t\t\tfont-size: 15px;\n\t\t\tfont-family: 'Microsoft JhengHei';\n\t\t\ttext-decoration: underline;\n\t\t}\n\n\t\t.button-group button.active {\n\t\t\t\/* background-color: #444; *\/\n\t\t}\n\n\t\tbutton:active {\n\t\t\tbox-shadow: none !important;\n\t\t\tcolor: #333 !important;\n\t\t}\n\n\t\t.product-modal table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin-top: 10px;\n\t\t}\n\n\t\t.product-modal th,\n\t\t.product-modal td {\n\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\ttext-align: center;\n\t\t\tpadding: 8px;\n\t\t}\n\n\t\t\/* ✅ 新增的欄寬限制 *\/\n\t\t.product-modal table th:first-child,\n\t\t.product-modal table td:first-child {\n\t\t\twidth: 15%;\n\t\t\tmax-width: 15%;\n\t\t}\n\n\t\t.product-modal .toggle-wrapper {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 10px;\n\t\t\tmargin: 10px 0 20px;\n\t\t}\n\n\t\t.product-modal .toggle {\n\t\t\tposition: relative;\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 50px;\n\t\t\theight: 24px;\n\t\t}\n\n\t\t.product-modal .toggle input {\n\t\t\topacity: 0;\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t}\n\n\t\t.product-modal .slider {\n\t\t\tposition: absolute;\n\t\t\tcursor: pointer;\n\t\t\tbackground-color: #ccc;\n\t\t\tborder-radius: 24px;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\ttransition: 0.4s;\n\t\t}\n\n\t\t.product-modal .slider:before {\n\t\t\tcontent: \"\";\n\t\t\tposition: absolute;\n\t\t\theight: 18px;\n\t\t\twidth: 18px;\n\t\t\tleft: 3px;\n\t\t\tbottom: 3px;\n\t\t\tbackground-color: white;\n\t\t\ttransition: 0.4s;\n\t\t\tborder-radius: 50%;\n\t\t}\n\n\t\t.product-modal input:checked+.slider {\n\t\t\tbackground-color: #333;\n\t\t}\n\n\t\t.product-modal input:checked+.slider:before {\n\t\t\ttransform: translateX(26px);\n\t\t}\n\n\t\t.product-modal .modalInnerContent h3 {\n\t\t\tpadding: 20px 0;\n\n\t\t}\n\t\u003c\/style\u003e\n\n\n\n\n\t\u003c!-- 外部觸發按鈕 --\u003e\n\t\u003cdiv class=\"button-group\"\u003e\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n\t\u003c\/div\u003e\n\n\t\u003c!-- Modal --\u003e\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n\t\t\t\u003c!-- 內部選單 --\u003e\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n\t\t\t\u003c\/div\u003e\n\n\t\t\t\u003c!-- 內容區 --\u003e\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n\t\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cscript\u003e\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\n\n\t\tconst sizeData = {\n\t\t\tcm: [\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n\t\t\t],\n\t\t\tinches: [\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n\t\t\t]\n\t\t};\n\n\t\tfunction openModal(defaultTab) {\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\n\t\t\tmodalOverlay.style.display = \"flex\";\n\t\t\tswitchTab(defaultTab);\n\t\t}\n\n\t\tfunction closeModal() {\n\t\t\tmodalOverlay.style.display = \"none\";\n\t\t\tmodalInner.innerHTML = \"\";\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\n\t\t}\n\n\t\tfunction switchTab(tab) {\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\n\t\t\t});\n\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\n\n\t\t\tif (tab === 'shipping') {\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n\t\t\t} else if (tab === 'care') {\n\t\t\t\tmodalInner.innerHTML = `\n\t\t\u003ch3\u003e洗滌保養\u003c\/h3\u003e\n\t\t\u003col\u003e\n\t\t\t\u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n\t\t\t\u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n\t\t\t\u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n\t\t\t\u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n\t\t\t\u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n\t\t\t\u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n\t\t\t可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n\t\t\u003c\/ol\u003e\n\t\t\u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n\t`;\n\n\t\t\t} else if (tab === 'size') {\n\t\t\t\tmodalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n\t\t\t\trenderSizeTable('cm');\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction renderSizeTable(unit) {\n\t\t\tconst body = document.getElementById(\"tableBody\");\n\t\t\tbody.innerHTML = \"\";\n\t\t\tsizeData[unit].forEach(row =\u003e {\n\t\t\t\tbody.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n\t\t\t});\n\t\t}\n\t\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917807169760,"sku":"B6TC-A12-CH0XSM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917807202528,"sku":"B6TC-A12-CH00SM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917807235296,"sku":"B6TC-A12-CH00MM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917807268064,"sku":"B6TC-A12-CH00LM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48917807300832,"sku":"B6TC-A12-CH0XLM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48917807333600,"sku":"B6TC-A12-CH2XLM","price":5580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-apex-cargo-bib-shorts-charcoal01_1_1_1_1_1_1_1.jpg?v=1773034552"},{"product_id":"a-line-men-s-apex-cargo-bib-shorts-off-white","title":"a Line Men's Apex Cargo Bib Shorts 男款口袋車褲 \/ 米白","description":"\u003cbody\u003ettbici a Line APEX Cargo 車褲以中等厚度機能面料打造，提供穩定支撐與舒適透氣表現，適合長時間騎乘。競技導向剪裁搭配整合式收納口袋，在維持俐落線條的同時，兼顧實用機能，陪你持續向前。\n\n\u003cbr\u003e\u003cbr\u003e\n\n\n\n\n\n\t\u003cmeta charset=\"UTF-8\"\u003e\n\t\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\t\u003cstyle\u003e\n\t\tbody.product-modal-open {\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.product-modal-overlay {\n\t\t\tdisplay: none;\n\t\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100vw;\n\t\t\theight: 100vh;\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\tbackdrop-filter: blur(2px);\n\t\t\tz-index: 1000;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t.product-modal {\n\t\t\tbackground: white;\n\t\t\tpadding: 20px;\n\t\t\t\/* border-radius: 10px; *\/\n\t\t\tmax-width: 600px;\n\t\t\twidth: 90%;\n\t\t\tmax-height: 90vh;\n\t\t\toverflow-y: auto;\n\t\t\tposition: relative;\n\t\t}\n\n\t\t.product-modal .modal-close {\n\t\t\tposition: absolute;\n\t\t\ttop: 10px;\n\t\t\tright: 12px;\n\t\t\tfont-size: 20px;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t\/* ✅ 統一按鈕樣式 *\/\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tgap: 12px;\n\t\t\tpadding-top: 20px;\n\t\t}\n\n\t\t.button-group button {\n\t\t\tpadding: 0px;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #333;\n\t\t\tcursor: pointer;\n\t\t\t\/* border-radius: 5px; *\/\n\t\t\tfont-size: 15px;\n\t\t\tfont-family: 'Microsoft JhengHei';\n\t\t\ttext-decoration: underline;\n\t\t}\n\n\t\t.button-group button.active {\n\t\t\t\/* background-color: #444; *\/\n\t\t}\n\n\t\tbutton:active {\n\t\t\tbox-shadow: none !important;\n\t\t\tcolor: #333 !important;\n\t\t}\n\n\t\t.product-modal table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin-top: 10px;\n\t\t}\n\n\t\t.product-modal th,\n\t\t.product-modal td {\n\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\ttext-align: center;\n\t\t\tpadding: 8px;\n\t\t}\n\n\t\t\/* ✅ 新增的欄寬限制 *\/\n\t\t.product-modal table th:first-child,\n\t\t.product-modal table td:first-child {\n\t\t\twidth: 15%;\n\t\t\tmax-width: 15%;\n\t\t}\n\n\t\t.product-modal .toggle-wrapper {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 10px;\n\t\t\tmargin: 10px 0 20px;\n\t\t}\n\n\t\t.product-modal .toggle {\n\t\t\tposition: relative;\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 50px;\n\t\t\theight: 24px;\n\t\t}\n\n\t\t.product-modal .toggle input {\n\t\t\topacity: 0;\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t}\n\n\t\t.product-modal .slider {\n\t\t\tposition: absolute;\n\t\t\tcursor: pointer;\n\t\t\tbackground-color: #ccc;\n\t\t\tborder-radius: 24px;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t\ttransition: 0.4s;\n\t\t}\n\n\t\t.product-modal .slider:before {\n\t\t\tcontent: \"\";\n\t\t\tposition: absolute;\n\t\t\theight: 18px;\n\t\t\twidth: 18px;\n\t\t\tleft: 3px;\n\t\t\tbottom: 3px;\n\t\t\tbackground-color: white;\n\t\t\ttransition: 0.4s;\n\t\t\tborder-radius: 50%;\n\t\t}\n\n\t\t.product-modal input:checked+.slider {\n\t\t\tbackground-color: #333;\n\t\t}\n\n\t\t.product-modal input:checked+.slider:before {\n\t\t\ttransform: translateX(26px);\n\t\t}\n\n\t\t.product-modal .modalInnerContent h3 {\n\t\t\tpadding: 20px 0;\n\n\t\t}\n\t\u003c\/style\u003e\n\n\n\n\n\t\u003c!-- 外部觸發按鈕 --\u003e\n\t\u003cdiv class=\"button-group\"\u003e\n\t\t\u003c!-- \u003cbutton onclick=\"openModal('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n\t\t\u003cbutton onclick=\"openModal('size')\"\u003e尺寸指南\u003c\/button\u003e\n\t\t\u003cbutton onclick=\"openModal('care')\"\u003e洗滌保養\u003c\/button\u003e\n\t\u003c\/div\u003e\n\n\t\u003c!-- Modal --\u003e\n\t\u003cdiv class=\"product-modal-overlay\" id=\"modalOverlay\"\u003e\n\t\t\u003cdiv class=\"product-modal\" id=\"modalContent\"\u003e\n\t\t\t\u003cdiv class=\"modal-close\" onclick=\"closeModal()\"\u003e×\u003c\/div\u003e\n\n\t\t\t\u003c!-- 內部選單 --\u003e\n\t\t\t\u003cdiv class=\"button-group\" id=\"infoTabs\"\u003e\n\t\t\t\t\u003c!-- \u003cbutton id=\"tab-shipping\" onclick=\"switchTab('shipping')\"\u003e運送詳情\u003c\/button\u003e --\u003e\n\t\t\t\t\u003cbutton id=\"tab-size\" onclick=\"switchTab('size')\"\u003e尺寸指南\u003c\/button\u003e\n\t\t\t\t\u003cbutton id=\"tab-care\" onclick=\"switchTab('care')\"\u003e洗滌保養\u003c\/button\u003e\n\t\t\t\u003c\/div\u003e\n\n\t\t\t\u003c!-- 內容區 --\u003e\n\t\t\t\u003cdiv id=\"modalInnerContent\"\u003e\u003c\/div\u003e\n\t\t\u003c\/div\u003e\n\t\u003c\/div\u003e\n\n\t\u003cscript\u003e\n\t\tconst modalOverlay = document.getElementById(\"modalOverlay\");\n\t\tconst modalInner = document.getElementById(\"modalInnerContent\");\n\n\t\tconst sizeData = {\n\t\t\tcm: [\n\t\t\t\t{ size: 'XS', chest: '80–88', waist: '68–76', hip: '82–90' },\n\t\t\t\t{ size: 'S', chest: '85–93', waist: '73–81', hip: '87–95' },\n\t\t\t\t{ size: 'M', chest: '89–97', waist: '77–85', hip: '91–99' },\n\t\t\t\t{ size: 'L', chest: '93–101', waist: '81–89', hip: '95–103' },\n\t\t\t\t{ size: 'XL', chest: '97–105', waist: '85–93', hip: '99–107' },\n\t\t\t\t{ size: '2XL', chest: '101–109', waist: '89–97', hip: '103–111' }\n\t\t\t],\n\t\t\tinches: [\n\t\t\t\t{ size: 'XS', chest: '32–35', waist: '27–30', hip: '32–35' },\n\t\t\t\t{ size: 'S', chest: '34–37', waist: '29–32', hip: '34–37' },\n\t\t\t\t{ size: 'M', chest: '35–38', waist: '30–33', hip: '36–39' },\n\t\t\t\t{ size: 'L', chest: '37–40', waist: '32–35', hip: '37–40' },\n\t\t\t\t{ size: 'XL', chest: '38–41', waist: '34–37', hip: '39–42' },\n\t\t\t\t{ size: '2XL', chest: '40–43', waist: '35–38', hip: '41–44' }\n\t\t\t]\n\t\t};\n\n\t\tfunction openModal(defaultTab) {\n\t\t\tdocument.body.classList.add(\"product-modal-open\");\n\t\t\tmodalOverlay.style.display = \"flex\";\n\t\t\tswitchTab(defaultTab);\n\t\t}\n\n\t\tfunction closeModal() {\n\t\t\tmodalOverlay.style.display = \"none\";\n\t\t\tmodalInner.innerHTML = \"\";\n\t\t\tdocument.body.classList.remove(\"product-modal-open\");\n\t\t}\n\n\t\tfunction switchTab(tab) {\n\t\t\t['shipping', 'care', 'size'].forEach(id =\u003e {\n\t\t\t\tconst btn = document.getElementById(`tab-${id}`);\n\t\t\t\tif (btn) btn.classList.remove(\"active\");\n\t\t\t});\n\n\t\t\tconst activeBtn = document.getElementById(`tab-${tab}`);\n\t\t\tif (activeBtn) activeBtn.classList.add(\"active\");\n\n\t\t\tif (tab === 'shipping') {\n\t\t\t\tmodalInner.innerHTML = `\u003ch3\u003e運送詳情\u003c\/h3\u003e\u003cp\u003e這裡可以放運送方式、時間、費用等資訊。\u003c\/p\u003e`;\n\t\t\t} else if (tab === 'care') {\n\t\t\t\tmodalInner.innerHTML = `\n\t\t\u003ch3\u003e洗滌保養\u003c\/h3\u003e\n\t\t\u003col\u003e\n\t\t\t\u003cli\u003e車衣在使用時，建議依照顏色深淺搭配著用或是清洗，以降低衣服互相染色的風險。\u003c\/li\u003e\n\t\t\t\u003cli\u003e在使用後，建議第一時間進行清洗，以免滋生細菌產生異味，並容易在車衣上形成汗斑，甚至變黃。\u003c\/li\u003e\n\t\t\t\u003cli\u003e清洗時，記得拉上所有拉鍊，以免布料在清洗過程中受損。使用「冷水＋中性洗劑」浸泡5–10分鐘，再反覆搓揉，換水洗淨即可。\u003cbr\u003e\n\t\t\t\u003cstrong\u003e勿使用冷洗精、柔軟精、漂白水，這類洗劑皆會破壞纖維材質。\u003c\/strong\u003e\u003c\/li\u003e\n\t\t\t\u003cli\u003e盡量手洗，若要丟入洗衣機，務必將所有拉鍊拉上，裝進洗衣袋中反面清洗，建議洗滌模式調整為「柔洗模式」。\u003c\/li\u003e\n\t\t\t\u003cli\u003e洗完切忌勿「擰乾」車衣，並避免使用烘衣機烘乾衣物，以免造成衣物受損。\u003cbr\u003e\n\t\t\t可將衣物包入毛巾中將大部分水份壓出，並晾於通風陰涼處自然風乾。\u003c\/li\u003e\n\t\t\u003c\/ol\u003e\n\t\t\u003cp\u003e\u003cstrong\u003e※ 因所有車衣的製程及染印方法不同，在著用或是下水洗滌都會有多少褪色的問題，不應由此斷定車衣品質的好壞。尤其是越亮色系衣服越容易有褪色問題，強烈建議在使用時，盡量以「相同色系搭配穿著或清洗」。\u003c\/strong\u003e\u003c\/p\u003e\n\t`;\n\n\t\t\t} else if (tab === 'size') {\n\t\t\t\tmodalInner.innerHTML = `\n          \u003ch3\u003e尺寸指南\u003c\/h3\u003e\n          \u003cdiv class=\"toggle-wrapper\"\u003e\n            \u003cspan\u003eCM\u003c\/span\u003e\n            \u003clabel class=\"toggle\"\u003e\n              \u003cinput type=\"checkbox\" id=\"unitToggle\"\u003e\n              \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n            \u003c\/label\u003e\n            \u003cspan\u003eINCHES\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eSIZE\u003c\/th\u003e\n                \u003cth id=\"chestHeader\"\u003e胸圍\u003c\/th\u003e\n                \u003cth id=\"waistHeader\"\u003e腰圍\u003c\/th\u003e\n                \u003cth id=\"hipHeader\"\u003e臀圍\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        `;\n\t\t\t\trenderSizeTable('cm');\n\t\t\t\tdocument.getElementById(\"unitToggle\").addEventListener(\"change\", (e) =\u003e {\n\t\t\t\t\trenderSizeTable(e.target.checked ? 'inches' : 'cm');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction renderSizeTable(unit) {\n\t\t\tconst body = document.getElementById(\"tableBody\");\n\t\t\tbody.innerHTML = \"\";\n\t\t\tsizeData[unit].forEach(row =\u003e {\n\t\t\t\tbody.innerHTML += `\n      \u003ctr\u003e\n        \u003ctd\u003e${row.size}\u003c\/td\u003e\n        \u003ctd\u003e${row.chest}\u003c\/td\u003e\n        \u003ctd\u003e${row.waist}\u003c\/td\u003e\n        \u003ctd\u003e${row.hip}\u003c\/td\u003e\n      \u003c\/tr\u003e`;\n\t\t\t});\n\t\t}\n\t\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"ttbici","offers":[{"title":"XS","offer_id":48917810839776,"sku":"B6TC-A12-BE0XSM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48917810872544,"sku":"B6TC-A12-BE00SM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48917810905312,"sku":"B6TC-A12-BE00MM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48917810938080,"sku":"B6TC-A12-BE00LM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48917810970848,"sku":"B6TC-A12-BE0XLM","price":5580.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48917811003616,"sku":"B6TC-A12-BE2XLM","price":5580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men-s-apex-cargo-bib-shorts-off-white01_1_1_1_1_1_1.jpg?v=1773034563"}],"url":"https:\/\/www.ttbici.com\/collections\/men-bibs.oembed","provider":"TTBICI","version":"1.0","type":"link"}