{"title":"Body Theory™ Cupping Pro","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"},{"product_id":"body-theory™-recovery-bundle-cupping-pro-massage-oil","title":"Body Theory™ Recovery Bundle | Cupping Pro + Massage Oil","description":"\u003csection class=\"bt-bundle\"\u003e\n  \u003cdiv class=\"bt-bundle__inner\"\u003e\n\n    \u003cdiv class=\"bt-bundle__badge\"\u003e\n      BODYTHEORY™ RECOVERY BUNDLE\n    \u003c\/div\u003e\n\n    \u003ch2\u003e\n      Recover Smarter.\u003cbr\u003e\n      \u003cspan\u003eSave More.\u003c\/span\u003e\n    \u003c\/h2\u003e\n\n    \u003cp class=\"bt-bundle__intro\"\u003e\n      Pair the BodyTheory™ Cupping Pro with our Hibiscus Rose Massage Oil for a complete at-home recovery routine designed to ease tension, support circulation and help your body feel ready for more.\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"bt-bundle__grid\"\u003e\n\n      \u003cdiv class=\"bt-bundle__card\"\u003e\n        \u003cdiv class=\"bt-bundle__number\"\u003e01\u003c\/div\u003e\n\n        \u003ch3\u003eBodyTheory™ Cupping Pro\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Adjustable suction and heat therapy help target tight, overworked muscles while supporting recovery and healthy blood flow.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"bt-bundle__points\"\u003e\n          \u003cspan\u003e✓ Muscle Recovery\u003c\/span\u003e\n          \u003cspan\u003e✓ Tension Relief\u003c\/span\u003e\n          \u003cspan\u003e✓ Circulation Support\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"bt-bundle__plus\"\u003e+\u003c\/div\u003e\n\n      \u003cdiv class=\"bt-bundle__card\"\u003e\n        \u003cdiv class=\"bt-bundle__number\"\u003e02\u003c\/div\u003e\n\n        \u003ch3\u003eHibiscus Rose Massage Oil\u003c\/h3\u003e\n\n        \u003cp\u003e\n          A smooth botanical blend that helps the device glide comfortably while nourishing and conditioning the skin.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"bt-bundle__points\"\u003e\n          \u003cspan\u003e✓ Smooth Application\u003c\/span\u003e\n          \u003cspan\u003e✓ Nourishing Oils\u003c\/span\u003e\n          \u003cspan\u003e✓ Soft, Conditioned Skin\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bt-bundle__result\"\u003e\n      \u003cspan class=\"bt-bundle__check\"\u003e✓\u003c\/span\u003e\n\n      \u003cdiv\u003e\n        \u003cstrong\u003eThe Complete Recovery Routine\u003c\/strong\u003e\n        \u003cp\u003eDeep recovery meets premium self-care — all in one bundle.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bt-bundle__footer\"\u003e\n      \u003cstrong\u003eYOUR BODY WORKS HARD.\u003c\/strong\u003e\n      \u003cspan\u003eGive it the recovery it deserves.\u003c\/span\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cstyle\u003e\n\n.bt-bundle,\n.bt-bundle *{\n  box-sizing:border-box;\n}\n\n.bt-bundle{\n  width:100%;\n  padding:55px 18px;\n  background:#ffffff;\n  color:#000000;\n  overflow:hidden;\n}\n\n.bt-bundle__inner{\n  width:100%;\n  max-width:1050px;\n  margin:0 auto;\n  text-align:center;\n}\n\n\n\/* BADGE *\/\n\n.bt-bundle__badge{\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n\n  padding:8px 15px;\n  margin-bottom:18px;\n\n  background:#000000;\n  color:#ffffff;\n\n  border-radius:999px;\n\n  font-size:10px;\n  font-weight:900;\n  letter-spacing:.15em;\n\n  animation:btBundleFade .7s ease both;\n}\n\n\n\/* HEADING *\/\n\n.bt-bundle h2{\n  margin:0;\n\n  color:#000000;\n\n  font-size:clamp(38px,6vw,64px);\n  line-height:.98;\n\n  font-weight:900;\n  letter-spacing:-.045em;\n\n  animation:btBundleUp .7s .1s ease both;\n}\n\n.bt-bundle h2 span{\n  color:#000000;\n  font-style:italic;\n}\n\n.bt-bundle__intro{\n  max-width:700px;\n\n  margin:20px auto 0;\n\n  color:#000000;\n\n  font-size:16px;\n  font-weight:700;\n  line-height:1.7;\n\n  animation:btBundleUp .7s .18s ease both;\n}\n\n\n\/* PRODUCTS *\/\n\n.bt-bundle__grid{\n  display:grid;\n  grid-template-columns:1fr auto 1fr;\n  align-items:center;\n\n  gap:18px;\n\n  margin-top:36px;\n}\n\n.bt-bundle__card{\n  position:relative;\n\n  min-height:245px;\n\n  padding:28px 25px;\n\n  background:#ffffff;\n\n  border:1px solid #dedede;\n  border-radius:24px;\n\n  text-align:left;\n\n  box-shadow:0 15px 40px rgba(0,0,0,.06);\n\n  transition:\n    transform .3s ease,\n    box-shadow .3s ease,\n    border-color .3s ease;\n\n  animation:btCardReveal .7s ease both;\n}\n\n.bt-bundle__card:first-child{\n  animation-delay:.25s;\n}\n\n.bt-bundle__card:last-child{\n  animation-delay:.35s;\n}\n\n.bt-bundle__card:hover{\n  transform:translateY(-5px);\n  border-color:#000000;\n  box-shadow:0 20px 50px rgba(0,0,0,.11);\n}\n\n.bt-bundle__number{\n  margin-bottom:15px;\n\n  color:#000000;\n\n  font-size:11px;\n  font-weight:900;\n  letter-spacing:.15em;\n}\n\n.bt-bundle__card h3{\n  margin:0;\n\n  color:#000000;\n\n  font-size:21px;\n  font-weight:900;\n  line-height:1.2;\n}\n\n.bt-bundle__card p{\n  margin:12px 0 0;\n\n  color:#000000;\n\n  font-size:13.5px;\n  font-weight:700;\n  line-height:1.6;\n}\n\n\n\/* POINTS *\/\n\n.bt-bundle__points{\n  display:flex;\n  flex-wrap:wrap;\n\n  gap:7px;\n\n  margin-top:18px;\n}\n\n.bt-bundle__points span{\n  padding:7px 10px;\n\n  border:1px solid #dddddd;\n  border-radius:999px;\n\n  background:#ffffff;\n  color:#000000;\n\n  font-size:10px;\n  font-weight:900;\n}\n\n\n\/* PLUS *\/\n\n.bt-bundle__plus{\n  display:grid;\n  place-items:center;\n\n  width:48px;\n  height:48px;\n\n  border-radius:50%;\n\n  background:#000000;\n  color:#ffffff;\n\n  font-size:28px;\n  font-weight:300;\n\n  animation:btPlusPulse 2.5s ease-in-out infinite;\n}\n\n\n\/* RESULT *\/\n\n.bt-bundle__result{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n\n  gap:13px;\n\n  max-width:720px;\n\n  margin:25px auto 0;\n  padding:16px 20px;\n\n  background:#ffffff;\n\n  border:1px solid #dcdcdc;\n  border-radius:18px;\n\n  box-shadow:0 10px 30px rgba(0,0,0,.05);\n\n  text-align:left;\n\n  animation:btBundleUp .7s .45s ease both;\n}\n\n.bt-bundle__check{\n  display:grid;\n  place-items:center;\n\n  flex:0 0 34px;\n\n  width:34px;\n  height:34px;\n\n  border-radius:50%;\n\n  background:#000000;\n  color:#ffffff;\n\n  font-size:17px;\n  font-weight:900;\n}\n\n.bt-bundle__result strong{\n  display:block;\n\n  color:#000000;\n\n  font-size:14px;\n  font-weight:900;\n}\n\n.bt-bundle__result p{\n  margin:3px 0 0;\n\n  color:#000000;\n\n  font-size:12px;\n  font-weight:700;\n}\n\n\n\/* FOOTER *\/\n\n.bt-bundle__footer{\n  margin-top:25px;\n\n  color:#000000;\n\n  animation:btBundleFade .7s .55s ease both;\n}\n\n.bt-bundle__footer strong,\n.bt-bundle__footer span{\n  display:block;\n}\n\n.bt-bundle__footer strong{\n  font-size:12px;\n  font-weight:900;\n  letter-spacing:.13em;\n}\n\n.bt-bundle__footer span{\n  margin-top:5px;\n\n  font-size:12px;\n  font-weight:700;\n}\n\n\n\/* ANIMATIONS *\/\n\n@keyframes btBundleFade{\n  from{\n    opacity:0;\n  }\n\n  to{\n    opacity:1;\n  }\n}\n\n@keyframes btBundleUp{\n  from{\n    opacity:0;\n    transform:translateY(20px);\n  }\n\n  to{\n    opacity:1;\n    transform:translateY(0);\n  }\n}\n\n@keyframes btCardReveal{\n  from{\n    opacity:0;\n    transform:translateY(25px) scale(.98);\n  }\n\n  to{\n    opacity:1;\n    transform:translateY(0) scale(1);\n  }\n}\n\n@keyframes btPlusPulse{\n  0%,\n  100%{\n    transform:scale(1);\n  }\n\n  50%{\n    transform:scale(1.08);\n  }\n}\n\n\n\/* MOBILE *\/\n\n@media(max-width:749px){\n\n  .bt-bundle{\n    padding:40px 14px;\n  }\n\n  .bt-bundle__badge{\n    margin-bottom:15px;\n\n    padding:7px 12px;\n\n    font-size:8px;\n    letter-spacing:.12em;\n  }\n\n  .bt-bundle h2{\n    font-size:38px;\n    line-height:1.02;\n  }\n\n  .bt-bundle__intro{\n    margin-top:16px;\n\n    font-size:13.5px;\n    line-height:1.6;\n  }\n\n  .bt-bundle__grid{\n    grid-template-columns:1fr;\n\n    gap:12px;\n\n    margin-top:27px;\n  }\n\n  .bt-bundle__card{\n    min-height:auto;\n\n    padding:21px 18px;\n\n    border-radius:19px;\n  }\n\n  .bt-bundle__card h3{\n    font-size:18px;\n  }\n\n  .bt-bundle__card p{\n    font-size:12.5px;\n    line-height:1.55;\n  }\n\n  .bt-bundle__points{\n    gap:6px;\n    margin-top:15px;\n  }\n\n  .bt-bundle__points span{\n    padding:6px 8px;\n    font-size:9px;\n  }\n\n  .bt-bundle__plus{\n    width:38px;\n    height:38px;\n\n    margin:0 auto;\n\n    font-size:23px;\n  }\n\n  .bt-bundle__result{\n    align-items:flex-start;\n\n    margin-top:20px;\n    padding:14px 15px;\n\n    border-radius:15px;\n  }\n\n  .bt-bundle__check{\n    flex-basis:29px;\n\n    width:29px;\n    height:29px;\n\n    font-size:14px;\n  }\n\n  .bt-bundle__result strong{\n    font-size:12.5px;\n  }\n\n  .bt-bundle__result p{\n    font-size:10.5px;\n    line-height:1.4;\n  }\n\n  .bt-bundle__footer{\n    margin-top:20px;\n  }\n\n  .bt-bundle__footer strong{\n    font-size:10px;\n  }\n\n  .bt-bundle__footer span{\n    font-size:10.5px;\n  }\n\n}\n\n\n\/* REDUCED MOTION *\/\n\n@media(prefers-reduced-motion:reduce){\n\n  .bt-bundle__badge,\n  .bt-bundle h2,\n  .bt-bundle__intro,\n  .bt-bundle__card,\n  .bt-bundle__plus,\n  .bt-bundle__result,\n  .bt-bundle__footer{\n    animation:none;\n  }\n\n  .bt-bundle__card{\n    transition:none;\n  }\n\n}\n\n\u003c\/style\u003e","brand":"BodyTheory","offers":[{"title":"Default Title","offer_id":44773841272875,"sku":null,"price":899.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0700\/5025\/0795\/files\/ChatGPTImageAug11_2026_01_40_25PM.png?v=1786707842"}],"url":"https:\/\/bodytheory.co.za\/collections\/body-theory%e2%84%a2-cupping-pro%e2%9a%a1.oembed","provider":"BodyTheory","version":"1.0","type":"link"}