{"title":"GrindActiveKinetics │ Men T-Shirts","description":"\u003cp\u003eMade to move. Our \u003cstrong data-start=\"891\" data-end=\"923\"\u003eGrindActiveKinetics T-Shirts\u003c\/strong\u003e are crafted from lightweight, breathable materials to keep you cool during workouts or on the go. With moisture-wicking fabric and a fit that flatters every body type, these are the everyday essentials your \u003cstrong data-start=\"1131\" data-end=\"1150\"\u003esports clothing\u003c\/strong\u003e lineup needs.\u003c\/p\u003e","products":[{"product_id":"gym-pro-short-sleeved-t-shirt","title":"G.A.K MEN’S COMPRESSION TEE","description":"\u003c!-- FINAL 1 (GAK template) | Dawn-friendly | Mobile 100% | Desktop 567px | Single-open | Smooth open \u0026 close | +\/– always visible --\u003e\n\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;700\u0026display=swap');\n\n:root{\n  --pa-gap:12px;\n  --pa-pad-x:16px;\n  --pa-pad-y-head:18px;\n  --pa-pad-y-panel-t:12px;\n  --pa-pad-y-panel-b:16px;\n}\n\n.product-accordion,\n.product-accordion *{\n  box-sizing:border-box;\n  max-width:100%;\n  word-break:break-word;\n  overflow-wrap:anywhere;\n}\n.product-accordion{\n  font-family:'Poppins',sans-serif;\n  width:100%;\n  margin:0;\n  padding:0;\n  overflow-x:hidden; \/* no horizontal scroll *\/\n}\n\n\/* Desktop cap to match ATC width *\/\n@media (min-width:1024px){\n  .product-accordion{ max-width:567px; }\n}\n\n\/* Each accordion item *\/\n.pa-item{\n  margin:var(--pa-gap) 0;\n  border:0;\n  border-radius:10px;\n  background:#fff;\n  overflow:hidden; \/* keeps corners rounded *\/\n}\n\n\/* Summary header — Final 1 look *\/\n.pa-summary{\n  list-style:none;\n  display:flex;\n  align-items:center;\n  justify-content:space-between; \/* title left, icon right *\/\n  gap:12px;\n  width:100%;\n  padding:var(--pa-pad-y-head) var(--pa-pad-x);\n  font-size:21px;\n  font-weight:500;  \/* medium *\/\n  line-height:1.25;\n  color:#111;\n  cursor:pointer;\n  border-radius:10px;\n  user-select:none;\n  -webkit-tap-highlight-color: transparent;\n}\n.pa-summary:hover,\n.pa-item[open] .pa-summary{ background:#f5f5f5; }\n\n\/* Hide default marker (Safari\/Chrome) *\/\n.pa-summary::-webkit-details-marker{ display:none; }\n\n.pa-title{ flex:1 1 auto; min-width:0; }\n\n\/* Robust icon: two chars, theme-safe *\/\n.pa-icon{\n  display:inline-flex !important;\n  align-items:center;\n  justify-content:center;\n  min-width:22px;\n  font-weight:700;\n  font-size:20px;\n  line-height:1;\n  color:#111 !important;\n}\n.pa-icon .icon-minus{ display:none; }\n.pa-item[open] .pa-icon .icon-plus{ display:none; }\n.pa-item[open] .pa-icon .icon-minus{ display:inline; }\n\n\/* Panel (animated via max-height) — side padding only here *\/\n.pa-panel{\n  overflow:hidden;\n  max-height:0;\n  opacity:0;\n  padding:0 var(--pa-pad-x);\n  transition:\n    max-height 280ms cubic-bezier(.2,.7,.3,1),\n    opacity   220ms linear;\n  will-change:max-height;\n}\n\/* Stable inner wrapper holds vertical padding ALWAYS (prevents close jitter) *\/\n.pa-panel-inner{\n  padding-top:var(--pa-pad-y-panel-t);\n  padding-bottom:var(--pa-pad-y-panel-b);\n}\n\n\/* Text *\/\n.pa-panel p,\n.pa-panel li,\n.pa-panel strong{\n  font-size:14px;\n  line-height:1.6;\n  color:#333;\n}\n.pa-panel p{ margin:0; }\n.pa-panel ul{ margin:8px 0 0 18px; padding:0; }\n.pa-panel li{ margin:4px 0; }\n\n\/* Mobile tweaks *\/\n@media (max-width:480px){\n  .pa-summary{ font-size:19px; padding:16px 14px; }\n  .pa-icon{ font-size:19px; min-width:20px; }\n  .pa-panel{ padding:0 14px; }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"product-accordion\" id=\"pa-root\"\u003e\n  \u003c!-- Description --\u003e\n  \u003cdetails class=\"pa-item\"\u003e\n    \u003csummary class=\"pa-summary\"\u003e\n      \u003cspan class=\"pa-title\"\u003eDescription\u003c\/span\u003e\n      \u003cspan class=\"pa-icon\" aria-hidden=\"true\"\u003e\n        \u003cspan class=\"icon-plus\"\u003e+\u003c\/span\u003e\n        \u003cspan class=\"icon-minus\"\u003e–\u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"pa-panel\"\u003e\n      \u003cdiv class=\"pa-panel-inner\"\u003e\n        \u003cp\u003eEngineered for performance, this men's compression T-shirt delivers a slim fit that moves with your body. Crafted from a high-stretch, nude-soft fabric, it offers maximum comfort and flexibility while maintaining a sleek, athletic silhouette.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003c!-- Care and Material --\u003e\n  \u003cdetails class=\"pa-item\"\u003e\n    \u003csummary class=\"pa-summary\"\u003e\n      \u003cspan class=\"pa-title\"\u003eCare and Material\u003c\/span\u003e\n      \u003cspan class=\"pa-icon\" aria-hidden=\"true\"\u003e\n        \u003cspan class=\"icon-plus\"\u003e+\u003c\/span\u003e\n        \u003cspan class=\"icon-minus\"\u003e–\u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"pa-panel\"\u003e\n      \u003cdiv class=\"pa-panel-inner\"\u003e\n        \u003cp\u003e\u003cstrong\u003eFabric Composition:\u003c\/strong\u003e 85% Polyester, 15% Spandex\u003c\/p\u003e\n        \u003cul\u003e\n          \u003cli\u003eMachine wash cold (below 30°C)\u003c\/li\u003e\n          \u003cli\u003eDo not bleach\u003c\/li\u003e\n          \u003cli\u003eDo not tumble dry\u003c\/li\u003e\n          \u003cli\u003eIron at low temperature\u003c\/li\u003e\n          \u003cli\u003eDo not dry clean\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003c!-- Product Details --\u003e\n  \u003cdetails class=\"pa-item\"\u003e\n    \u003csummary class=\"pa-summary\"\u003e\n      \u003cspan class=\"pa-title\"\u003eProduct Details\u003c\/span\u003e\n      \u003cspan class=\"pa-icon\" aria-hidden=\"true\"\u003e\n        \u003cspan class=\"icon-plus\"\u003e+\u003c\/span\u003e\n        \u003cspan class=\"icon-minus\"\u003e–\u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"pa-panel\"\u003e\n      \u003cdiv class=\"pa-panel-inner\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eCompression Fit:\u003c\/strong\u003e Enhances muscle support and promotes circulation\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eBreathable \u0026amp; Sweat-Wicking:\u003c\/strong\u003e Keeps you cool and dry under pressure\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eQuick-Dry \u0026amp; Lightweight:\u003c\/strong\u003e Ideal for high-intensity training\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eHigh Stretch Fabric:\u003c\/strong\u003e Ensures unrestricted movement\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eShort Sleeves \u0026amp; Minimal Bulk:\u003c\/strong\u003e Designed for layering or solo wear\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n\/* FINAL 1 behavior — smooth open\/close, single-open, no close jitter *\/\n(function(){\n  const items = document.querySelectorAll('#pa-root .pa-item');\n  const BUF   = 24;   \/\/ height buffer to avoid last-line clipping\n  const DUR   = 300;  \/\/ ms fallback if transitionend is missed\n\n  function measure(panel){ return panel.scrollHeight; }\n  function setMax(panel, h){ panel.style.maxHeight = h + 'px'; }\n\n  function smoothClose(d){\n    const p = d.querySelector('.pa-panel');\n    const start = measure(p);\n    setMax(p, start);\n    p.offsetHeight;            \/\/ reflow\n    setMax(p, 0);\n    p.style.opacity = 0;\n\n    let done = false;\n    const cleanup = ()=\u003e{\n      if(done) return;\n      done = true;\n      d.open = false;          \/\/ remove [open] AFTER animation ends\n      setMax(p, 0);            \/\/ lock at 0 to prevent bounce\n    };\n\n    \/\/ primary: transitionend\n    const onEnd = (e)=\u003e{\n      if(e.propertyName !== 'max-height') return;\n      p.removeEventListener('transitionend', onEnd);\n      cleanup();\n    };\n    p.addEventListener('transitionend', onEnd);\n\n    \/\/ fallback: just in case a browser drops the event\n    setTimeout(cleanup, DUR + 40);\n  }\n\n  function smoothOpen(d){\n    const p = d.querySelector('.pa-panel');\n    d.open = true;             \/\/ enable [open] styles (header hover etc.)\n    p.style.opacity = 1;\n    setMax(p, 0);\n    p.offsetHeight;            \/\/ reflow\n    setMax(p, measure(p) + BUF);\n  }\n\n  \/\/ Close all others\n  function closeOthers(keep){\n    items.forEach(x=\u003e{ if(x!==keep \u0026\u0026 x.open) smoothClose(x); });\n  }\n\n  \/\/ Init + listeners\n  items.forEach(d=\u003e{\n    const s = d.querySelector('.pa-summary');\n    const p = d.querySelector('.pa-panel');\n\n    if(!d.open){ setMax(p, 0); p.style.opacity = 0; }\n\n    s.addEventListener('click', (e)=\u003e{\n      e.preventDefault();      \/\/ stop native instant toggle\n      if(d.open){\n        smoothClose(d);\n      }else{\n        closeOthers(d);\n        smoothOpen(d);\n      }\n    }, { passive:false });\n  });\n\n  \/\/ Keep open heights correct on resize\/orientation\n  let raf=null;\n  window.addEventListener('resize', ()=\u003e{\n    if(raf) return;\n    raf = requestAnimationFrame(()=\u003e{\n      items.forEach(d=\u003e{\n        if(d.open){\n          const p = d.querySelector('.pa-panel');\n          setMax(p, measure(p) + BUF);\n        }\n      });\n      raf = null;\n    });\n  }, { passive:true });\n})();\n\u003c\/script\u003e\n","brand":"Grind Active Kinetics","offers":[{"title":"Midnight Blue \/ S","offer_id":52035545006416,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Midnight Blue \/ M","offer_id":52035545039184,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Midnight Blue \/ L","offer_id":52035545071952,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Midnight Blue \/ XL","offer_id":52035545104720,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Midnight Blue \/ 2XL","offer_id":51408084238672,"sku":"","price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Charcoal Black \/ S","offer_id":52035545137488,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Charcoal Black \/ M","offer_id":52035545170256,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Charcoal Black \/ L","offer_id":52035545203024,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Charcoal Black \/ XL","offer_id":52035545235792,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Charcoal Black \/ 2XL","offer_id":52035527410000,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Metal Grey \/ S","offer_id":52035545268560,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Metal Grey \/ M","offer_id":52035545301328,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Metal Grey \/ L","offer_id":52035545334096,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Metal Grey \/ XL","offer_id":52035545366864,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true},{"title":"Metal Grey \/ 2XL","offer_id":52035527442768,"sku":null,"price":23.0,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0890\/4009\/3520\/files\/gak-mens-compression-tee-6124069.png?v=1758205151"},{"product_id":"oversized-core-cotton-t-shirt","title":"G.A.K UNISEX OVERSIZED BARBELL TEE","description":"\u003c!-- FINAL 1 (GAK template) | Dawn-friendly | Mobile 100% | Desktop 567px | Single-open | Smooth open \u0026 close | +\/– always visible --\u003e\n\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;700\u0026display=swap');\n\n:root{\n  --pa-gap:12px;\n  --pa-pad-x:16px;\n  --pa-pad-y-head:18px;\n  --pa-pad-y-panel-t:12px;\n  --pa-pad-y-panel-b:16px;\n}\n\n.product-accordion,\n.product-accordion *{\n  box-sizing:border-box;\n  max-width:100%;\n  word-break:break-word;\n  overflow-wrap:anywhere;\n}\n.product-accordion{\n  font-family:'Poppins',sans-serif;\n  width:100%;\n  margin:0;\n  padding:0;\n  overflow-x:hidden; \/* no horizontal scroll *\/\n}\n\n\/* Desktop cap to match ATC width *\/\n@media (min-width:1024px){\n  .product-accordion{ max-width:567px; }\n}\n\n\/* Each accordion item *\/\n.pa-item{\n  margin:var(--pa-gap) 0;\n  border:0;\n  border-radius:10px;\n  background:#fff;\n  overflow:hidden; \/* keeps corners rounded *\/\n}\n\n\/* Summary header — Final 1 look *\/\n.pa-summary{\n  list-style:none;\n  display:flex;\n  align-items:center;\n  justify-content:space-between; \/* title left, icon right *\/\n  gap:12px;\n  width:100%;\n  padding:var(--pa-pad-y-head) var(--pa-pad-x);\n  font-size:21px;\n  font-weight:500;  \/* medium *\/\n  line-height:1.25;\n  color:#111;\n  cursor:pointer;\n  border-radius:10px;\n  user-select:none;\n  -webkit-tap-highlight-color: transparent;\n}\n.pa-summary:hover,\n.pa-item[open] .pa-summary{ background:#f5f5f5; }\n\n\/* Hide default marker (Safari\/Chrome) *\/\n.pa-summary::-webkit-details-marker{ display:none; }\n\n.pa-title{ flex:1 1 auto; min-width:0; }\n\n\/* Robust icon: two chars, theme-safe *\/\n.pa-icon{\n  display:inline-flex !important;\n  align-items:center;\n  justify-content:center;\n  min-width:22px;\n  font-weight:700;\n  font-size:20px;\n  line-height:1;\n  color:#111 !important;\n}\n.pa-icon .icon-minus{ display:none; }\n.pa-item[open] .pa-icon .icon-plus{ display:none; }\n.pa-item[open] .pa-icon .icon-minus{ display:inline; }\n\n\/* Panel (animated via max-height) — side padding only here *\/\n.pa-panel{\n  overflow:hidden;\n  max-height:0;\n  opacity:0;\n  padding:0 var(--pa-pad-x);\n  transition:\n    max-height 280ms cubic-bezier(.2,.7,.3,1),\n    opacity   220ms linear;\n  will-change:max-height;\n}\n\/* Stable inner wrapper holds vertical padding ALWAYS (prevents close jitter) *\/\n.pa-panel-inner{\n  padding-top:var(--pa-pad-y-panel-t);\n  padding-bottom:var(--pa-pad-y-panel-b);\n}\n\n\/* Text *\/\n.pa-panel p,\n.pa-panel li,\n.pa-panel strong{\n  font-size:14px;\n  line-height:1.6;\n  color:#333;\n}\n.pa-panel p{ margin:0; }\n.pa-panel ul{ margin:8px 0 0 18px; padding:0; }\n.pa-panel li{ margin:4px 0; }\n\n\/* Mobile tweaks *\/\n@media (max-width:480px){\n  .pa-summary{ font-size:19px; padding:16px 14px; }\n  .pa-icon{ font-size:19px; min-width:20px; }\n  .pa-panel{ padding:0 14px; }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"product-accordion\" id=\"pa-root\"\u003e\n  \u003cdetails class=\"pa-item\"\u003e\n    \u003csummary class=\"pa-summary\"\u003e\n      \u003cspan class=\"pa-title\"\u003eDescription\u003c\/span\u003e\n      \u003cspan class=\"pa-icon\" aria-hidden=\"true\"\u003e\n        \u003cspan class=\"icon-plus\"\u003e+\u003c\/span\u003e\n        \u003cspan class=\"icon-minus\"\u003e–\u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"pa-panel\"\u003e\n      \u003cdiv class=\"pa-panel-inner\"\u003e\n        \u003cp\u003eCrafted from premium textured cotton, this unisex oversized tee blends breathability with everyday ease. The 230 GSM weight offers a perfect balance between structure and softness, making it an ideal staple for relaxed, all-season wear.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails class=\"pa-item\"\u003e\n    \u003csummary class=\"pa-summary\"\u003e\n      \u003cspan class=\"pa-title\"\u003eCare and Material\u003c\/span\u003e\n      \u003cspan class=\"pa-icon\" aria-hidden=\"true\"\u003e\n        \u003cspan class=\"icon-plus\"\u003e+\u003c\/span\u003e\n        \u003cspan class=\"icon-minus\"\u003e–\u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"pa-panel\"\u003e\n      \u003cdiv class=\"pa-panel-inner\"\u003e\n        \u003cp\u003e\u003cstrong\u003eFabric Composition:\u003c\/strong\u003e 100% Cotton\u003c\/p\u003e\n        \u003cul\u003e\n          \u003cli\u003eMachine wash cold (below 30°C)\u003c\/li\u003e\n          \u003cli\u003eDo not bleach\u003c\/li\u003e\n          \u003cli\u003eDo not tumble dry\u003c\/li\u003e\n          \u003cli\u003eIron at low temperature\u003c\/li\u003e\n          \u003cli\u003eDo not dry clean\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails class=\"pa-item\"\u003e\n    \u003csummary class=\"pa-summary\"\u003e\n      \u003cspan class=\"pa-title\"\u003eProduct Details\u003c\/span\u003e\n      \u003cspan class=\"pa-icon\" aria-hidden=\"true\"\u003e\n        \u003cspan class=\"icon-plus\"\u003e+\u003c\/span\u003e\n        \u003cspan class=\"icon-minus\"\u003e–\u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"pa-panel\"\u003e\n      \u003cdiv class=\"pa-panel-inner\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eOversized, Loose Fit:\u003c\/strong\u003e Dropped shoulders, extended sleeves, and extra body width for a relaxed, laid-back look\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eThick Ribbed Collar:\u003c\/strong\u003e Reinforced neckline that maintains its form without stretching out\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eDouble-Needle Stitching:\u003c\/strong\u003e Durable hem construction for long-lasting wear and a clean finish\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eUnisex Cut:\u003c\/strong\u003e Designed to flatter a wide range of body types, ideal for versatile styling across genders\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n\/* FINAL 1 behavior — smooth open\/close, single-open, no close jitter *\/\n(function(){\n  const items = document.querySelectorAll('#pa-root .pa-item');\n  const BUF   = 24;   \/\/ height buffer to avoid last-line clipping\n  const DUR   = 300;  \/\/ ms fallback if transitionend is missed\n\n  function measure(panel){ return panel.scrollHeight; }\n  function setMax(panel, h){ panel.style.maxHeight = h + 'px'; }\n\n  function smoothClose(d){\n    const p = d.querySelector('.pa-panel');\n    const start = measure(p);\n    setMax(p, start);\n    p.offsetHeight;            \/\/ reflow\n    setMax(p, 0);\n    p.style.opacity = 0;\n\n    let done = false;\n    const cleanup = ()=\u003e{\n      if(done) return;\n      done = true;\n      d.open = false;          \/\/ remove [open] AFTER animation ends\n      setMax(p, 0);            \/\/ lock at 0 to prevent bounce\n    };\n\n    \/\/ primary: transitionend\n    const onEnd = (e)=\u003e{\n      if(e.propertyName !== 'max-height') return;\n      p.removeEventListener('transitionend', onEnd);\n      cleanup();\n    };\n    p.addEventListener('transitionend', onEnd);\n\n    \/\/ fallback: just in case a browser drops the event\n    setTimeout(cleanup, DUR + 40);\n  }\n\n  function smoothOpen(d){\n    const p = d.querySelector('.pa-panel');\n    d.open = true;             \/\/ enable [open] styles (header hover etc.)\n    p.style.opacity = 1;\n    setMax(p, 0);\n    p.offsetHeight;            \/\/ reflow\n    setMax(p, measure(p) + BUF);\n  }\n\n  \/\/ Close all others\n  function closeOthers(keep){\n    items.forEach(x=\u003e{ if(x!==keep \u0026\u0026 x.open) smoothClose(x); });\n  }\n\n  \/\/ Init + listeners\n  items.forEach(d=\u003e{\n    const s = d.querySelector('.pa-summary');\n    const p = d.querySelector('.pa-panel');\n\n    if(!d.open){ setMax(p, 0); p.style.opacity = 0; }\n\n    s.addEventListener('click', (e)=\u003e{\n      e.preventDefault();      \/\/ stop native instant toggle\n      if(d.open){\n        smoothClose(d);\n      }else{\n        closeOthers(d);\n        smoothOpen(d);\n      }\n    }, { passive:false });\n  });\n\n  \/\/ Keep open heights correct on resize\/orientation\n  let raf=null;\n  window.addEventListener('resize', ()=\u003e{\n    if(raf) return;\n    raf = requestAnimationFrame(()=\u003e{\n      items.forEach(d=\u003e{\n        if(d.open){\n          const p = d.querySelector('.pa-panel');\n          setMax(p, measure(p) + BUF);\n        }\n      });\n      raf = null;\n    });\n  }, { passive:true });\n})();\n\u003c\/script\u003e\n","brand":"Grind Active Kinetics","offers":[{"title":"Cosmic Beige \/ S","offer_id":51408121069904,"sku":"","price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Cosmic Beige \/ M","offer_id":52008848556368,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Cosmic Beige \/ L","offer_id":52008848589136,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Cosmic Beige \/ XL","offer_id":52008848621904,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Cosmic Beige \/ 2XL","offer_id":52008848654672,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Pearl White \/ S","offer_id":52008848294224,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Pearl White \/ M","offer_id":52008848687440,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Pearl White \/ L","offer_id":52008848720208,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Pearl White \/ XL","offer_id":52008848752976,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Pearl White \/ 2XL","offer_id":52008848785744,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Slate Grey \/ S","offer_id":52008848326992,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Slate Grey \/ M","offer_id":52008848818512,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Slate Grey \/ L","offer_id":52008848851280,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Slate Grey \/ XL","offer_id":52008848884048,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Slate Grey \/ 2XL","offer_id":52008848916816,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Obsidian Black \/ S","offer_id":52008848359760,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Obsidian Black \/ M","offer_id":52008848949584,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Obsidian Black \/ L","offer_id":52008848982352,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Obsidian Black \/ XL","offer_id":52008849015120,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true},{"title":"Obsidian Black \/ 2XL","offer_id":52008849047888,"sku":null,"price":30.0,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0890\/4009\/3520\/files\/gak-unisex-oversized-barbell-tee-2606901.png?v=1758205160"}],"url":"https:\/\/www.grindactivekinetics.com\/collections\/grindactivekinetics-t-shirts.oembed","provider":"Grind Active Kinetics","version":"1.0","type":"link"}