{"product_id":"cloud-essentials-sweats-mocha","title":"V1 Cloud Sweats — Mocha","description":"\u003cstyle\u003e\n  .collapsible-container {\n    margin-top: 20px;\n    border-top: 1px solid #ddd;\n  }\n\n  .collapsible-header {\n    cursor: pointer;\n    font-weight: bold;\n    padding: 15px 0;\n    font-size: 16px;\n    border-bottom: 1px solid #eee;\n    text-transform: uppercase;\n  }\n\n  .collapsible-content {\n    display: none;\n    padding: 10px 0;\n    font-size: 13px;\n    color: #555;\n    word-spacing: normal;\n    letter-spacing: normal;\n    text-align: left;\n  }\n\n  .collapsible-content p,\n  .collapsible-content li {\n    margin: 0 0 6px 0;\n    text-align: left;\n    word-spacing: normal;\n    letter-spacing: normal;\n  }\n\n  .collapsible-content p strong {\n    display: inline-block;\n    margin-bottom: 0;\n  }\n\n  .collapsible-content p:has(strong) {\n    margin-bottom: 0;\n  }\n\n  .collapsible-content ul {\n    list-style: disc;\n    margin: 8px 0 8px 20px;\n    padding: 0;\n  }\n\n  .collapsible-content li {\n    margin-bottom: 4px;\n  }\n\n  .collapsible-content a {\n    color: #000;\n    text-decoration: underline;\n  }\n\n  \/* ===== Size chart (scoped so nothing else breaks) ===== *\/\n  .size-chart { text-align: center; font-size: 13px; color: inherit; }\n  .size-chart h4 { \n    font-weight: 600; \n    margin: 4px 0 14px 0; \n    font-size: 15px; \n    text-transform: none; \n    letter-spacing: normal;\n  }\n  .size-chart__tabs {\n    display: inline-flex; \n    gap: 22px; \n    margin-bottom: 14px; \n    border-bottom: 1px solid transparent;\n  }\n  .size-chart__tab {\n    cursor: pointer;\n    padding-bottom: 6px;\n    display: inline-block;\n    font-weight: 600;\n    letter-spacing: normal;\n  }\n  .size-chart__tab[aria-selected=\"true\"] {\n    border-bottom: 2px solid #000;\n  }\n  .size-chart__grid {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(60px, 1fr));\n    gap: 10px;\n    justify-items: center;\n  }\n  .size-chart__cell-label {\n    font-weight: 600;\n    margin-bottom: 2px;\n  }\n  .size-chart__cell-value { color: inherit; }\n\u003c\/style\u003e\n\n\u003cdiv class=\"collapsible-container\"\u003e\n  \u003cdiv class=\"collapsible-header\" onclick=\"toggleContent(this)\"\u003e\n    DETAILS\n  \u003c\/div\u003e\n  \u003cdiv class=\"collapsible-content\"\u003e\n    \u003cp\u003eThese all-year-round staple 500 GSM sweats mark the first release of our Cloud Essentials Collection, created to uplift your everyday wardrobe with our comfortable silhouettes\u003c\/p\u003e\n    \u003cul\u003e\n      \u003cli\u003eSlightly oversized\u003c\/li\u003e\n      \u003cli\u003eLined front pockets\u003c\/li\u003e\n      \u003cli\u003eSpacious back pocket\u003c\/li\u003e\n      \u003cli\u003e6cm tall waistband\u003c\/li\u003e\n      \u003cli\u003eDesigned in Denmark\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cp\u003e\u003cstrong\u003eMaterial:\u003c\/strong\u003e 85% cotton, 15% polyester\u003c\/p\u003e\n    \u003cp\u003eCurated from a 500 GSM premium cotton–poly blend fleece, this fabric is cozier, softer, and more comfortable than we could have ever imagined\u003c\/p\u003e \n  \u003c\/div\u003e\n\n  \u003cdiv class=\"collapsible-header\" onclick=\"toggleContent(this)\"\u003e\n    PRODUCT CARE\n  \u003c\/div\u003e\n  \u003cdiv class=\"collapsible-content\"\u003e\n    \u003cul\u003e\n      \u003cli\u003eHand wash or machine wash on cold\u003c\/li\u003e\n      \u003cli\u003eHang dry or over towel\u003c\/li\u003e\n      \u003cli\u003eDo not use tumble dryer or any type of heat\/sun drying\u003c\/li\u003e\n      \u003cli\u003eDo not bleach\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"collapsible-header\" onclick=\"toggleContent(this)\"\u003e\n    SIZE GUIDE\n  \u003c\/div\u003e\n  \u003cdiv class=\"collapsible-content\"\u003e\n\n    \u003c!-- ===== Size chart ===== --\u003e\n    \u003cdiv class=\"size-chart\" id=\"sizeChart\" role=\"group\" aria-label=\"Select a size\"\u003e\n      \u003ch4\u003eSelect a Size\u003c\/h4\u003e\n\n      \u003cdiv class=\"size-chart__tabs\" role=\"tablist\" aria-label=\"Sizes\"\u003e\n        \u003cspan class=\"size-chart__tab\" role=\"tab\" tabindex=\"0\" data-size=\"S\" aria-selected=\"true\"\u003eS\u003c\/span\u003e\n        \u003cspan class=\"size-chart__tab\" role=\"tab\" tabindex=\"-1\" data-size=\"M\" aria-selected=\"false\"\u003eM\u003c\/span\u003e\n        \u003cspan class=\"size-chart__tab\" role=\"tab\" tabindex=\"-1\" data-size=\"L\" aria-selected=\"false\"\u003eL\u003c\/span\u003e\n        \u003cspan class=\"size-chart__tab\" role=\"tab\" tabindex=\"-1\" data-size=\"XL\" aria-selected=\"false\"\u003eXL\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"size-chart__grid\" aria-live=\"polite\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"size-chart__cell-label\"\u003eLength\u003c\/div\u003e\n          \u003cdiv class=\"size-chart__cell-value\" data-field=\"length\"\u003e13 cm\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"size-chart__cell-label\"\u003eInseam\u003c\/div\u003e\n          \u003cdiv class=\"size-chart__cell-value\" data-field=\"inseam\"\u003e28 cm\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"size-chart__cell-label\"\u003eWaist\u003c\/div\u003e\n          \u003cdiv class=\"size-chart__cell-value\" data-field=\"waist\"\u003e29 cm\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"size-chart__cell-label\"\u003eThigh\u003c\/div\u003e\n          \u003cdiv class=\"size-chart__cell-value\" data-field=\"thigh\"\u003e6 cm\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- ===== model info + new line below size chart ===== --\u003e\n    \u003cul\u003e\n      \u003cli\u003eModel is 187cm \u0026amp; 83kg wearing size L\u003c\/li\u003e\n      \u003cli\u003eAll measurements are garment measurements and are shown in centimeters (CM)\u003c\/li\u003e\n    \u003c\/ul\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  function toggleContent(header) {\n    const content = header.nextElementSibling;\n    content.style.display = content.style.display === \"block\" ? \"none\" : \"block\";\n  }\n\u003c\/script\u003e\n\n\u003c!-- Replaces ONLY the previous size-chart logic block --\u003e\n\u003cscript\u003e\n  \/* ===== Size chart logic (mobile-safe via delegation) ===== *\/\n  (function () {\n    const sizeChartData = {\n      \"S\":  { length: \"102 cm\", inseam: \"70 cm\", waist: \"72 cm\", thigh: \"70 cm\" },\n      \"M\":  { length: \"104 cm\", inseam: \"71 cm\", waist: \"77 cm\", thigh: \"72.5 cm\" },\n      \"L\":  { length: \"106 cm\", inseam: \"72 cm\", waist: \"82 cm\", thigh: \"75 cm\" },\n      \"XL\": { length: \"108 cm\", inseam: \"73 cm\", waist: \"87 cm\", thigh: \"77.5 cm\" }\n    };\n\n    function setActive(root, size) {\n      if (!root) return;\n\n      const tabs = root.querySelectorAll('.size-chart__tab');\n      tabs.forEach(t =\u003e {\n        const isActive = t.getAttribute('data-size') === size;\n        t.setAttribute('aria-selected', isActive ? 'true' : 'false');\n        t.setAttribute('tabindex', isActive ? '0' : '-1');\n      });\n\n      const fields = {\n        length: root.querySelector('[data-field=\"length\"]'),\n        inseam: root.querySelector('[data-field=\"inseam\"]'),\n        waist:  root.querySelector('[data-field=\"waist\"]'),\n        thigh:  root.querySelector('[data-field=\"thigh\"]')\n      };\n\n      const data = sizeChartData[size];\n      if (!data || !fields.length) return;\n\n      fields.length.textContent = data.length;\n      fields.inseam.textContent = data.inseam;\n      fields.waist.textContent  = data.waist;\n      fields.thigh.textContent  = data.thigh;\n    }\n\n    document.addEventListener('click', function (e) {\n      const tab = e.target.closest('.size-chart__tab');\n      if (!tab) return;\n      const root = tab.closest('.size-chart');\n      if (!root) return;\n      setActive(root, tab.getAttribute('data-size'));\n    }, { passive: true });\n\n    document.addEventListener('keydown', function (e) {\n      const focused = document.activeElement;\n      if (!focused || !focused.classList?.contains('size-chart__tab')) return;\n\n      const root = focused.closest('.size-chart');\n      const tabs = Array.from(root.querySelectorAll('.size-chart__tab'));\n      const i = tabs.indexOf(focused);\n\n      if (e.key === 'Enter' || e.key === ' ') {\n        e.preventDefault();\n        setActive(root, focused.getAttribute('data-size'));\n      } else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n        e.preventDefault();\n        const dir = e.key === 'ArrowRight' ? 1 : -1;\n        const next = tabs[(i + dir + tabs.length) % tabs.length];\n        next.focus();\n      }\n    });\n\n    function initAll() {\n      document.querySelectorAll('.size-chart').forEach(root =\u003e setActive(root, 'S'));\n    }\n    document.addEventListener('DOMContentLoaded', initAll);\n    document.addEventListener('shopify:section:load', initAll);\n    document.addEventListener('shopify:section:reorder', initAll);\n  })();\n\u003c\/script\u003e","brand":"CloudClo","offers":[{"title":"S","offer_id":56576751731075,"sku":"CL-SP-MOC-S-FW25","price":565.5,"currency_code":"DKK","in_stock":true},{"title":"M","offer_id":56576751763843,"sku":"CL-SP-MOC-M-FW25","price":565.5,"currency_code":"DKK","in_stock":true},{"title":"L","offer_id":56576751796611,"sku":"CL-SP-MOC-L-FW25","price":565.5,"currency_code":"DKK","in_stock":true},{"title":"XL","offer_id":56576751829379,"sku":"CL-HD-SP-XL-FW25","price":565.5,"currency_code":"DKK","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0914\/5217\/8819\/files\/Cloud-Essentials-Sweats-Mocha-JPG.jpg?v=1762435681","url":"https:\/\/www.cloudclo.dk\/products\/cloud-essentials-sweats-mocha","provider":"CloudClo","version":"1.0","type":"link"}