{"title":"Home page","description":null,"products":[{"product_id":"body-theory™-cupping-pro⚡","title":"Body Theory™ Cupping Pro","description":"\u003cstyle\u003e\n  .bt-recovery,\n  .bt-recovery * {\n    box-sizing: border-box;\n  }\n\n  .bt-recovery {\n    --green: #b9cbbd;\n    --deep-green: #78907d;\n    --white: #ffffff;\n    --soft: #e3e9e4;\n    --muted: rgba(255, 255, 255, 0.64);\n    --border: rgba(185, 203, 189, 0.2);\n\n    position: relative;\n    width: 100%;\n    max-width: 940px;\n    margin: 0 auto;\n    padding: 46px 28px;\n    overflow: hidden;\n    border: 1px solid var(--border);\n    border-radius: 25px;\n    background:\n      radial-gradient(\n        circle at 92% 8%,\n        rgba(185, 203, 189, 0.2),\n        transparent 29%\n      ),\n      radial-gradient(\n        circle at 5% 95%,\n        rgba(120, 144, 125, 0.13),\n        transparent 28%\n      ),\n      linear-gradient(145deg, #070908, #111612 55%, #080a09);\n    box-shadow: 0 24px 65px rgba(0, 0, 0, 0.24);\n    color: var(--white);\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .bt-recovery__orb {\n    position: absolute;\n    width: 220px;\n    height: 220px;\n    border-radius: 50%;\n    background: rgba(185, 203, 189, 0.07);\n    pointer-events: none;\n    animation: btFloat 7s ease-in-out infinite;\n  }\n\n  .bt-recovery__orb--one {\n    top: -110px;\n    right: -80px;\n  }\n\n  .bt-recovery__orb--two {\n    bottom: -120px;\n    left: -100px;\n    animation-delay: 1.5s;\n  }\n\n  .bt-recovery__content {\n    position: relative;\n    z-index: 2;\n  }\n\n  .bt-recovery__badge {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    margin-bottom: 14px;\n    padding: 7px 12px;\n    border: 1px solid var(--border);\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.05);\n    color: var(--green);\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    animation: btReveal 0.65s ease both;\n  }\n\n  .bt-recovery h2 {\n    max-width: 760px;\n    margin: 0;\n    color: var(--white);\n    font-size: clamp(36px, 7vw, 62px);\n    font-weight: 900;\n    letter-spacing: -0.055em;\n    line-height: 1;\n    animation: btReveal 0.7s 0.08s ease both;\n  }\n\n  .bt-recovery h2 span {\n    background: linear-gradient(\n      90deg,\n      #ffffff,\n      var(--green),\n      #ffffff\n    );\n    background-size: 200% auto;\n    -webkit-background-clip: text;\n    background-clip: text;\n    color: transparent;\n    animation: btTextShine 4s linear infinite;\n  }\n\n  .bt-recovery__lead {\n    max-width: 720px;\n    margin: 15px 0 0;\n    color: var(--soft);\n    font-size: 14px;\n    line-height: 1.65;\n    animation: btReveal 0.7s 0.16s ease both;\n  }\n\n  .bt-recovery__pain-banner {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    margin-top: 22px;\n    padding: 16px 18px;\n    border: 1px solid rgba(185, 203, 189, 0.23);\n    border-radius: 17px;\n    background:\n      linear-gradient(\n        135deg,\n        rgba(185, 203, 189, 0.14),\n        rgba(255, 255, 255, 0.035)\n      );\n    animation: btReveal 0.7s 0.23s ease both;\n  }\n\n  .bt-recovery__pain-icon {\n    display: grid;\n    place-items: center;\n    flex: 0 0 42px;\n    width: 42px;\n    height: 42px;\n    border-radius: 13px;\n    background: rgba(185, 203, 189, 0.14);\n    font-size: 19px;\n  }\n\n  .bt-recovery__pain-banner strong {\n    display: block;\n    color: var(--white);\n    font-size: 12px;\n    line-height: 1.35;\n  }\n\n  .bt-recovery__pain-banner span {\n    display: block;\n    margin-top: 4px;\n    color: var(--muted);\n    font-size: 10px;\n    line-height: 1.45;\n  }\n\n  .bt-recovery__grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 11px;\n    margin-top: 16px;\n  }\n\n  .bt-recovery__card {\n    position: relative;\n    min-width: 0;\n    padding: 18px;\n    overflow: hidden;\n    border: 1px solid var(--border);\n    border-radius: 18px;\n    background: rgba(255, 255, 255, 0.052);\n    backdrop-filter: blur(10px);\n    animation: btReveal 0.7s ease both;\n    transition:\n      transform 0.25s ease,\n      border-color 0.25s ease,\n      background 0.25s ease;\n  }\n\n  .bt-recovery__card:nth-child(1) {\n    animation-delay: 0.29s;\n  }\n\n  .bt-recovery__card:nth-child(2) {\n    animation-delay: 0.36s;\n  }\n\n  .bt-recovery__card:nth-child(3) {\n    animation-delay: 0.43s;\n  }\n\n  .bt-recovery__card:nth-child(4) {\n    animation-delay: 0.5s;\n  }\n\n  .bt-recovery__card::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: -140%;\n    width: 70%;\n    height: 100%;\n    background: linear-gradient(\n      90deg,\n      transparent,\n      rgba(255, 255, 255, 0.08),\n      transparent\n    );\n    transform: skewX(-20deg);\n    animation: btShine 5.2s ease-in-out infinite;\n  }\n\n  .bt-recovery__card:hover {\n    transform: translateY(-4px);\n    border-color: rgba(185, 203, 189, 0.55);\n    background: rgba(255, 255, 255, 0.075);\n  }\n\n  .bt-recovery__card-top {\n    position: relative;\n    z-index: 1;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  .bt-recovery__icon {\n    display: grid;\n    place-items: center;\n    flex: 0 0 38px;\n    width: 38px;\n    height: 38px;\n    border-radius: 12px;\n    background: rgba(185, 203, 189, 0.13);\n    font-size: 17px;\n  }\n\n  .bt-recovery__card h3 {\n    margin: 0;\n    color: var(--white);\n    font-size: 13px;\n    line-height: 1.3;\n  }\n\n  .bt-recovery__problem {\n    position: relative;\n    z-index: 1;\n    margin: 11px 0 0;\n    padding: 9px 10px;\n    border-left: 2px solid rgba(185, 203, 189, 0.55);\n    border-radius: 0 9px 9px 0;\n    background: rgba(0, 0, 0, 0.16);\n    color: rgba(255, 255, 255, 0.6);\n    font-size: 9.5px;\n    line-height: 1.42;\n  }\n\n  .bt-recovery__solution {\n    position: relative;\n    z-index: 1;\n    display: flex;\n    align-items: flex-start;\n    gap: 7px;\n    margin-top: 9px;\n    color: var(--soft);\n    font-size: 10px;\n    line-height: 1.45;\n  }\n\n  .bt-recovery__check {\n    display: grid;\n    place-items: center;\n    flex: 0 0 20px;\n    width: 20px;\n    height: 20px;\n    margin-top: 1px;\n    border-radius: 50%;\n    background: linear-gradient(145deg, #d2ded4, #78907d);\n    color: #101410;\n    font-size: 10px;\n    font-weight: 900;\n  }\n\n  .bt-recovery__routine {\n    display: grid;\n    grid-template-columns: 1fr auto;\n    align-items: center;\n    gap: 18px;\n    margin-top: 15px;\n    padding: 18px 20px;\n    border: 1px solid var(--border);\n    border-radius: 18px;\n    background:\n      linear-gradient(\n        135deg,\n        rgba(185, 203, 189, 0.13),\n        rgba(255, 255, 255, 0.035)\n      );\n    animation: btReveal 0.7s 0.57s ease both;\n  }\n\n  .bt-recovery__routine-label {\n    display: block;\n    margin-bottom: 5px;\n    color: var(--green);\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.14em;\n  }\n\n  .bt-recovery__routine p {\n    margin: 0;\n    color: var(--soft);\n    font-size: 11px;\n    line-height: 1.5;\n  }\n\n  .bt-recovery__routine strong {\n    color: var(--white);\n  }\n\n  .bt-recovery__steps {\n    display: flex;\n    align-items: center;\n    gap: 5px;\n    white-space: nowrap;\n  }\n\n  .bt-recovery__step {\n    display: grid;\n    place-items: center;\n    width: 29px;\n    height: 29px;\n    border-radius: 50%;\n    background: var(--green);\n    color: #111511;\n    font-size: 11px;\n    font-weight: 900;\n  }\n\n  .bt-recovery__arrow {\n    color: var(--green);\n    font-size: 12px;\n  }\n\n  .bt-recovery__ending {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 9px;\n    margin-top: 14px;\n    padding: 12px 15px;\n    border: 1px solid rgba(255, 255, 255, 0.08);\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.042);\n    text-align: center;\n    animation: btReveal 0.7s 0.64s ease both;\n  }\n\n  .bt-recovery__ending-icon {\n    display: grid;\n    place-items: center;\n    flex: 0 0 23px;\n    width: 23px;\n    height: 23px;\n    border-radius: 50%;\n    background: var(--green);\n    color: #101410;\n    font-size: 11px;\n    font-weight: 900;\n    animation: btPulse 2.6s ease-in-out infinite;\n  }\n\n  .bt-recovery__ending p {\n    margin: 0;\n    color: rgba(255, 255, 255, 0.72);\n    font-size: 10px;\n    line-height: 1.4;\n  }\n\n  .bt-recovery__ending strong {\n    color: var(--white);\n  }\n\n  @keyframes btReveal {\n    from {\n      opacity: 0;\n      transform: translateY(18px);\n    }\n\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n\n  @keyframes btFloat {\n    0%,\n    100% {\n      transform: translate3d(0, 0, 0);\n    }\n\n    50% {\n      transform: translate3d(10px, -10px, 0);\n    }\n  }\n\n  @keyframes btTextShine {\n    to {\n      background-position: 200% center;\n    }\n  }\n\n  @keyframes btShine {\n    0%,\n    58% {\n      left: -140%;\n    }\n\n    82%,\n    100% {\n      left: 150%;\n    }\n  }\n\n  @keyframes btPulse {\n    0%,\n    100% {\n      transform: scale(1);\n    }\n\n    50% {\n      transform: scale(1.08);\n    }\n  }\n\n  @media (max-width: 749px) {\n    .bt-recovery {\n      padding: 33px 10px;\n      border-radius: 18px;\n    }\n\n    .bt-recovery__content {\n      text-align: center;\n    }\n\n    .bt-recovery__badge {\n      margin-bottom: 11px;\n      padding: 6px 9px;\n      font-size: 7.5px;\n      letter-spacing: 0.09em;\n    }\n\n    .bt-recovery h2 {\n      font-size: 36px;\n      line-height: 1.03;\n    }\n\n    .bt-recovery__lead {\n      margin: 12px auto 0;\n      padding: 0 4px;\n      font-size: 12.5px;\n      line-height: 1.55;\n    }\n\n    .bt-recovery__pain-banner {\n      align-items: flex-start;\n      margin-top: 17px;\n      padding: 13px 12px;\n      border-radius: 15px;\n      text-align: left;\n    }\n\n    .bt-recovery__pain-icon {\n      flex-basis: 36px;\n      width: 36px;\n      height: 36px;\n      border-radius: 11px;\n      font-size: 16px;\n    }\n\n    .bt-recovery__pain-banner strong {\n      font-size: 10.5px;\n    }\n\n    .bt-recovery__pain-banner span {\n      font-size: 9px;\n    }\n\n    .bt-recovery__grid {\n      grid-template-columns: repeat(2, 1fr);\n      gap: 7px;\n      margin-top: 9px;\n      text-align: left;\n    }\n\n    .bt-recovery__card {\n      padding: 12px 9px;\n      border-radius: 14px;\n    }\n\n    .bt-recovery__card:hover {\n      transform: none;\n    }\n\n    .bt-recovery__card-top {\n      gap: 7px;\n    }\n\n    .bt-recovery__icon {\n      flex-basis: 31px;\n      width: 31px;\n      height: 31px;\n      border-radius: 9px;\n      font-size: 14px;\n    }\n\n    .bt-recovery__card h3 {\n      font-size: 10px;\n    }\n\n    .bt-recovery__problem {\n      margin-top: 8px;\n      padding: 7px 7px;\n      font-size: 8px;\n    }\n\n    .bt-recovery__solution {\n      gap: 5px;\n      margin-top: 7px;\n      font-size: 8.5px;\n    }\n\n    .bt-recovery__check {\n      flex-basis: 17px;\n      width: 17px;\n      height: 17px;\n      font-size: 8px;\n    }\n\n    .bt-recovery__routine {\n      grid-template-columns: 1fr;\n      gap: 12px;\n      margin-top: 9px;\n      padding: 14px 12px;\n      border-radius: 15px;\n      text-align: center;\n    }\n\n    .bt-recovery__routine p {\n      font-size: 9.5px;\n    }\n\n    .bt-recovery__steps {\n      justify-content: center;\n    }\n\n    .bt-recovery__step {\n      width: 26px;\n      height: 26px;\n      font-size: 10px;\n    }\n\n    .bt-recovery__ending {\n      align-items: flex-start;\n      margin-top: 9px;\n      padding: 10px 11px;\n      border-radius: 14px;\n      text-align: left;\n    }\n\n    .bt-recovery__ending p {\n      font-size: 9px;\n    }\n\n    .bt-recovery__ending-icon {\n      flex-basis: 20px;\n      width: 20px;\n      height: 20px;\n      font-size: 9px;\n    }\n  }\n\n  @media (max-width: 380px) {\n    .bt-recovery {\n      padding-inline: 7px;\n    }\n\n    .bt-recovery h2 {\n      font-size: 32px;\n    }\n\n    .bt-recovery__grid {\n      grid-template-columns: 1fr;\n    }\n\n    .bt-recovery__card {\n      padding: 12px;\n    }\n\n    .bt-recovery__card h3 {\n      font-size: 10.5px;\n    }\n\n    .bt-recovery__problem {\n      font-size: 8.5px;\n    }\n\n    .bt-recovery__solution {\n      font-size: 9px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .bt-recovery__badge,\n    .bt-recovery h2,\n    .bt-recovery__lead,\n    .bt-recovery__pain-banner,\n    .bt-recovery__card,\n    .bt-recovery__routine,\n    .bt-recovery__ending,\n    .bt-recovery__orb,\n    .bt-recovery__card::after,\n    .bt-recovery__ending-icon,\n    .bt-recovery h2 span {\n      animation: none;\n    }\n\n    .bt-recovery__card {\n      transition: none;\n    }\n  }\n\u003c\/style\u003e\n\n\u003csection class=\"bt-recovery\"\u003e\n  \u003cdiv class=\"bt-recovery__orb bt-recovery__orb--one\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"bt-recovery__orb bt-recovery__orb--two\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"bt-recovery__content\"\u003e\n    \u003cspan class=\"bt-recovery__badge\"\u003e\n      ⚡ Premium At-Home Recovery\n    \u003c\/span\u003e\n\n    \u003ch2\u003e\n      Your body is asking\u003cbr\u003e\n      \u003cspan\u003efor relief.™\u003c\/span\u003e\n    \u003c\/h2\u003e\n\n    \u003cp class=\"bt-recovery__lead\"\u003e\n      Long workdays, intense training and hours of sitting can leave your body\n      feeling stiff, heavy and overworked. Body Theory™ Cupping Pro brings\n      adjustable suction massage into your home—so recovery fits your routine.\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"bt-recovery__pain-banner\"\u003e\n      \u003cdiv class=\"bt-recovery__pain-icon\"\u003e⚠️\u003c\/div\u003e\n\n      \u003cdiv\u003e\n        \u003cstrong\u003e\n          Tight shoulders? Heavy legs? Post-workout tension?\n        \u003c\/strong\u003e\n\n        \u003cspan\u003e\n          Stop waiting until discomfort becomes part of your everyday life.\n          Give tired muscular areas focused attention when they need it.\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bt-recovery__grid\"\u003e\n\n      \u003carticle class=\"bt-recovery__card\"\u003e\n        \u003cdiv class=\"bt-recovery__card-top\"\u003e\n          \u003cdiv class=\"bt-recovery__icon\"\u003e💻\u003c\/div\u003e\n          \u003ch3\u003eStiff After Sitting\u003c\/h3\u003e\n        \u003c\/div\u003e\n\n        \u003cp class=\"bt-recovery__problem\"\u003e\n          Long hours at a desk or behind the wheel can leave your shoulders,\n          back and legs feeling tight.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"bt-recovery__solution\"\u003e\n          \u003cspan class=\"bt-recovery__check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003e\n            Focused suction massage helps you build a convenient relaxation\n            routine at home.\n          \u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"bt-recovery__card\"\u003e\n        \u003cdiv class=\"bt-recovery__card-top\"\u003e\n          \u003cdiv class=\"bt-recovery__icon\"\u003e🏋️\u003c\/div\u003e\n          \u003ch3\u003eOverworked Muscles\u003c\/h3\u003e\n        \u003c\/div\u003e\n\n        \u003cp class=\"bt-recovery__problem\"\u003e\n          Training can leave muscular areas feeling tired, tense and slow to\n          unwind.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"bt-recovery__solution\"\u003e\n          \u003cspan class=\"bt-recovery__check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003e\n            Adjustable intensity lets you begin gently and personalise your\n            post-workout massage.\n          \u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"bt-recovery__card\"\u003e\n        \u003cdiv class=\"bt-recovery__card-top\"\u003e\n          \u003cdiv class=\"bt-recovery__icon\"\u003e🩸\u003c\/div\u003e\n          \u003ch3\u003eHeavy, Tired Feeling\u003c\/h3\u003e\n        \u003c\/div\u003e\n\n        \u003cp class=\"bt-recovery__problem\"\u003e\n          Busy days and limited movement can leave your body feeling sluggish\n          and uncomfortable.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"bt-recovery__solution\"\u003e\n          \u003cspan class=\"bt-recovery__check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003e\n            Cupping massage may help stimulate local circulation as part of\n            your wellness routine.\n          \u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"bt-recovery__card\"\u003e\n        \u003cdiv class=\"bt-recovery__card-top\"\u003e\n          \u003cdiv class=\"bt-recovery__icon\"\u003e💸\u003c\/div\u003e\n          \u003ch3\u003eRecovery Gets Expensive\u003c\/h3\u003e\n        \u003c\/div\u003e\n\n        \u003cp class=\"bt-recovery__problem\"\u003e\n          Regular massage appointments can cost time and money—and may not fit\n          your schedule.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"bt-recovery__solution\"\u003e\n          \u003cspan class=\"bt-recovery__check\"\u003e✓\u003c\/span\u003e\n          \u003cspan\u003e\n            A reusable, portable recovery tool gives you convenient access\n            whenever your body needs extra care.\n          \u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bt-recovery__routine\"\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"bt-recovery__routine-label\"\u003e\n          YOUR 3-STEP RECOVERY RITUAL\n        \u003c\/span\u003e\n\n        \u003cp\u003e\n          \u003cstrong\u003ePosition. Adjust. Recover.\u003c\/strong\u003e\n          Begin at the lowest suction level and increase gradually according\n          to your comfort.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"bt-recovery__steps\" aria-label=\"Three-step recovery routine\"\u003e\n        \u003cspan class=\"bt-recovery__step\"\u003e1\u003c\/span\u003e\n        \u003cspan class=\"bt-recovery__arrow\"\u003e→\u003c\/span\u003e\n        \u003cspan class=\"bt-recovery__step\"\u003e2\u003c\/span\u003e\n        \u003cspan class=\"bt-recovery__arrow\"\u003e→\u003c\/span\u003e\n        \u003cspan class=\"bt-recovery__step\"\u003e3\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bt-recovery__ending\"\u003e\n      \u003cspan class=\"bt-recovery__ending-icon\"\u003e✓\u003c\/span\u003e\n\n      \u003cp\u003e\n        \u003cstrong\u003eBody Theory™\u003c\/strong\u003e — recover after training, unwind after\n        work and stop carrying today's tension into tomorrow.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e","brand":"Body Theory","offers":[{"title":"Default Title","offer_id":44455757873195,"sku":null,"price":699.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0700\/5025\/0795\/files\/ChatGPT_Image_Aug_11_2026_01_34_36_PM.png?v=1786448511"}],"url":"https:\/\/bodytheory.co.za\/collections\/frontpage.oembed","provider":"BodyTheory","version":"1.0","type":"link"}