{"title":"Bench, Racks \u0026 Storage","description":null,"products":[{"product_id":"torii-rack","title":"Torii™","description":"\u003cp\u003eFör många av oss är gymmet vår plats för ritual och tillbedjan. \u003cspan data-mce-fragment=\"1\"\u003e Namngiven efter en traditionell japansk port som oftast finns vid ingången till en shintohelgedom, fungerar Torii som en symbol för övergången från den vanliga vardagsvärlden till det heliga.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eTorii är här för att visa att du kan uppnå styrketräning av gymkvalitet i bekvämligheten av ditt hem, oavsett storlek. Det handlar inte bara om att spara plats; det handlar om att maximera din potential.\u003c\/p\u003e","brand":"Kensui","offers":[{"title":"Stång","offer_id":44543589712084,"sku":"rek-torii-bar","price":299.0,"currency_code":"USD","in_stock":true},{"title":"Ställ","offer_id":44543589744852,"sku":"rek-torii-rack","price":399.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/torii-RACK_2ff140f8-2ce0-43c9-9efa-262e88275a73.jpg?v=1773071357"},{"product_id":"adjustable-fid-bench","title":"Justerbar FID-bänk","description":"\u003cp\u003eHöj din hemmagym med MaxFlex Justerbara FID-bänk, det ultimata inom mångsidighet och hållbarhet för varje träningsentusiast. Utformad för att stödja en mängd olika träningsformer, övergår denna bänk smidigt mellan plan, lutande och nedåtlutande lägen, vilket möjliggör ett fullständigt spektrum av övningar för optimal kroppskondition.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eViktiga egenskaper:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eRobust konstruktion:\u003c\/strong\u003e Tillverkad med en kraftig stålramskonstruktion, klarar MaxFlex-bänken upp till 600 lbs, vilket säkerställer stabilitet och säkerhet även under de mest intensiva träningspassen.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMångsidighet:\u003c\/strong\u003e Med lättjusterade sitt- och ryggdynor kan du växla mellan flera vinklar för bröstpressar, axelpressar och magövningar – vilket öppnar upp för oändliga träningsmöjligheter.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eKomfort och stöd:\u003c\/strong\u003e Skumfyllning med hög densitet ger maximal komfort utan att kompromissa med stödet, även under långa träningspass.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eKomprimerad och bärbar:\u003c\/strong\u003e Perfekt för begränsade utrymmen, denna bänk har inbyggda hjul och ett handtag för enkel förflyttning och förvaring när den inte används.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHållbart klädsel:\u003c\/strong\u003e Svettbeständig och lätt att rengöra, det högkvalitativa vinylöverdraget håller din bänk fräsch och hygienisk.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kensui","offers":[{"title":"PRO","offer_id":46256140746964,"sku":"rek-bench-pro","price":649.0,"currency_code":"USD","in_stock":true},{"title":"MAX","offer_id":46256140779732,"sku":"rek-bench-max","price":749.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/fid-bench-pro.jpg?v=1763996984"},{"product_id":"weight-tree","title":"Weight Tree","description":"\u003cstyle\u003e\n  .tree-hero {\n    --tr-bg: #f5f1ea;\n    --tr-ink: #2a2a2a;\n    --tr-white: #ffffff;\n    --tr-off: #faf7f2;\n    --tr-sand: #e8e0d3;\n    --tr-black: #111111;\n    --tr-accent: #1972bc;re\n    --tr-accent-d: #155a96;\n    --tr-muted: #8a8378;\n    --fo: \"Oswald\", Impact, sans-serif;\n    --fd: \"Bebas Neue\", Impact, sans-serif;\n    --fb: \"Barlow\", system-ui, sans-serif;\n    --fc: \"Barlow Condensed\", system-ui, sans-serif;\n\n    background: var(--tr-bg);\n    color: var(--tr-ink);\n    padding: 24px 16px 48px;\n    box-sizing: border-box;\n  }\n  .tree-hero *, .tree-hero *::before, .tree-hero *::after { box-sizing: border-box; }\n\n  .tree-hero__grid {\n    max-width: 1240px;\n    margin: 0 auto;\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 24px;\n  }\n  @media (min-width: 860px) {\n    .tree-hero { padding: 40px 24px 64px; }\n    .tree-hero__grid { grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: start; }\n  }\n\n  \/* ---------- Stock state toggle ---------- *\/\n  .tree-hero .tree-block--in,\n  .tree-hero .tree-block--out { display: none; }\n  .tree-hero[data-stock=\"in\"]  .tree-block--in  { display: flex; flex-direction: column; gap: 10px; }\n  .tree-hero[data-stock=\"in\"]  .tree-stock--in  { display: flex; }\n  .tree-hero[data-stock=\"out\"] .tree-block--out { display: flex; flex-direction: column; gap: 10px; }\n  .tree-hero[data-stock=\"out\"] .tree-stock--out { display: flex; }\n  .tree-stock--in, .tree-stock--out { display: none; }\n\n  \/* ---------- Gallery slider ---------- *\/\n  .tree-gallery { display: flex; flex-direction: column; gap: 10px; }\n  .tree-gallery__stage {\n    position: relative;\n    background: var(--tr-white);\n    border-radius: 6px;\n    overflow: hidden;\n    aspect-ratio: 1 \/ 1;\n  }\n  .tree-gallery__track {\n    display: flex;\n    width: 100%;\n    height: 100%;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    -ms-overflow-style: none;\n  }\n  .tree-gallery__track::-webkit-scrollbar { display: none; }\n  .tree-gallery__slide {\n    flex: 0 0 100%;\n    width: 100%;\n    height: 100%;\n    scroll-snap-align: start;\n    scroll-snap-stop: always;\n  }\n  .tree-gallery__slide img {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n  .tree-gallery__badge {\n    position: absolute; top: 12px; left: 12px;\n    background: var(--tr-black); color: var(--tr-white);\n    font-family: var(--fc); font-size: 12px; letter-spacing: .08em;\n    text-transform: uppercase;\n    padding: 6px 10px; border-radius: 6px;\n    z-index: 3;\n    pointer-events: none;\n  }\n  .tree-gallery__arrow {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 44px; height: 44px;\n    background: rgba(255,255,255,.92);\n    border: 0;\n    border-radius: 50%;\n    display: flex; align-items: center; justify-content: center;\n    cursor: pointer;\n    z-index: 3;\n    transition: background .12s ease, transform .12s ease, opacity .12s ease;\n    color: var(--tr-black);\n    box-shadow: 0 2px 12px rgba(0,0,0,.12);\n  }\n  .tree-gallery__arrow:hover {\n    background: var(--tr-white);\n    transform: translateY(-50%) scale(1.06);\n  }\n  .tree-gallery__arrow:active { transform: translateY(-50%) scale(.96); }\n  .tree-gallery__arrow:disabled {\n    opacity: .35;\n    cursor: not-allowed;\n  }\n  .tree-gallery__arrow svg { width: 20px; height: 20px; }\n  .tree-gallery__arrow--prev { left: 12px; }\n  .tree-gallery__arrow--next { right: 12px; }\n  .tree-gallery__counter {\n    position: absolute;\n    bottom: 12px; right: 12px;\n    background: rgba(0,0,0,.65);\n    color: var(--tr-white);\n    font-family: var(--fc);\n    font-size: 11px;\n    letter-spacing: .08em;\n    padding: 4px 10px;\n    border-radius: 999px;\n    z-index: 3;\n    pointer-events: none;\n  }\n  .tree-gallery__dots {\n    display: flex;\n    justify-content: center;\n    gap: 6px;\n    padding: 4px 0 0;\n  }\n  .tree-gallery__dot {\n    width: 7px; height: 7px;\n    border: 0;\n    border-radius: 50%;\n    background: var(--tr-sand);\n    cursor: pointer;\n    transition: background .15s ease, transform .15s ease;\n    padding: 0;\n  }\n  .tree-gallery__dot[aria-current=\"true\"] {\n    background: var(--tr-accent);\n    transform: scale(1.3);\n  }\n\n  \/* ---------- Info column ---------- *\/\n  .tree-info { display: flex; flex-direction: column; gap: 16px; }\n  .tree-info__eyebrow {\n    font-family: var(--fc);\n    font-size: 13px; letter-spacing: .14em;\n    text-transform: uppercase;\n    color: var(--tr-accent);\n  }\n  .tree-info__title {\n    font-family: var(--fo);\n    font-weight: 600;\n    font-size: clamp(32px, 4.6vw, 50px);\n    line-height: 1;\n    text-transform: uppercase;\n    margin: 0;\n    color: var(--tr-black);\n  }\n  .tree-info__subtitle {\n    font-family: var(--fb);\n    font-size: 16px;\n    line-height: 1.5;\n    color: var(--tr-ink);\n    margin: 0;\n    max-width: 54ch;\n  }\n\n  .tree-info__reviews {\n    display: flex; align-items: center; gap: 10px;\n    font-family: var(--fb); font-size: 14px;\n    color: var(--tr-muted);\n  }\n  .tree-info__stars { color: #d7d0c2; letter-spacing: 2px; }\n\n  \/* ---------- Feature pills ---------- *\/\n  .tree-features {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 8px;\n  }\n  @media (min-width: 500px) {\n    .tree-features { grid-template-columns: repeat(4, 1fr); }\n  }\n  .tree-features__item {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    gap: 6px;\n    padding: 12px 8px;\n    background: var(--tr-white);\n    border-radius: 6px;\n  }\n  .tree-features__icon {\n    width: 28px; height: 28px;\n    color: var(--tr-accent);\n  }\n  .tree-features__icon svg { width: 100%; height: 100%; }\n  .tree-features__label {\n    font-family: var(--fc);\n    font-size: 11px;\n    letter-spacing: .08em;\n    text-transform: uppercase;\n    color: var(--tr-ink);\n    line-height: 1.2;\n    font-weight: 600;\n  }\n\n  \/* ---------- Price row ---------- *\/\n  .tree-info__price-row {\n    display: flex; align-items: baseline; gap: 12px;\n    padding-top: 4px;\n    flex-wrap: wrap;\n  }\n  .tree-info__price {\n    font-family: var(--fo);\n    font-size: 30px;\n    font-weight: 600;\n    color: var(--tr-black);\n  }\n  .tree-info__installments {\n    font-family: var(--fb);\n    font-size: 13px;\n    color: var(--tr-ink);\n  }\n  .tree-info__installments b { font-weight: 600; }\n\n  \/* ---------- Variant selector (Wheels vs No Wheels) ---------- *\/\n  .tree-variants {\n    display: flex; flex-direction: column; gap: 10px;\n  }\n  .tree-variants__label {\n    display: flex; align-items: baseline; justify-content: space-between;\n    font-family: var(--fc);\n    font-size: 12px;\n    letter-spacing: .1em;\n    text-transform: uppercase;\n    color: var(--tr-ink);\n  }\n  .tree-variants__label b {\n    font-family: var(--fd);\n    font-size: 16px;\n    color: var(--tr-black);\n    letter-spacing: .04em;\n    font-weight: 400;\n  }\n  .tree-variants__cards {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n  }\n  .tree-variants__card {\n    position: relative;\n    display: flex; flex-direction: column;\n    gap: 8px;\n    padding: 14px 14px 16px;\n    background: var(--tr-white);\n    border: 2px solid transparent;\n    border-radius: 6px;\n    cursor: pointer;\n    text-align: left;\n    font-family: var(--fb);\n    transition: border-color .12s ease, transform .12s ease;\n  }\n  .tree-variants__card:hover { border-color: var(--tr-sand); }\n  .tree-variants__card[aria-pressed=\"true\"] {\n    border-color: var(--tr-accent);\n    background: var(--tr-off);\n  }\n  .tree-variants__card[aria-pressed=\"true\"]::before {\n    content: \"\";\n    position: absolute; top: -1px; right: -1px;\n    width: 22px; height: 22px;\n    background: var(--tr-accent) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'\/%3E%3C\/svg%3E\") center\/14px no-repeat;\n    border-radius: 0 6px 0 6px;\n  }\n  .tree-variants__card-icon {\n    width: 36px; height: 36px;\n    color: var(--tr-accent);\n  }\n  .tree-variants__card-icon svg { width: 100%; height: 100%; }\n  .tree-variants__card-name {\n    font-family: var(--fd);\n    font-size: 22px;\n    letter-spacing: .04em;\n    color: var(--tr-black);\n    line-height: 1;\n  }\n  .tree-variants__card-meta {\n    font-family: var(--fb);\n    font-size: 12px;\n    color: var(--tr-muted);\n    line-height: 1.35;\n  }\n  .tree-variants__card-tag {\n    align-self: flex-start;\n    font-family: var(--fc);\n    font-size: 10px;\n    letter-spacing: .1em;\n    text-transform: uppercase;\n    color: var(--tr-white);\n    background: var(--tr-accent);\n    padding: 3px 8px;\n    border-radius: 4px;\n    font-weight: 600;\n    margin-top: 2px;\n  }\n  .tree-variants__card[data-available=\"false\"] {\n    opacity: .55;\n    cursor: not-allowed;\n  }\n  .tree-variants__card[data-available=\"false\"]::after {\n    content: \"Sold out\";\n    position: absolute; bottom: 6px; right: 8px;\n    font-family: var(--fc);\n    font-size: 10px;\n    letter-spacing: .08em;\n    text-transform: uppercase;\n    color: #c0392b;\n  }\n\n  \/* ---------- Specs strip ---------- *\/\n  .tree-specs {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 1px;\n    background: var(--tr-sand);\n    border-radius: 6px;\n    overflow: hidden;\n  }\n  .tree-specs__cell {\n    background: var(--tr-white);\n    padding: 12px 10px;\n    text-align: center;\n  }\n  .tree-specs__k {\n    font-family: var(--fc);\n    font-size: 11px; letter-spacing: .1em;\n    text-transform: uppercase;\n    color: var(--tr-ink); opacity: .7;\n  }\n  .tree-specs__v {\n    font-family: var(--fd);\n    font-size: 22px;\n    line-height: 1;\n    margin-top: 4px;\n    letter-spacing: .02em;\n    color: var(--tr-black);\n  }\n\n  \/* ---------- Stock lines ---------- *\/\n  .tree-stock {\n    font-family: var(--fb);\n    font-size: 13px;\n    color: var(--tr-ink);\n    align-items: center; gap: 8px;\n    padding: 10px 12px;\n    background: var(--tr-white);\n    border-radius: 6px;\n  }\n  .tree-stock__dot {\n    width: 8px; height: 8px; border-radius: 50%;\n    flex: 0 0 8px;\n  }\n  .tree-stock--in .tree-stock__dot {\n    background: #2ecc71;\n    box-shadow: 0 0 0 3px rgba(46,204,113,.2);\n  }\n  .tree-stock--out .tree-stock__dot {\n    background: #e25c3b;\n    box-shadow: 0 0 0 3px rgba(226,92,59,.2);\n  }\n\n  \/* ---------- Add-to-cart ---------- *\/\n  .tree-cta__btn {\n    display: flex; align-items: center; justify-content: center;\n    gap: 10px;\n    width: 100%;\n    background: var(--tr-accent);\n    color: var(--tr-white);\n    font-family: var(--fo);\n    font-size: 18px; letter-spacing: .06em;\n    text-transform: uppercase;\n    border: 0; border-radius: 6px;\n    padding: 16px 20px;\n    cursor: pointer;\n    transition: transform .12s ease, background .12s ease;\n  }\n  .tree-cta__btn:hover { background: var(--tr-accent-d); }\n  .tree-cta__btn:active { transform: scale(.98); }\n\n  \/* ---------- Notify form ---------- *\/\n  .tree-notify__label {\n    font-family: var(--fc);\n    font-size: 12px;\n    letter-spacing: .1em;\n    text-transform: uppercase;\n    color: var(--tr-ink);\n    margin: 0;\n  }\n  .tree-notify__row { display: flex; gap: 8px; }\n  .tree-notify__input {\n    flex: 1;\n    font-family: var(--fb);\n    font-size: 15px;\n    padding: 14px 16px;\n    border: 1px solid var(--tr-sand);\n    border-radius: 6px;\n    background: var(--tr-white);\n    color: var(--tr-ink);\n    outline: none;\n    transition: border-color .12s ease;\n    min-width: 0;\n  }\n  .tree-notify__input:focus { border-color: var(--tr-accent); }\n  .tree-notify__btn {\n    display: flex; align-items: center; justify-content: center;\n    gap: 10px;\n    background: var(--tr-black);\n    color: var(--tr-white);\n    font-family: var(--fo);\n    font-size: 15px; letter-spacing: .06em;\n    text-transform: uppercase;\n    border: 0; border-radius: 6px;\n    padding: 0 22px;\n    cursor: pointer;\n    transition: transform .12s ease, background .12s ease;\n    white-space: nowrap;\n  }\n  .tree-notify__btn:hover { background: var(--tr-accent); }\n  .tree-notify__btn:active { transform: scale(.98); }\n  .tree-notify__btn:disabled { opacity: .6; cursor: not-allowed; }\n  .tree-notify__hint {\n    font-family: var(--fb);\n    font-size: 12px;\n    color: var(--tr-muted);\n    margin: 0;\n  }\n  .tree-notify__status {\n    display: none;\n    font-family: var(--fb);\n    font-size: 13px;\n    padding: 12px 14px;\n    border-radius: 6px;\n    margin: 0;\n    line-height: 1.4;\n  }\n  .tree-notify__status--ok {\n    background: #e8f5ea; color: #1e6b2e;\n    border: 1px solid #c6e5cc;\n  }\n  .tree-notify__status--err {\n    background: #fbece8; color: #a83a1f;\n    border: 1px solid #f0cfc6;\n  }\n  .tree-notify[data-state=\"success\"] .tree-notify__row,\n  .tree-notify[data-state=\"success\"] .tree-notify__hint,\n  .tree-notify[data-state=\"success\"] .tree-notify__label { display: none; }\n  .tree-notify[data-state=\"success\"] .tree-notify__status--ok { display: block; }\n  .tree-notify[data-state=\"error\"] .tree-notify__status--err { display: block; }\n\n  \/* ---------- Trust row ---------- *\/\n  .tree-trust {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 8px;\n    padding-top: 8px;\n    margin: 0;\n    list-style: none;\n  }\n  .tree-trust__item {\n    display: flex; align-items: center; gap: 8px;\n    font-family: var(--fb);\n    font-size: 12px;\n    line-height: 1.25;\n    color: var(--tr-ink);\n  }\n  .tree-trust__item svg { flex: 0 0 18px; width: 18px; height: 18px; color: var(--tr-accent); }\n\u003c\/style\u003e\n\u003cdiv class=\"shogun-root\" data-shogun-id=\"69ef8ed24b088f13e243ebf8\" data-shogun-site-id=\"d921f9ba-aa7a-4156-9e44-53aad23b56fb\" data-shogun-page-id=\"69ef8ed24b088f13e243ebf8\" data-shogun-page-version-id=\"69ef90a6682591347bb083f1\" data-shogun-platform-type=\"shopify\" data-shogun-variant-id=\"69ef90a6682591347bb083f7\" data-shogun-page-type=\"product\" data-shogun-power-up-type=\"\" data-shogun-power-up-id=\"\" data-region=\"main\"\u003e\n\u003cdiv id=\"s-c3263eb8-3309-4a58-b93b-cdf83c360cb9\" class=\"shg-c shg-align-left\"\u003e\n\u003csection class=\"tree-hero\" data-stock=\"in\" data-product-handle=\"weight-tree\" aria-label=\"Weight Tree\"\u003e\n\u003cdiv class=\"tree-hero__grid\"\u003e\n\u003cdiv class=\"tree-gallery\"\u003e\n\u003cdiv class=\"tree-gallery__stage\"\u003e\n\u003cspan class=\"tree-gallery__badge\"\u003eHeavy-duty steel\u003c\/span\u003e \u003cbutton type=\"button\" class=\"tree-gallery__arrow tree-gallery__arrow--prev\" aria-label=\"Previous image\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"15 18 9 12 15 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003c\/button\u003e\n\u003cdiv class=\"tree-gallery__track\" id=\"tree-gallery-track\"\u003e\n\u003cdiv class=\"tree-gallery__slide\"\u003e\u003cimg src=\"https:\/\/kensui.com\/cdn\/shop\/files\/5_afae0716-2891-456c-ade7-6bd2ffee7ea8_1024x1024@2x.jpg?v=1775132071\" alt=\"Kensui Weight Tree — vertical plate storage\" width=\"1024\" height=\"1024\" loading=\"eager\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-gallery__slide\"\u003e\u003cimg src=\"https:\/\/kensui.com\/cdn\/shop\/files\/1_f0c6a604-8deb-406c-b5dc-2bde8cb847dc_1024x1024@2x.jpg?v=1775132071\" alt=\"Weight tree loaded with plates\" width=\"1024\" height=\"1024\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-gallery__slide\"\u003e\u003cimg src=\"https:\/\/kensui.com\/cdn\/shop\/files\/weight-tree-wheels_1024x1024@2x.jpg?v=1775132071\" alt=\"Locking caster wheels detail\" width=\"1024\" height=\"1024\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-gallery__slide\"\u003e\u003cimg src=\"https:\/\/kensui.com\/cdn\/shop\/files\/weight-tree-sleeves_2_1024x1024@2x.jpg?v=1775132071\" alt=\"Barbell holder sleeves with protective lip\" width=\"1024\" height=\"1024\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-gallery__slide\"\u003e\u003cimg src=\"https:\/\/kensui.com\/cdn\/shop\/files\/weight-tree-sleeves_1024x1024@2x.jpg?v=1775132071\" alt=\"Storage pegs with rounded loading caps\" width=\"1024\" height=\"1024\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-gallery__slide\"\u003e\u003cimg src=\"https:\/\/kensui.com\/cdn\/shop\/files\/2_28e45292-802a-4c6d-bcfc-5d656cda0c44_1024x1024@2x.jpg?v=1775132071\" alt=\"Weight tree in a home gym\" width=\"1024\" height=\"1024\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"tree-gallery__arrow tree-gallery__arrow--next\" aria-label=\"Next image\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"9 18 15 12 9 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003c\/button\u003e\n\u003cdiv class=\"tree-gallery__counter\" id=\"tree-gallery-counter\"\u003e1 \/ 6\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-gallery__dots\" id=\"tree-gallery-dots\" role=\"tablist\" aria-label=\"Gallery images\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-info\"\u003e\n\u003cdiv class=\"tree-info__eyebrow\"\u003eMove it. Load it. Forget the clutter.\u003c\/div\u003e\n\u003ch1 class=\"tree-info__title\"\u003eWeight Tree\u003c\/h1\u003e\n\u003cp class=\"tree-info__subtitle\"\u003eA solid-steel storage system that keeps your plates and bars organized, protected, and ready to roll. Vertical footprint, rounded loading caps, and protective barbell holders — built for serious training environments.\u003c\/p\u003e\n\u003cdiv class=\"tree-features\" aria-label=\"Key features\"\u003e\n\u003cdiv class=\"tree-features__item\"\u003e\n\u003cdiv class=\"tree-features__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M7 7h10M7 12h10M7 17h10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-features__label\"\u003eHeavy-duty\u003cbr\u003esteel\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-features__item\"\u003e\n\u003cdiv class=\"tree-features__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"6\" cy=\"18\" r=\"3\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"18\" r=\"3\"\u003e\u003c\/circle\u003e\u003cpath d=\"M9 18h6M3 6h18M3 6v12M21 6v12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-features__label\"\u003eLocking\u003cbr\u003ecasters\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-features__item\"\u003e\n\u003cdiv class=\"tree-features__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"6.5\" cy=\"12\" r=\"3\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"17.5\" cy=\"12\" r=\"3\"\u003e\u003c\/circle\u003e\u003cpath d=\"M9.5 12h5\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 9v6M19 9v6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-features__label\"\u003eBarbell\u003cbr\u003eholders\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-features__item\"\u003e\n\u003cdiv class=\"tree-features__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"9\" y=\"3\" width=\"6\" height=\"18\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M9 8h6M9 16h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"tree-features__label\"\u003eCompact\u003cbr\u003efootprint\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-info__price-row\"\u003e\n\u003cspan class=\"tree-info__price\" id=\"tree-price\"\u003e$199 USD\u003c\/span\u003e \u003cspan class=\"tree-info__installments\"\u003e or 4 payments of \u003cb id=\"tree-installment\"\u003e$49.75\u003c\/b\u003e with Shop Pay \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-variants\"\u003e\n\u003cdiv class=\"tree-variants__label\"\u003e\n\u003cspan\u003eChoose your model\u003c\/span\u003e \u003cb id=\"tree-selected-name\"\u003eWheels\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-variants__cards\" role=\"radiogroup\" aria-label=\"Model\"\u003e\n\u003cdiv class=\"tree-variants__card-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"6\" cy=\"18\" r=\"3\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"18\" r=\"3\"\u003e\u003c\/circle\u003e\u003cpath d=\"M9 18h6\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 6h14M5 6v9M19 6v9M9 6v9M15 6v9\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"tree-variants__card\" role=\"radio\" aria-pressed=\"true\" data-variant-name=\"Wheels\" data-variant-id=\"REPLACE_WHEELS_ID\"\u003e\u003cspan class=\"tree-variants__card-name\"\u003eWith Wheels\u003c\/span\u003e \u003cspan class=\"tree-variants__card-meta\"\u003eLocking casters — roll, lock, lift, repeat.\u003c\/span\u003e \u003c\/button\u003e\n\u003cdiv class=\"tree-variants__card-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 6h14M5 6v14M19 6v14M9 6v14M15 6v14M3 20h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"tree-variants__card\" role=\"radio\" aria-pressed=\"false\" data-variant-name=\"No Wheels\" data-variant-id=\"REPLACE_NO_WHEELS_ID\"\u003e\u003cspan class=\"tree-variants__card-name\"\u003eNo Wheels\u003c\/span\u003e \u003cspan class=\"tree-variants__card-meta\"\u003eStatic base — for permanent gym setups.\u003c\/span\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-stock tree-stock--in\"\u003e\n\u003cspan class=\"tree-stock__dot\" aria-hidden=\"true\"\u003e\u003c\/span\u003e \u003cspan\u003eIn stock - ships in 24 hours. Delivers in \u003cb\u003e3–5 days\u003c\/b\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tree-stock tree-stock--out\"\u003e\n\u003cspan class=\"tree-stock__dot\" aria-hidden=\"true\"\u003e\u003c\/span\u003e \u003cspan\u003e\u003cb\u003eSold out\u003c\/b\u003e — restocking soon. Enter your email below and we’ll ping you the moment it’s back.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cform class=\"tree-block tree-block--in\" method=\"post\" action=\"\/cart\/add\"\u003e\n\u003cinput type=\"hidden\" id=\"tree-cart-variant\" value=\"REPLACE_WHEELS_ID\"\u003e \u003cinput type=\"hidden\" name=\"quantity\" value=\"1\"\u003e \u003cbutton type=\"submit\" class=\"tree-cta__btn\"\u003e \u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e \u003ccircle cx=\"9\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"20\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e \u003cpath d=\"M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6\"\u003e\u003c\/path\u003e \u003c\/svg\u003e \u003cspan\u003eAdd to cart — \u003cspan id=\"tree-cta-price\"\u003e$199.00\u003c\/span\u003e\u003c\/span\u003e \u003c\/button\u003e\n\u003c\/form\u003e\n\u003cform class=\"tree-block tree-block--out tree-notify\" method=\"post\" action=\"#\" id=\"tree-notify-form\"\u003e\n\u003clabel class=\"tree-notify__label\" for=\"tree-notify-email\"\u003eNotify me when available\u003c\/label\u003e\n\u003cdiv class=\"tree-notify__row\"\u003e\n\u003cinput class=\"tree-notify__input\" id=\"tree-notify-email\" type=\"email\" name=\"contact[email]\" placeholder=\"you@example.com\" required=\"\"\u003e \u003cinput type=\"hidden\" name=\"variant_id\" id=\"tree-notify-variant\" value=\"REPLACE_WHEELS_ID\"\u003e \u003cbutton class=\"tree-notify__btn\" type=\"submit\"\u003e \u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e \u003cpath d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"\u003e\u003c\/path\u003e \u003cpath d=\"M13.73 21a2 2 0 0 1-3.46 0\"\u003e\u003c\/path\u003e \u003c\/svg\u003e \u003cspan class=\"tree-notify__btn-label\"\u003eNotify me\u003c\/span\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003cp class=\"tree-notify__hint\"\u003eWe’ll only email you about this restock. No spam.\u003c\/p\u003e\n\u003cp class=\"tree-notify__status tree-notify__status--ok\" role=\"status\"\u003e✓ You’re on the list. We’ll email you the moment it’s back in stock.\u003c\/p\u003e\n\u003cp class=\"tree-notify__status tree-notify__status--err\" role=\"alert\"\u003eSomething went wrong. Please try again or email support@kensui.com.\u003c\/p\u003e\n\u003c\/form\u003e\n\u003cul class=\"tree-trust\" aria-label=\"Guarantees\"\u003e\n\u003cli class=\"tree-trust__item\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e 100‑day risk‑free trial\u003c\/li\u003e\n\u003cli class=\"tree-trust__item\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003crect x=\"1\" y=\"3\" width=\"15\" height=\"13\"\u003e\u003c\/rect\u003e\u003cpath d=\"M16 8h4l3 3v5h-7zM5.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM18.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Free shipping $100+\u003c\/li\u003e\n\u003cli class=\"tree-trust__item\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M9 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2h-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"9 11 9 7 15 7 15 11\"\u003e\u003c\/polyline\u003e\u003ccircle cx=\"12\" cy=\"16\" r=\"1\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e Trusted by 200,000+\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  var root = document.querySelector('.tree-hero[data-product-handle]');\n  if (!root) return;\n\n  var KLAVIYO_PUBLIC_KEY = 'QeupfE';\n\n  \/\/ ---- Gallery slider ----\n  var track = root.querySelector('#tree-gallery-track');\n  var slides = track ? track.querySelectorAll('.tree-gallery__slide') : [];\n  var prevBtn = root.querySelector('.tree-gallery__arrow--prev');\n  var nextBtn = root.querySelector('.tree-gallery__arrow--next');\n  var counter = root.querySelector('#tree-gallery-counter');\n  var dotsEl = root.querySelector('#tree-gallery-dots');\n  var currentIndex = 0;\n\n  if (dotsEl \u0026\u0026 slides.length) {\n    for (var i = 0; i \u003c slides.length; i++) {\n      var dot = document.createElement('button');\n      dot.type = 'button';\n      dot.className = 'tree-gallery__dot';\n      dot.setAttribute('role', 'tab');\n      dot.setAttribute('aria-label', 'Go to image ' + (i + 1));\n      dot.setAttribute('aria-current', i === 0 ? 'true' : 'false');\n      dot.setAttribute('data-index', i);\n      dotsEl.appendChild(dot);\n    }\n  }\n  var dots = dotsEl ? dotsEl.querySelectorAll('.tree-gallery__dot') : [];\n\n  function goToSlide(index) {\n    if (!track || !slides.length) return;\n    index = Math.max(0, Math.min(slides.length - 1, index));\n    currentIndex = index;\n    track.scrollTo({ left: slides[index].offsetLeft, behavior: 'smooth' });\n    updateSliderUI();\n  }\n\n  function updateSliderUI() {\n    if (counter) counter.textContent = (currentIndex + 1) + ' \/ ' + slides.length;\n    dots.forEach(function (d, i) {\n      d.setAttribute('aria-current', i === currentIndex ? 'true' : 'false');\n    });\n    if (prevBtn) prevBtn.disabled = currentIndex === 0;\n    if (nextBtn) nextBtn.disabled = currentIndex === slides.length - 1;\n  }\n\n  if (prevBtn) prevBtn.addEventListener('click', function () { goToSlide(currentIndex - 1); });\n  if (nextBtn) nextBtn.addEventListener('click', function () { goToSlide(currentIndex + 1); });\n  dots.forEach(function (d) {\n    d.addEventListener('click', function () {\n      goToSlide(parseInt(d.getAttribute('data-index'), 10));\n    });\n  });\n\n  if (track) {\n    var scrollTimer;\n    track.addEventListener('scroll', function () {\n      clearTimeout(scrollTimer);\n      scrollTimer = setTimeout(function () {\n        var idx = Math.round(track.scrollLeft \/ track.clientWidth);\n        if (idx !== currentIndex) {\n          currentIndex = idx;\n          updateSliderUI();\n        }\n      }, 80);\n    });\n  }\n\n  updateSliderUI();\n\n  \/\/ ---- Variant state ----\n  var cards = root.querySelectorAll('.tree-variants__card');\n  var selected = root.querySelector('.tree-variants__card[aria-pressed=\"true\"]') || cards[0];\n\n  function applySelection(card) {\n    if (card.getAttribute('data-available') === 'false') return;\n    cards.forEach(function (c) { c.setAttribute('aria-pressed', 'false'); });\n    card.setAttribute('aria-pressed', 'true');\n    selected = card;\n\n    var name = card.getAttribute('data-variant-name');\n    var id = card.getAttribute('data-variant-id');\n\n    root.querySelector('#tree-selected-name').textContent = name;\n    root.querySelector('#tree-cart-variant').value = id;\n    root.querySelector('#tree-notify-variant').value = id;\n\n    \/\/ Jump slider to the wheels detail when \"Wheels\" is selected\n    if (name === 'Wheels' \u0026\u0026 slides.length \u003e 2) {\n      goToSlide(2); \/\/ wheels detail is slide 3\n    }\n\n    var available = card.getAttribute('data-available') !== 'false';\n    root.setAttribute('data-stock', available ? 'in' : 'out');\n\n    var priceCents = card.getAttribute('data-price-cents');\n    if (priceCents) updatePriceDisplays(parseInt(priceCents, 10));\n  }\n\n  function formatMoney(cents) {\n    \/\/ Try Shopify's built-in formatter first (respects shop's money format + active currency)\n    if (window.Shopify \u0026\u0026 typeof window.Shopify.formatMoney === 'function') {\n      var fmt = (window.Shopify.money_format) || '${{amount}}';\n      return window.Shopify.formatMoney(cents, fmt);\n    }\n    \/\/ Fallback: USD formatting\n    return '$' + (cents \/ 100).toFixed(2);\n  }\n\n  function getCurrencyCode() {\n    \/\/ Shopify Currency app exposes the active currency on Shopify.currency.active\n    if (window.Shopify \u0026\u0026 window.Shopify.currency \u0026\u0026 window.Shopify.currency.active) {\n      return window.Shopify.currency.active;\n    }\n    return 'USD';\n  }\n\n  function updatePriceDisplays(priceCents) {\n    var formatted = formatMoney(priceCents);\n    var currency = getCurrencyCode();\n    root.querySelector('#tree-price').textContent = formatted + ' ' + currency;\n    root.querySelector('#tree-installment').textContent = formatMoney(priceCents \/ 4);\n    root.querySelector('#tree-cta-price').textContent = formatted;\n  }\n\n  cards.forEach(function (c) {\n    c.addEventListener('click', function () { applySelection(c); });\n  });\n\n  \/\/ ---- Initial price render (uses fallback price until fetch resolves) ----\n  \/\/ Default $199 if we have nothing better yet\n  updatePriceDisplays(19900);\n\n  \/\/ ---- Live Shopify product JSON fetch ----\n  var handle = root.getAttribute('data-product-handle');\n  fetch('\/products\/' + handle + '.js', { headers: { 'Accept': 'application\/json' } })\n    .then(function (r) { return r.ok ? r.json() : null; })\n    .then(function (data) {\n      if (!data || !data.variants) return;\n\n      \/\/ Match cards to variants by name fragment\n      cards.forEach(function (card) {\n        var wantName = card.getAttribute('data-variant-name').toLowerCase();\n        var match;\n        if (wantName === 'no wheels') {\n          \/\/ Match exactly \"no wheels\" (be careful — \"wheels\" matches both)\n          match = data.variants.find(function (v) {\n            var vn = (v.name || v.title || '').toLowerCase();\n            return vn.indexOf('no wheel') !== -1 || vn.indexOf('without') !== -1;\n          });\n        } else {\n          \/\/ \"Wheels\" variant — match anything with \"wheel\" but not \"no wheel\"\n          match = data.variants.find(function (v) {\n            var vn = (v.name || v.title || '').toLowerCase();\n            return vn.indexOf('wheel') !== -1 \u0026\u0026 vn.indexOf('no wheel') === -1 \u0026\u0026 vn.indexOf('without') === -1;\n          });\n        }\n\n        if (match) {\n          card.setAttribute('data-variant-id', match.id);\n          card.setAttribute('data-price-cents', match.price);\n          card.setAttribute('data-available', match.available ? 'true' : 'false');\n        } else {\n          card.setAttribute('data-available', 'false');\n        }\n      });\n\n      \/\/ If currently selected is unavailable, fall back to first available\n      if (selected.getAttribute('data-available') === 'false') {\n        var firstAvail = Array.prototype.find.call(cards, function (c) {\n          return c.getAttribute('data-available') !== 'false';\n        });\n        if (firstAvail) selected = firstAvail;\n      }\n\n      applySelection(selected);\n    })\n    .catch(function () { \/* silent *\/ });\n\n  \/\/ ---- Re-render prices if user changes currency on the page ----\n  \/\/ Most Shopify currency apps fire a custom event or modify Shopify.currency.active.\n  \/\/ Watch for both common patterns:\n  document.addEventListener('currency:changed', function () {\n    if (selected) applySelection(selected);\n  });\n  \/\/ Some apps (e.g. Shopify's native multi-currency) reload the page on switch,\n  \/\/ but if not, this listener catches it.\n\n  \/\/ ---- Klaviyo back-in-stock submit ----\n  var form = root.querySelector('#tree-notify-form');\n  if (!form) return;\n\n  form.addEventListener('submit', function (e) {\n    e.preventDefault();\n\n    var emailInput = form.querySelector('input[name=\"contact[email]\"]');\n    var variantInput = form.querySelector('input[name=\"variant_id\"]');\n    var btn = form.querySelector('.tree-notify__btn');\n    var btnLabel = form.querySelector('.tree-notify__btn-label');\n\n    var email = (emailInput.value || '').trim();\n    var variantId = (variantInput.value || '').trim();\n\n    if (!email || !variantId || variantId.indexOf('REPLACE_') === 0) {\n      form.setAttribute('data-state', 'error');\n      return;\n    }\n\n    btn.disabled = true;\n    var originalLabel = btnLabel.textContent;\n    btnLabel.textContent = 'Submitting…';\n    form.removeAttribute('data-state');\n\n    var payload = {\n      data: {\n        type: 'back-in-stock-subscription',\n        attributes: {\n          profile: { data: { type: 'profile', attributes: { email: email } } },\n          channels: ['EMAIL']\n        },\n        relationships: {\n          variant: { data: { type: 'catalog-variant', id: '$shopify:::$default:::' + variantId } }\n        }\n      }\n    };\n\n    fetch('https:\/\/a.klaviyo.com\/client\/back-in-stock-subscriptions\/?company_id=' + KLAVIYO_PUBLIC_KEY, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json', 'revision': '2024-10-15' },\n      body: JSON.stringify(payload)\n    })\n      .then(function (res) {\n        if (res.ok || res.status === 202) {\n          form.setAttribute('data-state', 'success');\n        } else {\n          form.setAttribute('data-state', 'error');\n          btn.disabled = false;\n          btnLabel.textContent = originalLabel;\n        }\n      })\n      .catch(function () {\n        form.setAttribute('data-state', 'error');\n        btn.disabled = false;\n        btnLabel.textContent = originalLabel;\n      });\n  });\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"shg-c shg-align-left\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .ks-trust {\n    --kst-bg: #f5f1ea;       \/* cream *\/\n    --kst-white: #ffffff;\n    --kst-off: #faf7f2;\n    --kst-sand: #e8e0d3;\n    --kst-ink: #2a2a2a;      \/* char *\/\n    --kst-black: #111111;\n    --kst-muted: #8a8378;\n    --kst-accent: #1972bc;   \/* blue *\/\n    --kst-accent-d: #155a96;\n    --fo: \"Oswald\", Impact, sans-serif;\n    --fd: \"Bebas Neue\", Impact, sans-serif;\n    --fb: \"Barlow\", system-ui, sans-serif;\n    --fc: \"Barlow Condensed\", system-ui, sans-serif;\n    box-sizing: border-box;\n  }\n  .ks-trust *, .ks-trust *::before, .ks-trust *::after { box-sizing: border-box; }\n\n  \/* ========== GUARANTEE BLOCK ========== *\/\n  .ks-guarantee {\n    background: var(--kst-black);\n    color: var(--kst-white);\n    padding: 72px 16px;\n  }\n  .ks-guarantee__grid {\n    max-width: 1200px;\n    margin: 0 auto;\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 40px;\n    align-items: center;\n  }\n  @media (min-width: 860px) {\n    .ks-guarantee { padding: 96px 24px; }\n    .ks-guarantee__grid { grid-template-columns: 360px 1fr; gap: 72px; }\n  }\n\n  \/* ----- Badge (stamped seal style) ----- *\/\n  .ks-guarantee__badge-wrap {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .ks-guarantee__badge {\n    position: relative;\n    width: 280px;\n    height: 280px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    background: var(--kst-accent);\n    color: var(--kst-white);\n    border-radius: 6px;\n    padding: 24px;\n    text-align: center;\n    box-shadow: 0 0 0 6px var(--kst-black), 0 0 0 8px var(--kst-accent);\n    transform: rotate(-4deg);\n  }\n  .ks-guarantee__badge::before,\n  .ks-guarantee__badge::after {\n    content: \"\";\n    position: absolute;\n    left: 14px; right: 14px;\n    height: 1px;\n    background: rgba(255,255,255,.35);\n  }\n  .ks-guarantee__badge::before { top: 14px; }\n  .ks-guarantee__badge::after  { bottom: 14px; }\n\n  .ks-guarantee__badge-arc {\n    font-family: var(--fc);\n    font-size: 11px;\n    letter-spacing: .28em;\n    text-transform: uppercase;\n    color: rgba(255,255,255,.85);\n    margin-bottom: 4px;\n  }\n  .ks-guarantee__badge-top {\n    display: flex;\n    align-items: flex-start;\n    justify-content: center;\n    line-height: .85;\n    gap: 4px;\n  }\n  .ks-guarantee__badge-days {\n    font-family: var(--fo);\n    font-size: 128px;\n    line-height: .85;\n    color: var(--kst-white);\n    letter-spacing: -.04em;\n    font-weight: 700;\n  }\n  .ks-guarantee__badge-unit {\n    font-family: var(--fd);\n    font-size: 28px;\n    letter-spacing: .04em;\n    color: var(--kst-white);\n    text-transform: uppercase;\n    margin-top: 10px;\n  }\n  .ks-guarantee__badge-label {\n    font-family: var(--fd);\n    font-size: 20px;\n    letter-spacing: .12em;\n    color: var(--kst-white);\n    text-transform: uppercase;\n    line-height: 1;\n    margin-top: 2px;\n  }\n  .ks-guarantee__badge-sub {\n    font-family: var(--fc);\n    font-size: 11px;\n    letter-spacing: .18em;\n    text-transform: uppercase;\n    color: rgba(255,255,255,.7);\n    margin: 10px 0 0;\n  }\n\n  \/* ----- Content ----- *\/\n  .ks-guarantee__eyebrow {\n    font-family: var(--fc);\n    font-size: 13px;\n    letter-spacing: .14em;\n    text-transform: uppercase;\n    color: var(--kst-accent);\n    margin: 0 0 12px;\n  }\n  .ks-guarantee__title {\n    font-family: var(--fo);\n    font-weight: 600;\n    font-size: clamp(32px, 4.2vw, 52px);\n    line-height: 1;\n    text-transform: uppercase;\n    color: var(--kst-white);\n    margin: 0 0 20px;\n  }\n  .ks-guarantee__title em {\n    color: var(--kst-accent);\n    font-style: normal;\n  }\n  .ks-guarantee__desc {\n    font-family: var(--fb);\n    font-size: 16px;\n    line-height: 1.6;\n    color: rgba(255,255,255,.72);\n    margin: 0 0 28px;\n    max-width: 56ch;\n  }\n\n  .ks-guarantee__features {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 8px;\n  }\n  @media (min-width: 600px) {\n    .ks-guarantee__features { grid-template-columns: 1fr 1fr; gap: 10px; }\n  }\n  .ks-guarantee__feature {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 12px 14px;\n    background: rgba(255,255,255,.04);\n    border: 1px solid rgba(255,255,255,.08);\n    border-radius: 6px;\n    font-family: var(--fb);\n    font-size: 14px;\n    color: var(--kst-white);\n  }\n  .ks-guarantee__feature-icon {\n    flex: 0 0 20px;\n    width: 20px; height: 20px;\n    border-radius: 50%;\n    background: var(--kst-accent);\n    display: flex; align-items: center; justify-content: center;\n    color: var(--kst-white);\n  }\n  .ks-guarantee__feature-icon svg { width: 12px; height: 12px; }\n\n  \/* ========== SOCIAL PROOF BLOCK ========== *\/\n  .ks-social {\n    background: var(--kst-bg);\n    padding: 72px 0 80px;\n  }\n  .ks-social__header {\n    text-align: center;\n    max-width: 700px;\n    margin: 0 auto 40px;\n    padding: 0 20px;\n  }\n  .ks-social__eyebrow {\n    font-family: var(--fc);\n    font-size: 13px;\n    letter-spacing: .14em;\n    text-transform: uppercase;\n    color: var(--kst-accent);\n    margin: 0 0 10px;\n  }\n  .ks-social__count {\n    font-family: var(--fo);\n    font-size: clamp(56px, 9vw, 96px);\n    line-height: 1;\n    color: var(--kst-black);\n    display: block;\n    margin: 0 0 6px;\n    letter-spacing: -.02em;\n  }\n  .ks-social__title {\n    font-family: var(--fd);\n    font-size: clamp(20px, 2.5vw, 26px);\n    letter-spacing: .04em;\n    color: var(--kst-ink);\n    text-transform: uppercase;\n    margin: 0;\n  }\n\n  \/* ----- Marquee ----- *\/\n  .ks-marquee {\n    position: relative;\n    overflow: hidden;\n    mask-image: linear-gradient(to right, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);\n    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);\n  }\n  .ks-marquee__track {\n    display: flex;\n    animation: ks-scroll 40s linear infinite;\n    will-change: transform;\n  }\n  .ks-marquee:hover .ks-marquee__track { animation-play-state: paused; }\n  @keyframes ks-scroll {\n    0%   { transform: translateX(0); }\n    100% { transform: translateX(-50%); }\n  }\n  .ks-marquee__group {\n    display: flex;\n    gap: 14px;\n    padding: 0 7px;\n    flex-shrink: 0;\n  }\n\n  .ks-athlete {\n    position: relative;\n    width: 200px; height: 200px;\n    border-radius: 6px;\n    overflow: hidden;\n    flex-shrink: 0;\n    background: var(--kst-white);\n    cursor: pointer;\n  }\n  @media (max-width: 600px) {\n    .ks-athlete { width: 150px; height: 150px; }\n  }\n  .ks-athlete img {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform .4s ease;\n  }\n  .ks-athlete:hover img { transform: scale(1.06); }\n  .ks-athlete__overlay {\n    position: absolute;\n    inset: auto 0 0 0;\n    padding: 30px 12px 10px;\n    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, transparent 100%);\n    opacity: 0;\n    transition: opacity .25s ease;\n  }\n  .ks-athlete:hover .ks-athlete__overlay { opacity: 1; }\n  .ks-athlete__name {\n    font-family: var(--fd);\n    font-size: 16px;\n    letter-spacing: .04em;\n    color: var(--kst-white);\n    line-height: 1;\n    margin-bottom: 3px;\n  }\n  .ks-athlete__sport {\n    font-family: var(--fc);\n    font-size: 11px;\n    letter-spacing: .1em;\n    text-transform: uppercase;\n    color: var(--kst-accent);\n  }\n\n  \/* ----- Stats ----- *\/\n  .ks-stats {\n    max-width: 1200px;\n    margin: 56px auto 0;\n    padding: 0 20px;\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 1px;\n    background: var(--kst-sand);\n    border-radius: 6px;\n    overflow: hidden;\n  }\n  @media (min-width: 860px) {\n    .ks-stats { grid-template-columns: repeat(4, 1fr); }\n  }\n  .ks-stat {\n    background: var(--kst-white);\n    padding: 28px 16px;\n    text-align: center;\n  }\n  .ks-stat__num {\n    font-family: var(--fo);\n    font-size: clamp(32px, 4vw, 44px);\n    line-height: 1;\n    color: var(--kst-black);\n    margin: 0 0 8px;\n    letter-spacing: -.01em;\n  }\n  .ks-stat__label {\n    font-family: var(--fc);\n    font-size: 12px;\n    letter-spacing: .12em;\n    text-transform: uppercase;\n    color: var(--kst-muted);\n    margin: 0;\n  }\n\n  #judgeme_widget_placeholder {\n    max-width: 1200px;\n    margin: 48px auto 0;\n    padding: 0 20px;\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"shogun-root\" data-shogun-id=\"69ef8ed24b088f13e243ebf8\" data-shogun-site-id=\"d921f9ba-aa7a-4156-9e44-53aad23b56fb\" data-shogun-page-id=\"69ef8ed24b088f13e243ebf8\" data-shogun-page-version-id=\"69ef90a6682591347bb083f1\" data-shogun-platform-type=\"shopify\" data-shogun-variant-id=\"69ef90a6682591347bb083f7\" data-shogun-page-type=\"product\" data-shogun-power-up-type=\"\" data-shogun-power-up-id=\"\" data-region=\"main\"\u003e\n\u003cdiv id=\"s-3cdaa2b6-28c0-4cec-bc6e-763ef3405ef7\" class=\"shg-c shg-align-left\"\u003e\n\u003cdiv class=\"ks-trust\"\u003e\n\u003csection class=\"ks-guarantee\" aria-label=\"100-day guarantee\"\u003e\n\u003cdiv class=\"ks-guarantee__grid\"\u003e\n\u003cdiv class=\"ks-guarantee__badge-wrap\"\u003e\n\u003cdiv class=\"ks-guarantee__badge\" aria-label=\"100 day money back guarantee\"\u003e\n\u003cspan class=\"ks-guarantee__badge-arc\"\u003eKensui Promise\u003c\/span\u003e\n\u003cdiv class=\"ks-guarantee__badge-top\"\u003e\n\u003cspan class=\"ks-guarantee__badge-days\"\u003e100\u003c\/span\u003e \u003cspan class=\"ks-guarantee__badge-unit\"\u003eDays\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"ks-guarantee__badge-label\"\u003eMoney Back\u003c\/span\u003e \u003cspan class=\"ks-guarantee__badge-sub\"\u003eNo questions asked\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-guarantee__content\"\u003e\n\u003cp class=\"ks-guarantee__eyebrow\"\u003eThe Kensui promise\u003c\/p\u003e\n\u003ch2 class=\"ks-guarantee__title\"\u003eYour success\u003cbr\u003e\u003cem\u003eis guaranteed.\u003c\/em\u003e\n\u003c\/h2\u003e\n\u003cp class=\"ks-guarantee__desc\"\u003eWe want you to reach your fitness goals, enjoy your life, and feel healthy. The last thing we want is to create more stress — so if you decide this isn’t for you, we’ll give you a no-hassle, no-questions-asked 100% refund.\u003c\/p\u003e\n\u003cul class=\"ks-guarantee__features\" role=\"list\"\u003e\n\u003cli class=\"ks-guarantee__feature\"\u003e\n\u003cspan class=\"ks-guarantee__feature-icon\" aria-hidden=\"true\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003c\/span\u003e 100‑day risk-free trial\u003c\/li\u003e\n\u003cli class=\"ks-guarantee__feature\"\u003e\n\u003cspan class=\"ks-guarantee__feature-icon\" aria-hidden=\"true\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003c\/span\u003e Full refund if not satisfied\u003c\/li\u003e\n\u003cli class=\"ks-guarantee__feature\"\u003e\n\u003cspan class=\"ks-guarantee__feature-icon\" aria-hidden=\"true\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003c\/span\u003e No questions asked\u003c\/li\u003e\n\u003cli class=\"ks-guarantee__feature\"\u003e\n\u003cspan class=\"ks-guarantee__feature-icon\" aria-hidden=\"true\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003c\/span\u003e Warranty included\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"ks-social\" aria-label=\"Trusted by 200,000+ athletes\"\u003e\n\u003cdiv class=\"ks-social__header\"\u003e\n\u003cp class=\"ks-social__eyebrow\"\u003eTrusted worldwide\u003c\/p\u003e\n\u003cspan class=\"ks-social__count\" data-animate-count=\"200000\" data-suffix=\"+\"\u003e200,000+\u003c\/span\u003e\n\u003ch2 class=\"ks-social__title\"\u003eAthletes worldwide\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-marquee\"\u003e\n\u003cdiv class=\"ks-marquee__track\"\u003e\n\u003cdiv class=\"ks-marquee__group\"\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/i.shgcdn.com\/1a870660-76c0-4799-be89-7cf273afe2b0\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/\" srcset=\"https:\/\/i.shgcdn.com\/1a870660-76c0-4799-be89-7cf273afe2b0\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/300x\/ 300w, https:\/\/i.shgcdn.com\/1a870660-76c0-4799-be89-7cf273afe2b0\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/ 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eJohn D.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eCrossFit\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/i.shgcdn.com\/fb23d8ec-a3f2-4bab-a011-d4c2976f27a7\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/\" srcset=\"https:\/\/i.shgcdn.com\/fb23d8ec-a3f2-4bab-a011-d4c2976f27a7\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/300x\/ 300w, https:\/\/i.shgcdn.com\/fb23d8ec-a3f2-4bab-a011-d4c2976f27a7\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/ 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eSarah M.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eCalisthenics\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/i.shgcdn.com\/99b9bf0a-ba81-43b2-8628-8b74b1768199\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/\" srcset=\"https:\/\/i.shgcdn.com\/99b9bf0a-ba81-43b2-8628-8b74b1768199\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/300x\/ 300w, https:\/\/i.shgcdn.com\/99b9bf0a-ba81-43b2-8628-8b74b1768199\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/ 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eEric B.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003ePowerlifting\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/7.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" srcset=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/7.jpg?v=1747906467\u0026amp;width=300\u0026amp;format=webp 300w, https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/7.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eLuke K.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eYoga\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/10_73d4f91e-83c8-424c-9287-64f823c17c35.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" srcset=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/10_73d4f91e-83c8-424c-9287-64f823c17c35.jpg?v=1747906467\u0026amp;width=300\u0026amp;format=webp 300w, https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/10_73d4f91e-83c8-424c-9287-64f823c17c35.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eTom B.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003ePowerlifting\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/5_da5a09f9-6eef-4008-a04b-c67b919bb772.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" srcset=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/5_da5a09f9-6eef-4008-a04b-c67b919bb772.jpg?v=1747906467\u0026amp;width=300\u0026amp;format=webp 300w, https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/5_da5a09f9-6eef-4008-a04b-c67b919bb772.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eElias S.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eMMA\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/6_f24a5899-7d7e-4c4e-a5d8-c2078dc665a8.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" srcset=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/6_f24a5899-7d7e-4c4e-a5d8-c2078dc665a8.jpg?v=1747906467\u0026amp;width=300\u0026amp;format=webp 300w, https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/6_f24a5899-7d7e-4c4e-a5d8-c2078dc665a8.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eAlex P.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eCalisthenics\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/2.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" srcset=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/2.jpg?v=1747906467\u0026amp;width=300\u0026amp;format=webp 300w, https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/2.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp 400w\" sizes=\"200px\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eNina L.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eSwimming\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-marquee__group\" aria-hidden=\"true\"\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/i.shgcdn.com\/1a870660-76c0-4799-be89-7cf273afe2b0\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eJohn D.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eCrossFit\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/i.shgcdn.com\/fb23d8ec-a3f2-4bab-a011-d4c2976f27a7\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eSarah M.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eCalisthenics\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/i.shgcdn.com\/99b9bf0a-ba81-43b2-8628-8b74b1768199\/-\/format\/auto\/-\/preview\/3000x3000\/-\/quality\/lighter\/-\/resize\/400x\/\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eEric B.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003ePowerlifting\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/7.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eLuke K.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eYoga\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/10_73d4f91e-83c8-424c-9287-64f823c17c35.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eTom B.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003ePowerlifting\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/5_da5a09f9-6eef-4008-a04b-c67b919bb772.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eElias S.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eMMA\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/6_f24a5899-7d7e-4c4e-a5d8-c2078dc665a8.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eAlex P.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eCalisthenics\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"ks-athlete\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/2.jpg?v=1747906467\u0026amp;width=400\u0026amp;format=webp\" width=\"400\" height=\"400\" alt=\"\"\u003e\n\u003cfigcaption class=\"ks-athlete__overlay\"\u003e\n\u003cdiv class=\"ks-athlete__name\"\u003eNina L.\u003c\/div\u003e\n\u003cdiv class=\"ks-athlete__sport\"\u003eSwimming\u003c\/div\u003e\n\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-stats\" role=\"list\"\u003e\n\u003cdiv class=\"ks-stat\" role=\"listitem\"\u003e\n\u003cdiv class=\"ks-stat__num\" data-animate-count=\"200000\" data-suffix=\"+\"\u003e200K+\u003c\/div\u003e\n\u003cdiv class=\"ks-stat__label\"\u003eHappy Athletes\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-stat\" role=\"listitem\"\u003e\n\u003cdiv class=\"ks-stat__num\"\u003e4.9★\u003c\/div\u003e\n\u003cdiv class=\"ks-stat__label\"\u003eAverage Rating\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-stat\" role=\"listitem\"\u003e\n\u003cdiv class=\"ks-stat__num\" data-animate-count=\"50\" data-suffix=\"+\"\u003e50+\u003c\/div\u003e\n\u003cdiv class=\"ks-stat__label\"\u003eCountries\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ks-stat\" role=\"listitem\"\u003e\n\u003cdiv class=\"ks-stat__num\" data-animate-count=\"99\" data-suffix=\"%\"\u003e99%\u003c\/div\u003e\n\u003cdiv class=\"ks-stat__label\"\u003eSatisfaction\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"judgeme_widget_placeholder\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function () {\n  \/\/ Counter animation on scroll-in, works for any element with data-animate-count\n  function formatNum(n, target) {\n    if (target \u003e= 1000) {\n      \/\/ Show \"200K+\" style for big numbers\n      if (target \u003e= 1000) return Math.floor(n \/ 1000) + 'K';\n    }\n    return Math.floor(n).toString();\n  }\n\n  function animate(el) {\n    var target = parseInt(el.getAttribute('data-animate-count'), 10);\n    var suffix = el.getAttribute('data-suffix') || '';\n    if (isNaN(target)) return;\n    var duration = 1400;\n    var start = null;\n    function step(ts) {\n      if (!start) start = ts;\n      var t = Math.min(1, (ts - start) \/ duration);\n      var eased = 1 - Math.pow(1 - t, 3); \/\/ ease-out cubic\n      var current = target * eased;\n      el.textContent = formatNum(current, target) + suffix;\n      if (t \u003c 1) requestAnimationFrame(step);\n      else el.textContent = (target \u003e= 1000 ? Math.floor(target\/1000) + 'K' : target) + suffix;\n    }\n    requestAnimationFrame(step);\n  }\n\n  var nodes = document.querySelectorAll('[data-animate-count]');\n  if (!('IntersectionObserver' in window)) {\n    nodes.forEach(animate);\n    return;\n  }\n  var io = new IntersectionObserver(function (entries) {\n    entries.forEach(function (e) {\n      if (e.isIntersecting) {\n        animate(e.target);\n        io.unobserve(e.target);\n      }\n    });\n  }, { threshold: 0.4 });\n  nodes.forEach(function (n) { io.observe(n); });\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Kensui","offers":[{"title":"Wheels","offer_id":47753276227796,"sku":null,"price":199.0,"currency_code":"USD","in_stock":true},{"title":"No Wheels","offer_id":47753276260564,"sku":null,"price":149.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/IMG_7048_974706eb-9952-4e9e-961e-573237bd89b2.webp?v=1784019855"},{"product_id":"torii-safety-spotter-arms","title":"Torii Safety Spotter Arms","description":"\u003cp data-end=\"218\" data-start=\"170\"\u003e\u003cstrong data-end=\"218\" data-start=\"170\"\u003eTrain Heavy. Fail Safe. Lift Without Limits.\u003c\/strong\u003e\u003c\/p\u003e\u003cp data-end=\"425\" data-start=\"220\"\u003eWhen you’re pushing real weight, failure isn’t a possibility—it’s part of the process. The \u003cstrong data-end=\"340\" data-start=\"311\"\u003eTorii Safety Spotter Arms\u003c\/strong\u003e are built to catch you at your limit, so you can train harder with total confidence.\u003c\/p\u003e\u003cp data-end=\"622\" data-start=\"427\"\u003eInspired by the strength and structure of traditional Japanese torii gates, these spotter arms combine \u003cstrong data-end=\"582\" data-start=\"530\"\u003eminimalist design with uncompromising durability\u003c\/strong\u003e—a perfect balance of form and function.\u003c\/p\u003e\u003cp data-end=\"622\" data-start=\"427\"\u003e\u003cem\u003e**Sold in a pair\u003c\/em\u003e\u003c\/p\u003e","brand":"Kensui","offers":[{"title":"Default Title","offer_id":47794085658836,"sku":"rek-spotter-arm","price":129.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/torii-spotter-3.jpg?v=1776179515"},{"product_id":"revo-rack™","title":"REVO RACK™","description":"\u003cp data-start=\"15\" data-end=\"80\"\u003ePRE-ORDER to SAVE $50. Ships in August.\u003c\/p\u003e\n\u003cp data-start=\"15\" data-end=\"80\"\u003eKeep your barbells organized, protected, and always within reach.\u003c\/p\u003e\n\u003cp data-start=\"82\" data-end=\"310\"\u003eThe REVO RACK stores up to 10 barbells vertically in a compact footprint. Its revolving carousel design rotates smoothly, allowing you to bring any bar directly toward you—no reaching over equipment or removing other bars first.\u003c\/p\u003e\n\u003cp data-start=\"312\" data-end=\"557\"\u003eA wide, reinforced base provides stability under heavy loads, while individually lined storage tubes help protect barbell sleeves from scratches and unnecessary wear. Perfect for home gyms, commercial facilities, and serious barbell collections.\u003c\/p\u003e\n\u003cul data-start=\"559\" data-end=\"814\" data-is-last-node=\"\" data-is-only-node=\"\"\u003e\n\u003cli data-section-id=\"1xga8v2\" data-start=\"559\" data-end=\"585\"\u003eStores up to 10 barbells\u003c\/li\u003e\n\u003cli data-section-id=\"1nf64zy\" data-start=\"586\" data-end=\"613\"\u003eSmooth revolving carousel\u003c\/li\u003e\n\u003cli data-section-id=\"3hm2h\" data-start=\"614\" data-end=\"646\"\u003eFast, easy access to every bar\u003c\/li\u003e\n\u003cli data-section-id=\"9trhow\" data-start=\"647\" data-end=\"683\"\u003eCompact, space-efficient footprint\u003c\/li\u003e\n\u003cli data-section-id=\"1lll4ec\" data-start=\"684\" data-end=\"716\"\u003eProtective storage-tube liners\u003c\/li\u003e\n\u003cli data-section-id=\"16n9z4c\" data-start=\"717\" data-end=\"748\"\u003eHeavy-duty steel construction\u003c\/li\u003e\n\u003cli data-section-id=\"k8h9ur\" data-start=\"749\" data-end=\"768\"\u003eWide, stable base\u003c\/li\u003e\n\u003cli data-section-id=\"1e97cd\" data-start=\"769\" data-end=\"814\" data-is-last-node=\"\"\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Kensui","offers":[{"title":"Default Title","offer_id":48328488157396,"sku":null,"price":199.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0229\/1249\/9792\/files\/spinningbarbellholder.jpg?v=1784483462"}],"url":"https:\/\/kensui.com\/sv\/collections\/bench-racks-storage.oembed","provider":"Kensui","version":"1.0","type":"link"}