{"title":"mens-e-Line","description":"\u003cp\u003eTestteset\u003c\/p\u003e","products":[{"product_id":"ttbici-cycling-cap-black","title":"Cycling Cap 棉質車帽 \/ 黑色","description":"\u003cp\u003ettbici 經典棉質車帽，能舒適服貼的配戴在您的安全帽底下，讓您在騎乘前、中、後都能保持舒適且潮流有型。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48070199541984,"sku":"B1TC-C01-BK000N","price":580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc04837_1.jpg?v=1761703981"},{"product_id":"ttbici-cycling-cap-navy","title":"Cycling Cap 棉質車帽 \/ 海軍藍","description":"\u003cp\u003ettbici 經典棉質車帽，能舒適服貼的配戴在您的安全帽底下，讓您在騎乘前、中、後都能保持舒適且潮流有型。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48070200099040,"sku":"B1TC-C01-NY000N","price":580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc04844.jpg?v=1761703987"},{"product_id":"ttbici-cycling-cap-grey","title":"Cycling Cap 棉質車帽 \/ 灰色","description":"\u003cp\u003ettbici 經典棉質車帽，能舒適服貼的配戴在您的安全帽底下，讓您在騎乘前、中、後都能保持舒適且潮流有型。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48070200164576,"sku":"B1TC-C01-GY000N","price":580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc04845.jpg?v=1761703992"},{"product_id":"ttbici-socks-black","title":"Socks 車襪 \/ 黑色","description":"\u003cp\u003ettbici 自行車襪，透氣且吸濕排汗，襪口高彈性結構，方便穿脫，適合騎乘與日常穿搭著用。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"S-M","offer_id":48070266257632,"sku":"B1TC-F01-BK0SMN","price":480.0,"currency_code":"TWD","in_stock":true},{"title":"L-XL","offer_id":48070266290400,"sku":"B1TC-F01-BKLXLN","price":480.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc04794_1.jpg?v=1761708190"},{"product_id":"ttbici-socks-white","title":"Socks 車襪 \/ 白色","description":"\u003cp\u003ettbici 自行車襪，透氣且吸濕排汗，襪口高彈性結構，方便穿脫，適合騎乘與日常穿搭著用。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"S-M","offer_id":48070266323168,"sku":"B1TC-F01-WH0SMN","price":480.0,"currency_code":"TWD","in_stock":true},{"title":"L-XL","offer_id":48070266355936,"sku":"B1TC-F01-WHLXLN","price":480.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc04780_1.jpg?v=1761708196"},{"product_id":"ttbici-e-1-cycling-sunglasses-solid-black-green-lens","title":"E-1 Cycling Sunglasses 騎行運動眼鏡 \/ 純黑色+綠鏡片 (CAT3)","description":"\u003cp\u003ettbici E-1 騎行運動眼鏡，適合各項運動時配戴，一體式鏡面設計，將性能結合時尚風格，不只是抵禦陽光，更是騎乘時的最佳時尚單品。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48073344286944,"sku":"B1TC-EE1-BKGREN","price":2580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/b1tc-ee1-bkgren_1.jpg?v=1761810742"},{"product_id":"ttbici-e-1-cycling-sunglasses-solid-black-mirror-silver-lens","title":"E-1 Cycling Sunglasses 騎行運動眼鏡 \/ 純黑色+鏡面銀鏡片 (CAT3)","description":"\u003cp\u003ettbici E-1 騎行運動眼鏡，適合各項運動時配戴，一體式鏡面設計，將性能結合時尚風格，不只是抵禦陽光，更是騎乘時的最佳時尚單品。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48073344516320,"sku":"B1TC-EE1-BKSILN","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/b1tc-ee1-bksiln_1.jpg?v=1761810748"},{"product_id":"ttbici-e-1-cycling-sunglasses-matte-grey-pink-lens","title":"E-1 Cycling Sunglasses 騎行運動眼鏡 \/ 霧灰色+粉紅鏡片 (CAT1)","description":"\u003cp\u003ettbici E-1 騎行運動眼鏡，適合各項運動時配戴，一體式鏡面設計，將性能結合時尚風格，不只是抵禦陽光，更是騎乘時的最佳時尚單品。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48073344549088,"sku":"B1TC-EE1-GYPINN","price":2580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/b1tc-ee1-gypinn_1.jpg?v=1761810754"},{"product_id":"ttbici-e-1-cycling-sunglasses-matte-grey-mirror-blue-lens","title":"E-1 Cycling Sunglasses 騎行運動眼鏡 \/ 霧灰色+鏡面藍鏡片 (CAT3)","description":"\u003cp\u003ettbici E-1 騎行運動眼鏡，適合各項運動時配戴，一體式鏡面設計，將性能結合時尚風格，不只是抵禦陽光，更是騎乘時的最佳時尚單品。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48073344581856,"sku":"B1TC-EE1-GYBLUN","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/b1tc-ee1-gyblun_1.jpg?v=1761810761"},{"product_id":"ttbici-e-1-cycling-sunglasses-matte-brown-grey-lens","title":"E-1 Cycling Sunglasses 騎行運動眼鏡 \/ 霧棕色+灰鏡片 (CAT3)","description":"\u003cp\u003ettbici E-1 騎行運動眼鏡，適合各項運動時配戴，一體式鏡面設計，將性能結合時尚風格，不只是抵禦陽光，更是騎乘時的最佳時尚單品。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48073344614624,"sku":"B1TC-EE1-BRGRYN","price":2580.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/b1tc-ee1-brgryn_1.jpg?v=1761810767"},{"product_id":"ttbici-e-1-cycling-sunglasses-matte-brown-mirror-gold-lens","title":"E-1 Cycling Sunglasses 騎行運動眼鏡 \/ 霧棕色+鏡面金鏡片 (CAT3)","description":"\u003cp\u003ettbici E-1 騎行運動眼鏡，適合各項運動時配戴，一體式鏡面設計，將性能結合時尚風格，不只是抵禦陽光，更是騎乘時的最佳時尚單品。\u003c\/p\u003e","brand":"ttbici","offers":[{"title":"Default Title","offer_id":48073344778464,"sku":"B1TC-EE1-BRGOLN","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/b1tc-ee1-brgoln_1.jpg?v=1761810774"},{"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-e-line-men-s-classic-jersey-black","title":"e Line Men's Classic Jersey 男款經典車衣 \/ 黑色","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":48088710643936,"sku":"B6TC-E01-BK0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088710676704,"sku":"B6TC-E01-BK00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088710709472,"sku":"B6TC-E01-BK00MM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48088710742240,"sku":"B6TC-E01-BK00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088710775008,"sku":"B6TC-E01-BK0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088710807776,"sku":"B6TC-E01-BK2XLM","price":2880.0,"currency_code":"TWD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09572.jpg?v=1762236332"},{"product_id":"ttbici-e-line-men-s-classic-jersey-navy","title":"e Line Men's Classic Jersey 男款經典車衣 \/ 海軍藍","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":48088712610016,"sku":"B6TC-E01-NY0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088712642784,"sku":"B6TC-E01-NY00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088712675552,"sku":"B6TC-E01-NY00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48088712708320,"sku":"B6TC-E01-NY00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088712741088,"sku":"B6TC-E01-NY0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088712773856,"sku":"B6TC-E01-NY2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09581-3_color-deep_blue.jpg?v=1762236341"},{"product_id":"ttbici-e-line-men-s-classic-jersey-beige","title":"e Line Men's Classic Jersey 男款經典車衣 \/ 米白色","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":48088713593056,"sku":"B6TC-E01-BE0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088713625824,"sku":"B6TC-E01-BE00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088713658592,"sku":"B6TC-E01-BE00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48088713691360,"sku":"B6TC-E01-BE00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088713724128,"sku":"B6TC-E01-BE0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088713756896,"sku":"B6TC-E01-BE2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09586_a.jpg?v=1762236351"},{"product_id":"ttbici-e-line-men-s-classic-jersey-brown","title":"e Line Men's Classic Jersey 男款經典車衣 \/ 棕色","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":48088714445024,"sku":"B6TC-E01-BR0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088714477792,"sku":"B6TC-E01-BR00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088714510560,"sku":"B6TC-E01-BR00MM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48088714543328,"sku":"B6TC-E01-BR00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088714576096,"sku":"B6TC-E01-BR0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088714608864,"sku":"B6TC-E01-BR2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09581-3_color-light_brown.jpg?v=1762236361"},{"product_id":"ttbici-e-line-men-s-classic-jersey-pine-green","title":"e Line Men's Classic Jersey 男款經典車衣 \/ 松綠色","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":48088715264224,"sku":"B6TC-E01-GR0XSM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48088715296992,"sku":"B6TC-E01-GR00SM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48088715329760,"sku":"B6TC-E01-GR00MM","price":2880.0,"currency_code":"TWD","in_stock":false},{"title":"L","offer_id":48088715362528,"sku":"B6TC-E01-GR00LM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48088715395296,"sku":"B6TC-E01-GR0XLM","price":2880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48088715428064,"sku":"B6TC-E01-GR2XLM","price":2880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/dsc09581-3_color-deep_green_a.jpg?v=1762236370"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-black","title":"e Line Men's Classic Thermal Ls Jersey 男款經典保暖長袖車衣 \/ 黑色","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":48531779879136,"sku":"B6TC-E03-BK0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531779911904,"sku":"B6TC-E03-BK00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531779944672,"sku":"B6TC-E03-BK00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531779977440,"sku":"B6TC-E03-BK00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531780010208,"sku":"B6TC-E03-BK0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531780042976,"sku":"B6TC-E03-BK2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_black_01.jpg?v=1768183321"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-maroon","title":"e Line Men's Classic Thermal Ls Jersey 男款經典保暖長袖車衣 \/ 栗紅色","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":48531780075744,"sku":"B6TC-E03-MT0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531780108512,"sku":"B6TC-E03-MT00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531780141280,"sku":"B6TC-E03-MT00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531780174048,"sku":"B6TC-E03-MT00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531780206816,"sku":"B6TC-E03-MT0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531780239584,"sku":"B6TC-E03-MT2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_maroon_01.jpg?v=1768183333"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-cream","title":"e Line Men's Classic Thermal Ls Jersey 男款經典保暖長袖車衣 \/ 奶油白","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":48531781288160,"sku":"B6TC-E03-CR0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531781320928,"sku":"B6TC-E03-CR00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531781353696,"sku":"B6TC-E03-CR00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531781386464,"sku":"B6TC-E03-CR00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531781419232,"sku":"B6TC-E03-CR0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531781452000,"sku":"B6TC-E03-CR2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_cream_01.jpg?v=1768183343"},{"product_id":"e-line-men-s-classic-thermal-ls-jersey-milky-blue","title":"e Line Men's Classic Thermal Ls Jersey 男款經典保暖長袖車衣 \/ 馬卡龍藍","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":48531781517536,"sku":"B6TC-E03-BL0XSM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"S","offer_id":48531781550304,"sku":"B6TC-E03-BL00SM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"M","offer_id":48531781583072,"sku":"B6TC-E03-BL00MM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"L","offer_id":48531781615840,"sku":"B6TC-E03-BL00LM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"XL","offer_id":48531781648608,"sku":"B6TC-E03-BL0XLM","price":3880.0,"currency_code":"TWD","in_stock":true},{"title":"2XL","offer_id":48531781681376,"sku":"B6TC-E03-BL2XLM","price":3880.0,"currency_code":"TWD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/files\/men_classic_thermal_ls_jersey_milky_blue_01.jpg?v=1768183352"},{"product_id":"e-line-men-s-classic-thermal-tights-black","title":"e Line 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"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0775\/9714\/7360\/collections\/eline-mainbg_2.jpg?v=1772680927","url":"https:\/\/www.ttbici.com\/collections\/mens-e-line.oembed","provider":"TTBICI","version":"1.0","type":"link"}