{"product_id":"floral-bear-bunny-off-shoulder-sweatshirt-pants-set","title":"Floral Bear Bunny Off-Shoulder Sweatshirt \u0026 Pants Set","description":"\u003cstyle type=\"text\/css\"\u003e.product-details h2 {\n    cursor: pointer;\n    padding: 10px;\n    margin: 0;\n    font-size: 18px;\n    font-weight: bold;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    color: black;\n    user-select: none;\n  }\n  .product-details h2 .arrow { margin-left: 8px; }\n\n  .detail-content { display: none; margin: 0; padding: 0; }\n  .detail-content[aria-hidden=\"false\"] { display: block; }\n\n  .detail-content-table {\n    width: auto; min-width: 100%;\n    border-collapse: collapse; margin-top: 10px; table-layout: auto;\n  }\n  .detail-content-table th, .detail-content-table td {\n    border: 1px solid black; padding: 8px; text-align: left; color: black; font-size: 14px; white-space: nowrap;\n  }\n\n  .product-intro { margin-bottom: 20px; }\n  .product-intro h5 { font-size: 23px; font-weight: bold; color: black; text-transform: capitalize; line-height: 1.2; }\n  .product-intro h6 { font-size: 15px; color: black; line-height: 1.6; font-weight: normal; }\n\n  .table-container { overflow-x: auto; overflow-y: hidden; width: 100%; position: relative; padding-bottom: 8px; }\n  .scroll-indicator {\n    position: absolute; bottom: 0; height: 4px; width: 100%;\n    background: linear-gradient(to right, #eee, #bbb);\n    border-radius: 2px; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .2s;\n  }\n  .table-container.scrolling .scroll-indicator { opacity: 1; }\n\n  .toggle-button { padding: 8px 16px; margin-right: 10px; background-color: #f1f1f1; border: 1px solid #ccc; cursor: pointer; border-radius: 2px; }\n  .toggle-button.active { background-color: #000; color: #fff; }\n\n  @media (max-width: 768px) { .product-details h2 { padding: 12px 8px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"product-intro\"\u003e\n\u003ch5\u003e\u003cstrong\u003eDescription\u003c\/strong\u003e\u003c\/h5\u003e\n\n\u003ch6\u003eProduct Name: \u003cspan id=\"pd-title\"\u003eFloral Bear Bunny Off-Shoulder Sweatshirt \u0026amp; Pants Set\u003c\/span\u003e\u003cbr\u003e\n\u003cbr\u003e\n\u003cspan id=\"pd-desc\"\u003e Off-shoulder sweatshirt set with a custom rib neckline for a soft, romantic look. Cozy knit fabric smooths the shoulder-neck line without feeling tight. High-definition custom print—delicate, color-fast graphics. Two-way zipper with a logo bow metal tag makes dressing easier while adding a refined touch. Pants feature an elastic waistband with an adjustable webbing belt for comfort and flexible fit across body shapes. \u003c\/span\u003e\n\u003c\/h6\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"product-details\" id=\"pd-wrap\"\u003e\n\u003c!-- 单位切换 --\u003e\n\u003cdiv aria-label=\"Unit Toggle\" role=\"tablist\" style=\"margin: 8px 0 6px;\"\u003e\n\u003cbutton aria-controls=\"size-top-cm size-bottom-cm model-info-cm\" aria-selected=\"true\" class=\"toggle-button active\" id=\"size-cm-btn\"\u003eSIZE in cm\u003c\/button\u003e\u003cbutton aria-controls=\"size-top-inch size-bottom-inch model-info-inch\" aria-selected=\"false\" class=\"toggle-button\" id=\"size-inch-btn\"\u003eSIZE in inch\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Size Chart（上装+下装） --\u003e\n\n\u003ch2 aria-expanded=\"true\" data-toggle-target=\"size-section\" role=\"button\" tabindex=\"0\"\u003eSize Chart \u003cspan class=\"arrow\"\u003e—\u003c\/span\u003e\n\u003c\/h2\u003e\n\n\u003cdiv aria-hidden=\"false\" class=\"detail-content\" id=\"size-section\"\u003e\n\u003c!-- 上装 Top --\u003e\n\u003cdiv aria-hidden=\"false\" class=\"detail-content\" id=\"size-top-cm\"\u003e\n\u003cdiv class=\"table-container\"\u003e\n\u003cdiv class=\"scroll-indicator\"\u003e \u003c\/div\u003e\n\n\u003ctable class=\"detail-content-table\" id=\"size-table-top-cm\"\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eSize\u003c\/th\u003e\n\t\t\t\u003cth\u003eLength (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eBust (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eShoulder (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eSleeve (cm)\u003c\/th\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/thead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eS\u003c\/td\u003e\n\t\t\t\u003ctd\u003e50\u003c\/td\u003e\n\t\t\t\u003ctd\u003e95\u003c\/td\u003e\n\t\t\t\u003ctd\u003e59\u003c\/td\u003e\n\t\t\t\u003ctd\u003e50\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eM\u003c\/td\u003e\n\t\t\t\u003ctd\u003e51\u003c\/td\u003e\n\t\t\t\u003ctd\u003e99\u003c\/td\u003e\n\t\t\t\u003ctd\u003e60\u003c\/td\u003e\n\t\t\t\u003ctd\u003e51\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eL\u003c\/td\u003e\n\t\t\t\u003ctd\u003e52\u003c\/td\u003e\n\t\t\t\u003ctd\u003e103\u003c\/td\u003e\n\t\t\t\u003ctd\u003e61\u003c\/td\u003e\n\t\t\t\u003ctd\u003e52\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv aria-hidden=\"true\" class=\"detail-content\" id=\"size-top-inch\"\u003e\n\u003cdiv class=\"table-container\"\u003e\n\u003cdiv class=\"scroll-indicator\"\u003e \u003c\/div\u003e\n\n\u003ctable class=\"detail-content-table\" id=\"size-table-top-inch\"\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eSize\u003c\/th\u003e\n\t\t\t\u003cth\u003eLength (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eBust (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eShoulder (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eSleeve (in)\u003c\/th\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/thead\u003e\n\t\u003ctbody\u003e\n\u003c!-- 自动填充 --\u003e\n\t\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 下装 Bottom --\u003e\n\n\u003cdiv aria-hidden=\"false\" class=\"detail-content\" id=\"size-bottom-cm\" style=\"margin-top:10px;\"\u003e\n\u003cdiv class=\"table-container\"\u003e\n\u003cdiv class=\"scroll-indicator\"\u003e \u003c\/div\u003e\n\n\u003ctable class=\"detail-content-table\" id=\"size-table-bottom-cm\"\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eSize\u003c\/th\u003e\n\t\t\t\u003cth\u003eOutseam (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eWaist (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eThigh (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eLeg Opening (cm)\u003c\/th\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/thead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eS\u003c\/td\u003e\n\t\t\t\u003ctd\u003e104\u003c\/td\u003e\n\t\t\t\u003ctd\u003e66\u003c\/td\u003e\n\t\t\t\u003ctd\u003e56\u003c\/td\u003e\n\t\t\t\u003ctd\u003e53\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eM\u003c\/td\u003e\n\t\t\t\u003ctd\u003e105\u003c\/td\u003e\n\t\t\t\u003ctd\u003e70\u003c\/td\u003e\n\t\t\t\u003ctd\u003e58\u003c\/td\u003e\n\t\t\t\u003ctd\u003e55\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eL\u003c\/td\u003e\n\t\t\t\u003ctd\u003e106\u003c\/td\u003e\n\t\t\t\u003ctd\u003e74\u003c\/td\u003e\n\t\t\t\u003ctd\u003e60\u003c\/td\u003e\n\t\t\t\u003ctd\u003e57\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv aria-hidden=\"true\" class=\"detail-content\" id=\"size-bottom-inch\"\u003e\n\u003cdiv class=\"table-container\"\u003e\n\u003cdiv class=\"scroll-indicator\"\u003e \u003c\/div\u003e\n\n\u003ctable class=\"detail-content-table\" id=\"size-table-bottom-inch\"\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eSize\u003c\/th\u003e\n\t\t\t\u003cth\u003eOutseam (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eWaist (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eThigh (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eLeg Opening (in)\u003c\/th\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/thead\u003e\n\t\u003ctbody\u003e\n\u003c!-- 自动填充 --\u003e\n\t\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Model Info --\u003e\n\n\u003ch2 aria-expanded=\"true\" data-toggle-target=\"model-section\" role=\"button\" tabindex=\"0\"\u003eModel Info \u003cspan class=\"arrow\"\u003e—\u003c\/span\u003e\n\u003c\/h2\u003e\n\n\u003cdiv aria-hidden=\"false\" class=\"detail-content\" id=\"model-section\"\u003e\n\u003c!-- CM（体重可留空） --\u003e\n\u003cdiv aria-hidden=\"false\" class=\"detail-content\" id=\"model-info-cm\"\u003e\n\u003cdiv class=\"table-container\"\u003e\n\u003cdiv class=\"scroll-indicator\"\u003e \u003c\/div\u003e\n\n\u003ctable class=\"detail-content-table\" id=\"model-table-cm\"\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eModel Height (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eWeight (kg)\u003c\/th\u003e\n\t\t\t\u003cth\u003eBust\/Waist\/Hips (cm)\u003c\/th\u003e\n\t\t\t\u003cth\u003eSize\u003c\/th\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/thead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e171\u003c\/td\u003e\n\t\t\t\u003ctd\u003e \u003c\/td\u003e\n\t\t\t\u003ctd\u003e72\/59\/81\u003c\/td\u003e\n\t\t\t\u003ctd\u003eS\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e170\u003c\/td\u003e\n\t\t\t\u003ctd\u003e \u003c\/td\u003e\n\t\t\t\u003ctd\u003e88\/59\/77\u003c\/td\u003e\n\t\t\t\u003ctd\u003eS\u003c\/td\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- INCH\/LBS（自动生成） --\u003e\n\n\u003cdiv aria-hidden=\"true\" class=\"detail-content\" id=\"model-info-inch\"\u003e\n\u003cdiv class=\"table-container\"\u003e\n\u003cdiv class=\"scroll-indicator\"\u003e \u003c\/div\u003e\n\n\u003ctable class=\"detail-content-table\" id=\"model-table-inch\"\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eModel Height (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eWeight (lbs)\u003c\/th\u003e\n\t\t\t\u003cth\u003eBust\/Waist\/Hips (in)\u003c\/th\u003e\n\t\t\t\u003cth\u003eSize\u003c\/th\u003e\n\t\t\u003c\/tr\u003e\n\t\u003c\/thead\u003e\n\t\u003ctbody\u003e\n\u003c!-- 自动填充 --\u003e\n\t\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Composition --\u003e\n\n\u003ch2 aria-expanded=\"false\" data-toggle-target=\"composition\" id=\"composition-header\" role=\"button\" tabindex=\"0\"\u003eComposition \u003cspan class=\"arrow\"\u003e+\u003c\/span\u003e\n\u003c\/h2\u003e\n\n\u003cdiv aria-hidden=\"true\" class=\"detail-content\" id=\"composition\"\u003e\n\u003cp id=\"pd-fabric\"\u003eFabric A: 65% Cotton, 35% Polyester    Fabric B: 95% Polyester, 5% Spandex    Fabric C: 50% Viscose, 22% Nylon, 28% Polyester\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  const $ = (s, r=document) =\u003e r.querySelector(s);\n  const $$ = (s, r=document) =\u003e Array.from(r.querySelectorAll(s));\n\n  const cmBtn = $('#size-cm-btn');\n  const inchBtn = $('#size-inch-btn');\n  const cmPanels = ['size-top-cm','size-bottom-cm','model-info-cm'].map(id=\u003edocument.getElementById(id));\n  const inchPanels = ['size-top-inch','size-bottom-inch','model-info-inch'].map(id=\u003edocument.getElementById(id));\n\n  \/\/ 折叠切换\n  $$('#pd-wrap h2[data-toggle-target]').forEach(h2=\u003e{\n    h2.addEventListener('click',()=\u003etoggle(h2));\n    h2.addEventListener('keydown',e=\u003e{ if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle(h2);} });\n  });\n  function toggle(h2){\n    const id = h2.getAttribute('data-toggle-target');\n    const panel = document.getElementById(id);\n    const expanded = h2.getAttribute('aria-expanded') === 'true';\n    h2.setAttribute('aria-expanded', String(!expanded));\n    panel.setAttribute('aria-hidden', String(expanded));\n    const arrow = h2.querySelector('.arrow');\n    if (arrow) arrow.textContent = expanded ? '+' : '—';\n  }\n\n  \/\/ 单位切换\n  cmBtn.addEventListener('click',()=\u003eswitchUnit(true));\n  inchBtn.addEventListener('click',()=\u003eswitchUnit(false));\n  function switchUnit(isCm){\n    cmBtn.classList.toggle('active', isCm);\n    inchBtn.classList.toggle('active', !isCm);\n    cmBtn.setAttribute('aria-selected', String(isCm));\n    inchBtn.setAttribute('aria-selected', String(!isCm));\n    cmPanels.forEach(p=\u003ep.setAttribute('aria-hidden', String(!isCm)));\n    inchPanels.forEach(p=\u003ep.setAttribute('aria-hidden', String(isCm)));\n  }\n\n  \/\/ 滚动指示\n  $$('.table-container').forEach(tc=\u003e{\n    const ind = $('.scroll-indicator', tc);\n    const onScroll = ()=\u003e{\n      const max = tc.scrollWidth - tc.clientWidth;\n      if (max \u003e 6 \u0026\u0026 tc.scrollLeft \u003c max) tc.classList.add('scrolling');\n      else tc.classList.remove('scrolling');\n    };\n    tc.addEventListener('scroll', onScroll);\n    window.addEventListener('resize', onScroll);\n    onScroll();\n  });\n\n  \/\/ 工具\n  const toIn = cm =\u003e cm\/2.54;\n  const round1 = v =\u003e (Math.round(v*10)\/10).toFixed(1);\n  const cmTripletToIn = str=\u003e{\n    if(!str) return '';\n    const parts = String(str).split('\/').map(x=\u003eparseFloat(x));\n    if(parts.some(isNaN)) return '';\n    return parts.map(v=\u003eround1(toIn(v))).join('\"\/') + '\"';\n  };\n  const cmToFeetInches = cm=\u003e{\n    const t = toIn(cm);\n    const ft = Math.floor(t\/12);\n    const inch = Math.round(t - ft*12);\n    return `${ft}'${inch}\"`;\n  };\n\n  \/\/ 统一转换函数（读一张CM表 -\u003e 写对应inch表）\n  function cmTableToInch(cmTableSel, inchTbodySel, orderMap){\n    const cmTable = $(cmTableSel);\n    const tbody = $(inchTbodySel);\n    if(!cmTable || !tbody) return;\n    tbody.innerHTML = '';\n    $$('tbody tr', cmTable).forEach(tr=\u003e{\n      const tds = $$('td', tr).map(td=\u003etd.textContent.trim());\n      if(!tds.length) return;\n      const size = tds[0];\n      const nums = tds.slice(1).map(v=\u003eparseFloat(v));\n      const row = document.createElement('tr');\n      const converted = nums.map(v=\u003eisNaN(v)?'':round1(toIn(v)));\n      \/\/ 根据 orderMap 控制列顺序（某些表的列顺不同）\n      const ordered = orderMap ? orderMap(converted) : converted;\n      row.innerHTML = `\u003ctd\u003e${size}\u003c\/td\u003e` + ordered.map(v=\u003e`\u003ctd\u003e${v}\u003c\/td\u003e`).join('');\n      tbody.appendChild(row);\n    });\n  }\n\n  \/\/ 生成两张 inch 尺码表\n  cmTableToInch('#size-table-top-cm', '#size-table-top-inch tbody');\n  cmTableToInch('#size-table-bottom-cm', '#size-table-bottom-inch tbody');\n\n  \/\/ 生成模特 inch\/lbs\n  function populateModelInch(){\n    const cmTable = $('#model-table-cm');\n    const inchTbody = $('#model-table-inch tbody');\n    if(!cmTable || !inchTbody) return;\n    inchTbody.innerHTML = '';\n    $$('tbody tr', cmTable).forEach(tr=\u003e{\n      const [hTd,wTd,bwhTd,sizeTd] = $$('td', tr);\n      const h = parseFloat(hTd?.textContent);\n      const w = parseFloat(wTd?.textContent);\n      const bwh = (bwhTd?.textContent || '').trim();\n      const size = (sizeTd?.textContent || '').trim();\n\n      const heightIn = isNaN(h)?'':cmToFeetInches(h);\n      const lbs = isNaN(w)?'':Math.round(w*2.20462262);\n      const bwhIn = bwh ? cmTripletToIn(bwh) : '';\n\n      const r = document.createElement('tr');\n      r.innerHTML = `\u003ctd\u003e${heightIn}\u003c\/td\u003e\u003ctd\u003e${lbs}\u003c\/td\u003e\u003ctd\u003e${bwhIn}\u003c\/td\u003e\u003ctd\u003e${size}\u003c\/td\u003e`;\n      inchTbody.appendChild(r);\n    });\n  }\n  populateModelInch();\n\n  \/\/ 若体重整列为空则隐藏该列（中英两表同步）\n  (function autoHideWeight(){\n    const cmTable = $('#model-table-cm');\n    const inchTable = $('#model-table-inch');\n    if(!cmTable || !inchTable) return;\n    const idx = 1; \/\/ Weight 列索引（从0开始的第1列）\n    const allEmpty = $$('tbody tr', cmTable).every(tr =\u003e !tr.children[idx+1]?.textContent.trim());\n    if(allEmpty){\n      cmTable.querySelector(`thead tr th:nth-child(${idx+2})`)?.remove();\n      $$('tbody tr', cmTable).forEach(tr=\u003e tr.children[idx+1]?.remove());\n      inchTable.querySelector(`thead tr th:nth-child(${idx+2})`)?.remove();\n      $$('tbody tr', inchTable).forEach(tr=\u003e tr.children[idx+1]?.remove());\n    }\n  })();\n})();\n\u003c\/script\u003e","brand":"Final Sale","offers":[{"title":"Beige Pants \/ L","offer_id":47054849769655,"sku":"FINAL SALE","price":29.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0694\/9830\/6743\/files\/48c17f0c70e4019947e5188da642af0e.jpg?v=1758911554","url":"https:\/\/chinanio.com\/products\/floral-bear-bunny-off-shoulder-sweatshirt-pants-set","provider":"CHINANIO","version":"1.0","type":"link"}