{"title":"Wellness \u0026 Self-Care","description":"","products":[{"product_id":"softhaven™-the-warm-hug","title":"SoftHaven™ The Warm Hug","description":"\u003csection class=\"sfhc-section\" id=\"sfhc-warm-hug\"\u003e\n  \u003cstyle\u003e\n    .sfhc-section {\n      --rust: #d4806a;\n      --rust-dark: #bd6b57;\n      --cream: #faf0eb;\n      --peach: #f2c4b0;\n      --charcoal: #2c2c2c;\n      --grey: #5c5c5c;\n\n      --accent: #e87f72;\n      --accent-dark: #c96358;\n      --accent-rgb: 232, 127, 114;\n      --bg-one: #fff1ec;\n      --bg-two: #f2b6a9;\n      --bottle-one: #ff9a8e;\n      --bottle-two: #e86f63;\n      --belt-one: #eeeeee;\n      --belt-two: #9b9b9b;\n      --strap-one: #a6a6a6;\n      --strap-two: #5f5f5f;\n\n      width: 100%;\n      position: relative;\n      overflow: hidden;\n      padding: 64px 18px;\n      border-radius: 32px;\n      background:\n        radial-gradient(circle at 8% 10%, rgba(var(--accent-rgb), 0.22), transparent 32%),\n        radial-gradient(circle at 92% 4%, rgba(255,255,255,0.82), transparent 28%),\n        linear-gradient(135deg, var(--bg-one), var(--bg-two));\n      color: var(--charcoal);\n      font-family: inherit;\n      transition: background 0.45s ease;\n    }\n\n    .sfhc-section * {\n      box-sizing: border-box;\n      max-width: 100%;\n    }\n\n    .sfhc-wrap {\n      max-width: 1180px;\n      margin: 0 auto;\n      width: 100%;\n    }\n\n    .sfhc-hero {\n      display: grid;\n      grid-template-columns: 1.05fr 0.95fr;\n      gap: 44px;\n      align-items: center;\n    }\n\n    .sfhc-badge {\n      display: inline-flex;\n      padding: 10px 15px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.72);\n      border: 1px solid rgba(255,255,255,0.86);\n      font-size: 14px;\n      font-weight: 800;\n      margin-bottom: 18px;\n    }\n\n    .sfhc-title {\n      margin: 0 0 14px;\n      font-size: clamp(38px, 6vw, 74px);\n      line-height: 0.96;\n      letter-spacing: -2px;\n      font-weight: 950;\n      color: var(--charcoal);\n    }\n\n    .sfhc-title span {\n      display: block;\n      color: var(--accent);\n      transition: color 0.35s ease;\n    }\n\n    .sfhc-subtitle {\n      font-size: clamp(20px, 2.4vw, 28px);\n      font-weight: 900;\n      margin-bottom: 16px;\n    }\n\n    .sfhc-text {\n      color: var(--grey);\n      font-size: 17px;\n      line-height: 1.75;\n      margin: 0 0 24px;\n    }\n\n    .sfhc-actions {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: center;\n      gap: 14px;\n    }\n\n    .sfhc-btn {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 52px;\n      padding: 16px 28px;\n      border-radius: 999px;\n      border: none;\n      background: var(--accent);\n      color: #fff;\n      font-size: 16px;\n      font-weight: 950;\n      cursor: pointer;\n      text-decoration: none;\n      box-shadow: 0 18px 38px rgba(var(--accent-rgb), 0.34);\n      transition: 0.22s ease;\n    }\n\n    .sfhc-btn:hover {\n      transform: translateY(-2px);\n      background: var(--accent-dark);\n    }\n\n    .sfhc-note {\n      color: var(--grey);\n      font-size: 14px;\n      font-weight: 700;\n      line-height: 1.45;\n    }\n\n    .sfhc-trust-row {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 9px;\n      margin-top: 22px;\n    }\n\n    .sfhc-trust-row span {\n      padding: 9px 12px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.66);\n      border: 1px solid rgba(255,255,255,0.82);\n      font-size: 13px;\n      font-weight: 800;\n    }\n\n    .sfhc-product-card {\n      width: 100%;\n      max-width: 520px;\n      justify-self: end;\n      padding: 24px;\n      border-radius: 34px;\n      background: rgba(255,255,255,0.68);\n      border: 1px solid rgba(255,255,255,0.88);\n      box-shadow: 0 32px 80px rgba(112,67,54,0.18);\n      backdrop-filter: blur(16px);\n    }\n\n    .sfhc-visual {\n      position: relative;\n      width: 100%;\n      min-height: 360px;\n      border-radius: 28px;\n      overflow: hidden;\n      background:\n        radial-gradient(circle at 50% 18%, rgba(255,255,255,0.94), transparent 30%),\n        linear-gradient(145deg, rgba(255,255,255,0.72), rgba(var(--accent-rgb), 0.32));\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      transition: background 0.45s ease;\n    }\n\n    .sfhc-warmer-set {\n      position: relative;\n      width: 350px;\n      height: 250px;\n      animation: sfhcBreathe 4.5s ease-in-out infinite;\n      filter: drop-shadow(0 28px 45px rgba(112,67,54,0.26));\n    }\n\n    .sfhc-belt {\n      position: absolute;\n      left: 0;\n      top: 78px;\n      width: 245px;\n      height: 95px;\n      border-radius: 28px;\n      background:\n        radial-gradient(circle at 40% 35%, rgba(255,255,255,0.65), transparent 28%),\n        linear-gradient(145deg, var(--belt-one), var(--belt-two));\n      box-shadow:\n        inset 0 0 22px rgba(255,255,255,0.34),\n        0 18px 35px rgba(44,44,44,0.12);\n      transition: background 0.4s ease;\n      z-index: 2;\n    }\n\n    .sfhc-belt::before {\n      content: \"\";\n      position: absolute;\n      left: -45px;\n      top: -52px;\n      width: 155px;\n      height: 78px;\n      border-radius: 28px 28px 10px 10px;\n      background: linear-gradient(145deg, var(--strap-one), var(--strap-two));\n      transform: rotate(-25deg);\n      box-shadow: inset 0 0 12px rgba(255,255,255,0.18);\n    }\n\n    .sfhc-belt::after {\n      content: \"\";\n      position: absolute;\n      right: -55px;\n      top: -50px;\n      width: 155px;\n      height: 78px;\n      border-radius: 28px 28px 10px 10px;\n      background: linear-gradient(145deg, var(--strap-one), var(--strap-two));\n      transform: rotate(25deg);\n      box-shadow: inset 0 0 12px rgba(255,255,255,0.18);\n    }\n\n    .sfhc-label {\n      position: absolute;\n      left: 72px;\n      top: 28px;\n      padding: 6px 12px;\n      border-radius: 7px;\n      background: var(--accent);\n      color: #fff;\n      font-size: 12px;\n      font-weight: 900;\n      box-shadow: 0 8px 18px rgba(var(--accent-rgb),0.24);\n      z-index: 4;\n    }\n\n    .sfhc-bottle {\n      position: absolute;\n      right: 18px;\n      top: 18px;\n      width: 118px;\n      height: 194px;\n      border-radius: 44px 44px 34px 34px;\n      background:\n        radial-gradient(circle at 35% 20%, rgba(255,255,255,0.38), transparent 26%),\n        repeating-linear-gradient(45deg, rgba(255,255,255,0.12) 0 2px, transparent 2px 5px),\n        linear-gradient(145deg, var(--bottle-one), var(--bottle-two));\n      box-shadow:\n        inset 0 0 22px rgba(255,255,255,0.22),\n        0 22px 42px rgba(var(--accent-rgb),0.26);\n      transition: background 0.4s ease;\n      z-index: 5;\n    }\n\n    .sfhc-bottle::before {\n      content: \"\";\n      position: absolute;\n      left: 50%;\n      top: -25px;\n      width: 86px;\n      height: 46px;\n      transform: translateX(-50%);\n      border-radius: 20px 20px 12px 12px;\n      background:\n        radial-gradient(circle at 50% 45%, rgba(255,255,255,0.25), transparent 28%),\n        linear-gradient(145deg, var(--bottle-one), var(--bottle-two));\n      box-shadow: inset 0 0 12px rgba(255,255,255,0.18);\n    }\n\n    .sfhc-bottle::after {\n      content: \"\";\n      position: absolute;\n      left: 28px;\n      right: 28px;\n      bottom: 16px;\n      height: 10px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.24);\n    }\n\n    .sfhc-cap {\n      position: absolute;\n      left: 50%;\n      top: -44px;\n      width: 46px;\n      height: 24px;\n      transform: translateX(-50%);\n      border-radius: 999px 999px 10px 10px;\n      background: linear-gradient(145deg, rgba(255,255,255,0.35), var(--bottle-two));\n      z-index: 7;\n    }\n\n    .sfhc-plaid {\n      position: absolute;\n      right: 96px;\n      top: 58px;\n      width: 100px;\n      height: 135px;\n      border-radius: 24px;\n      background:\n        linear-gradient(45deg, rgba(44,44,44,0.55) 25%, transparent 25%, transparent 75%, rgba(44,44,44,0.55) 75%),\n        linear-gradient(45deg, rgba(255,255,255,0.7) 25%, transparent 25%, transparent 75%, rgba(255,255,255,0.7) 75%),\n        linear-gradient(135deg, rgba(var(--accent-rgb),0.8), rgba(44,44,44,0.42));\n      background-size: 34px 34px;\n      background-position: 0 0, 17px 17px, 0 0;\n      transform: rotate(-8deg);\n      opacity: 0.9;\n      z-index: 1;\n    }\n\n    .sfhc-warmth {\n      position: absolute;\n      bottom: 34px;\n      width: 14px;\n      height: 82px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.55);\n      filter: blur(8px);\n      pointer-events: none;\n      animation: sfhcSteam 4.5s ease-in-out infinite;\n    }\n\n    .sfhc-warmth.one { left: 23%; animation-delay: 0s; }\n    .sfhc-warmth.two { left: 50%; animation-delay: 1s; }\n    .sfhc-warmth.three { right: 23%; animation-delay: 2s; }\n\n    .sfhc-colour-title {\n      margin-top: 18px;\n      text-align: center;\n      font-size: 15px;\n      font-weight: 900;\n    }\n\n    .sfhc-colours {\n      display: flex;\n      justify-content: center;\n      gap: 11px;\n      margin-top: 13px;\n      flex-wrap: wrap;\n    }\n\n    .sfhc-colour {\n      width: 42px;\n      height: 42px;\n      border-radius: 999px;\n      border: 3px solid #fff;\n      box-shadow: 0 8px 18px rgba(44,44,44,0.15);\n      cursor: pointer;\n      transition: 0.2s ease;\n      appearance: none;\n      padding: 0;\n    }\n\n    .sfhc-colour.is-active {\n      box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.24), 0 8px 18px rgba(44,44,44,0.14);\n      transform: scale(1.08);\n    }\n\n    .sfhc-coral { background: #e87f72; }\n    .sfhc-grey-dot { background: #9b9b9b; }\n    .sfhc-charcoal { background: #3b3b3b; }\n    .sfhc-plaid-dot {\n      background:\n        linear-gradient(45deg, #2c2c2c 25%, transparent 25%, transparent 75%, #2c2c2c 75%),\n        linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%),\n        #d4806a;\n      background-size: 16px 16px;\n      background-position: 0 0, 8px 8px, 0 0;\n    }\n\n    .sfhc-selected {\n      text-align: center;\n      margin-top: 12px;\n      color: var(--grey);\n      font-size: 14px;\n      font-weight: 800;\n    }\n\n    .sfhc-heading {\n      max-width: 760px;\n      margin: 58px auto 24px;\n      text-align: center;\n    }\n\n    .sfhc-heading h2 {\n      margin: 0 0 10px;\n      font-size: clamp(28px, 4vw, 42px);\n      line-height: 1.08;\n      font-weight: 950;\n    }\n\n    .sfhc-heading p {\n      margin: 0;\n      color: var(--grey);\n      font-size: 16px;\n      line-height: 1.65;\n    }\n\n    .sfhc-benefits {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 18px;\n    }\n\n    .sfhc-benefit {\n      position: relative;\n      overflow: hidden;\n      padding: 24px;\n      border-radius: 26px;\n      background: rgba(255,255,255,0.68);\n      border: 1px solid rgba(255,255,255,0.86);\n      box-shadow: 0 18px 42px rgba(112,67,54,0.11);\n      cursor: pointer;\n      min-height: 188px;\n      transition: transform 0.22s ease, box-shadow 0.22s ease;\n    }\n\n    .sfhc-benefit:hover,\n    .sfhc-benefit.is-tapped {\n      transform: translateY(-5px) scale(1.01);\n      box-shadow: 0 25px 55px rgba(112,67,54,0.17);\n    }\n\n    .sfhc-icon {\n      width: 50px;\n      height: 50px;\n      border-radius: 17px;\n      background: var(--accent);\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      color: #fff;\n      font-size: 23px;\n      margin-bottom: 16px;\n      transition: background 0.35s ease;\n    }\n\n    .sfhc-benefit h3 {\n      margin: 0 0 8px;\n      font-size: 18px;\n      font-weight: 950;\n    }\n\n    .sfhc-benefit p {\n      margin: 0;\n      color: var(--grey);\n      font-size: 15px;\n      line-height: 1.6;\n    }\n\n    .sfhc-effect-layer {\n      position: absolute;\n      inset: 0;\n      pointer-events: none;\n      overflow: hidden;\n    }\n\n    .sfhc-particle {\n      position: absolute;\n      left: var(--x);\n      bottom: 14px;\n      font-size: var(--size);\n      opacity: 0;\n      animation: sfhcParticle 1.15s ease-out forwards;\n    }\n\n    .sfhc-particle.steam {\n      width: 14px;\n      height: 54px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.74);\n      filter: blur(7px);\n    }\n\n    .sfhc-split {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 18px;\n      margin-top: 28px;\n    }\n\n    .sfhc-panel,\n    .sfhc-size-guide {\n      padding: 30px;\n      border-radius: 30px;\n      background: rgba(255,255,255,0.66);\n      border: 1px solid rgba(255,255,255,0.86);\n      box-shadow: 0 22px 55px rgba(112,67,54,0.12);\n    }\n\n    .sfhc-size-guide {\n      margin-top: 28px;\n    }\n\n    .sfhc-panel h3,\n    .sfhc-size-guide h3 {\n      margin: 0 0 16px;\n      font-size: 24px;\n      font-weight: 950;\n    }\n\n    .sfhc-size-guide p {\n      margin: 0 0 18px;\n      color: var(--grey);\n      font-size: 15px;\n      line-height: 1.55;\n      font-weight: 700;\n    }\n\n    .sfhc-list {\n      display: grid;\n      gap: 13px;\n      margin: 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    .sfhc-list li {\n      display: flex;\n      gap: 10px;\n      align-items: flex-start;\n      color: var(--grey);\n      font-size: 15px;\n      line-height: 1.55;\n      font-weight: 650;\n    }\n\n    .sfhc-list strong {\n      color: var(--charcoal);\n    }\n\n    .sfhc-check {\n      flex: 0 0 auto;\n      width: 24px;\n      height: 24px;\n      border-radius: 999px;\n      background: var(--accent);\n      color: #fff;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      font-size: 13px;\n      font-weight: 950;\n      margin-top: 1px;\n      transition: background 0.35s ease;\n    }\n\n    .sfhc-included-grid {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 12px;\n      margin-top: 16px;\n    }\n\n    .sfhc-included-item {\n      padding: 20px;\n      border-radius: 22px;\n      background: rgba(255,255,255,0.62);\n      border: 1px solid rgba(255,255,255,0.85);\n      text-align: center;\n      font-weight: 900;\n      color: var(--charcoal);\n      box-shadow: 0 12px 28px rgba(112,67,54,0.08);\n      cursor: pointer;\n      appearance: none;\n      transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;\n    }\n\n    .sfhc-included-item:hover,\n    .sfhc-included-item.is-active {\n      transform: translateY(-4px);\n      background: rgba(255,255,255,0.78);\n      box-shadow: 0 18px 38px rgba(var(--accent-rgb),0.18);\n    }\n\n    .sfhc-included-item span {\n      display: block;\n      font-size: 30px;\n      margin-bottom: 8px;\n    }\n\n    .sfhc-story {\n      margin-top: 34px;\n      padding: 36px;\n      border-radius: 34px;\n      background: rgba(255,255,255,0.7);\n      border: 1px solid rgba(255,255,255,0.88);\n      box-shadow: 0 26px 68px rgba(112,67,54,0.14);\n      text-align: center;\n    }\n\n    .sfhc-story h2 {\n      margin: 0 0 12px;\n      font-size: clamp(27px, 4vw, 42px);\n      font-weight: 950;\n    }\n\n    .sfhc-story p {\n      max-width: 820px;\n      margin: 0 auto 22px;\n      color: var(--grey);\n      font-size: 17px;\n      line-height: 1.75;\n    }\n\n    @keyframes sfhcBreathe {\n      0%, 100% { transform: scale(1); }\n      50% { transform: scale(1.025); }\n    }\n\n    @keyframes sfhcSteam {\n      0% { opacity: 0; transform: translateY(20px) scaleX(1); }\n      35% { opacity: 0.62; }\n      100% { opacity: 0; transform: translateY(-115px) scaleX(2.2); }\n    }\n\n    @keyframes sfhcParticle {\n      0% { opacity: 0; transform: translateY(20px) scale(0.8); }\n      18% { opacity: 1; }\n      100% { opacity: 0; transform: translateY(-105px) scale(1.35); }\n    }\n\n    @media (max-width: 990px) {\n      .sfhc-hero {\n        grid-template-columns: 1fr;\n      }\n\n      .sfhc-product-card {\n        justify-self: center;\n        max-width: 620px;\n      }\n\n      .sfhc-benefits {\n        grid-template-columns: repeat(2, 1fr);\n      }\n    }\n\n    @media (max-width: 700px) {\n      .sfhc-section {\n        padding: 44px 14px;\n        border-radius: 24px;\n      }\n\n      .sfhc-title {\n        font-size: clamp(36px, 11vw, 48px);\n        letter-spacing: -1.3px;\n      }\n\n      .sfhc-text {\n        font-size: 15.5px;\n      }\n\n      .sfhc-actions {\n        align-items: stretch;\n      }\n\n      .sfhc-btn {\n        width: 100%;\n        padding: 15px 18px;\n      }\n\n      .sfhc-product-card {\n        padding: 18px;\n        border-radius: 28px;\n      }\n\n      .sfhc-visual {\n        min-height: 320px;\n        border-radius: 24px;\n      }\n\n      .sfhc-warmer-set {\n        width: 285px;\n        height: 225px;\n      }\n\n      .sfhc-belt {\n        width: 205px;\n        height: 82px;\n        top: 82px;\n      }\n\n      .sfhc-belt::before,\n      .sfhc-belt::after {\n        width: 125px;\n        height: 64px;\n      }\n\n      .sfhc-bottle {\n        width: 96px;\n        height: 158px;\n        right: 12px;\n        top: 32px;\n      }\n\n      .sfhc-bottle::before {\n        width: 70px;\n        height: 38px;\n      }\n\n      .sfhc-cap {\n        width: 38px;\n        height: 20px;\n      }\n\n      .sfhc-plaid {\n        width: 78px;\n        height: 112px;\n        right: 80px;\n        top: 70px;\n      }\n\n      .sfhc-benefits,\n      .sfhc-split,\n      .sfhc-included-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .sfhc-benefit {\n        min-height: auto;\n        padding: 20px;\n      }\n\n      .sfhc-panel,\n      .sfhc-story,\n      .sfhc-size-guide {\n        padding: 24px 18px;\n      }\n    }\n  \u003c\/style\u003e\n\n  \u003cdiv class=\"sfhc-wrap\"\u003e\n    \u003cdiv class=\"sfhc-hero\"\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"sfhc-badge\"\u003e🇿🇦 Hands-free warmth for real winter comfort\u003c\/div\u003e\n\n        \u003ch1 class=\"sfhc-title\"\u003e\n          SoftHaven™\n          \u003cspan\u003eThe Warm Hug\u003c\/span\u003e\n        \u003c\/h1\u003e\n\n        \u003cdiv class=\"sfhc-subtitle\"\u003eBecause Some Days, You Just Need to Feel Warm From the Inside Out. 🤗\u003c\/div\u003e\n\n        \u003cp class=\"sfhc-text\"\u003e\n          Period cramps. Back pain. Cold winter mornings. That deep, aching chill that no blanket seems to fix.\n          SoftHaven™ The Warm Hug was designed for exactly those moments — hands-free, targeted warmth that wraps\n          around your core and holds you like a hug.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"sfhc-actions\"\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll\u003e\n            Get My Warm Hug\n          \u003c\/button\u003e\n\n          \u003cdiv class=\"sfhc-note\"\u003e\n            Hot water bottle + adjustable plush waist belt · One size fits most · Easy to fill · Reusable\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-trust-row\"\u003e\n          \u003cspan\u003e🔥 Deep targeted heat\u003c\/span\u003e\n          \u003cspan\u003e🤸 Hands-free comfort\u003c\/span\u003e\n          \u003cspan\u003e🦥 Plush fleece feel\u003c\/span\u003e\n          \u003cspan\u003e⭐ No electricity needed\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-product-card\"\u003e\n        \u003cdiv class=\"sfhc-visual\"\u003e\n          \u003cspan class=\"sfhc-warmth one\"\u003e\u003c\/span\u003e\n          \u003cspan class=\"sfhc-warmth two\"\u003e\u003c\/span\u003e\n          \u003cspan class=\"sfhc-warmth three\"\u003e\u003c\/span\u003e\n\n          \u003cdiv class=\"sfhc-warmer-set\"\u003e\n            \u003cdiv class=\"sfhc-plaid\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"sfhc-belt\"\u003e\n              \u003cdiv class=\"sfhc-label\"\u003eSoftHaven\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"sfhc-bottle\"\u003e\n              \u003cdiv class=\"sfhc-cap\"\u003e\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-colour-title\"\u003eTap a style to preview the comfort vibe\u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-colours\"\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-coral\" data-colour=\"coral\" aria-label=\"Coral\"\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-grey-dot\" data-colour=\"grey\" aria-label=\"Grey\"\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-charcoal\" data-colour=\"charcoal\" aria-label=\"Charcoal\"\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-plaid-dot\" data-colour=\"plaid\" aria-label=\"Plaid\"\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-selected\" data-selected-text\u003e\n          Selected vibe: Soft Coral Warmth\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sfhc-heading\"\u003e\n      \u003ch2\u003eTap a Benefit to Feel the Effect\u003c\/h2\u003e\n      \u003cp\u003eEach benefit is interactive, helping customers feel the warmth, relief and hands-free comfort story.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sfhc-benefits\"\u003e\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"steam\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🔥\u003c\/div\u003e\n        \u003ch3\u003eInstant Targeted Heat\u003c\/h3\u003e\n        \u003cp\u003eThe hot water bottle delivers deep, penetrating warmth right where you need it most.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"move\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🤸\u003c\/div\u003e\n        \u003ch3\u003eHands-Free Comfort\u003c\/h3\u003e\n        \u003cp\u003eThe adjustable waist belt keeps everything in place so you can move freely around the house.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"soft\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🦥\u003c\/div\u003e\n        \u003ch3\u003eSoft Against Skin\u003c\/h3\u003e\n        \u003cp\u003eThe plush fleece cover feels gentle and cosy, never rough or uncomfortable.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"relief\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🙌\u003c\/div\u003e\n        \u003ch3\u003eRelief That Lasts\u003c\/h3\u003e\n        \u003cp\u003eEnjoy consistent warmth for hours with no electricity, charging or plug needed.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"life\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e💪\u003c\/div\u003e\n        \u003ch3\u003eBuilt For Real Life\u003c\/h3\u003e\n        \u003cp\u003eWear it while cooking, working from home, watching TV or resting in bed.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"winter\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🇿🇦\u003c\/div\u003e\n        \u003ch3\u003eSA Winter Essential\u003c\/h3\u003e\n        \u003cp\u003ePerfect for those bitterly cold Highveld mornings and Cape winter nights.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sfhc-split\"\u003e\n      \u003cdiv class=\"sfhc-panel\"\u003e\n        \u003ch3\u003eWhy You’ll Love It\u003c\/h3\u003e\n        \u003cul class=\"sfhc-list\"\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eFeels like a warm hug:\u003c\/strong\u003e targeted warmth wraps your core in comfort when you need it most.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eHands-free design:\u003c\/strong\u003e no need to hold the bottle while sitting, walking or working.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eSoft plush cover:\u003c\/strong\u003e gentle fleece makes the warmth feel cosy, premium and comforting.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eReusable comfort:\u003c\/strong\u003e fill, wear, relax and reuse whenever the cold or discomfort hits.\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-panel\"\u003e\n        \u003ch3\u003ePerfect For\u003c\/h3\u003e\n        \u003cul class=\"sfhc-list\"\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003ePeriod cramps\u003c\/strong\u003e when you want soothing warmth around your tummy.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eBack pain\u003c\/strong\u003e when you need deep warmth across your lower back.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eWorking from home\u003c\/strong\u003e while staying warm without being stuck under blankets.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eCold nights in bed\u003c\/strong\u003e when your body needs deeper, targeted warmth.\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sfhc-size-guide\"\u003e\n      \u003ch3\u003eWhat’s Included in the Pack 📦\u003c\/h3\u003e\n      \u003cp\u003eTap an item below to preview the comfort story. Each set includes the warmth source and the soft hands-free belt cover.\u003c\/p\u003e\n\n      \u003cdiv class=\"sfhc-included-grid\"\u003e\n        \u003cbutton type=\"button\" class=\"sfhc-included-item\" data-colour=\"coral\"\u003e\n          \u003cspan\u003e🧴\u003c\/span\u003e\n          1 x Hot Water Bottle\n        \u003c\/button\u003e\n\n        \u003cbutton type=\"button\" class=\"sfhc-included-item\" data-colour=\"grey\"\u003e\n          \u003cspan\u003e🧵\u003c\/span\u003e\n          1 x Adjustable Waist Belt Cover\n        \u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sfhc-story\"\u003e\n      \u003ch2\u003eYour Story ☀️\u003c\/h2\u003e\n      \u003cp\u003e\n        It is a freezing Tuesday. The cramps hit at 8am. You fill The Warm Hug, strap it on and within minutes\n        the tension melts away. You make breakfast, answer emails and get through your day —\n        warm, comfortable and in control. That is the SoftHaven difference.\n      \u003c\/p\u003e\n\n      \u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll\u003e\n        Warmth That Holds You Close 🔥\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    (function () {\n      var script = document.currentScript;\n      var section = script ? script.closest(\".sfhc-section\") : document.getElementById(\"sfhc-warm-hug\");\n      if (!section) return;\n\n      var selectedText = section.querySelector(\"[data-selected-text]\");\n\n      var colourData = {\n        coral: {\n          name: \"Soft Coral Warmth\",\n          accent: \"#e87f72\",\n          accentDark: \"#c96358\",\n          accentRgb: \"232, 127, 114\",\n          bgOne: \"#fff1ec\",\n          bgTwo: \"#f2b6a9\",\n          bottleOne: \"#ff9a8e\",\n          bottleTwo: \"#e86f63\",\n          beltOne: \"#eeeeee\",\n          beltTwo: \"#a9a9a9\",\n          strapOne: \"#a6a6a6\",\n          strapTwo: \"#5f5f5f\"\n        },\n        grey: {\n          name: \"Soft Grey Comfort\",\n          accent: \"#8f8f8f\",\n          accentDark: \"#5c5c5c\",\n          accentRgb: \"143, 143, 143\",\n          bgOne: \"#fafafa\",\n          bgTwo: \"#d6d6d6\",\n          bottleOne: \"#ff9a8e\",\n          bottleTwo: \"#e86f63\",\n          beltOne: \"#f1f1f1\",\n          beltTwo: \"#9b9b9b\",\n          strapOne: \"#b5b5b5\",\n          strapTwo: \"#656565\"\n        },\n        charcoal: {\n          name: \"Charcoal Winter\",\n          accent: \"#3b3b3b\",\n          accentDark: \"#1f1f1f\",\n          accentRgb: \"59, 59, 59\",\n          bgOne: \"#f7f2ef\",\n          bgTwo: \"#d0c8c4\",\n          bottleOne: \"#ff9a8e\",\n          bottleTwo: \"#e86f63\",\n          beltOne: \"#6f6f6f\",\n          beltTwo: \"#2c2c2c\",\n          strapOne: \"#777777\",\n          strapTwo: \"#252525\"\n        },\n        plaid: {\n          name: \"Cozy Plaid Mix\",\n          accent: \"#d4806a\",\n          accentDark: \"#bd6b57\",\n          accentRgb: \"212, 128, 106\",\n          bgOne: \"#faf0eb\",\n          bgTwo: \"#f2c4b0\",\n          bottleOne: \"#ff9a8e\",\n          bottleTwo: \"#e86f63\",\n          beltOne: \"#eeeeee\",\n          beltTwo: \"#9b9b9b\",\n          strapOne: \"#a6a6a6\",\n          strapTwo: \"#5f5f5f\"\n        }\n      };\n\n      function setColour(colour) {\n        var data = colourData[colour];\n        if (!data) return;\n\n        section.style.setProperty(\"--accent\", data.accent);\n        section.style.setProperty(\"--accent-dark\", data.accentDark);\n        section.style.setProperty(\"--accent-rgb\", data.accentRgb);\n        section.style.setProperty(\"--bg-one\", data.bgOne);\n        section.style.setProperty(\"--bg-two\", data.bgTwo);\n        section.style.setProperty(\"--bottle-one\", data.bottleOne);\n        section.style.setProperty(\"--bottle-two\", data.bottleTwo);\n        section.style.setProperty(\"--belt-one\", data.beltOne);\n        section.style.setProperty(\"--belt-two\", data.beltTwo);\n        section.style.setProperty(\"--strap-one\", data.strapOne);\n        section.style.setProperty(\"--strap-two\", data.strapTwo);\n\n        section.querySelectorAll(\"[data-colour]\").forEach(function (btn) {\n          btn.classList.toggle(\"is-active\", btn.getAttribute(\"data-colour\") === colour);\n        });\n\n        if (selectedText) {\n          selectedText.textContent = \"Selected vibe: \" + data.name;\n        }\n      }\n\n      function createEffect(card, type) {\n        var layer = card.querySelector(\".sfhc-effect-layer\");\n        if (!layer) return;\n\n        layer.innerHTML = \"\";\n        card.classList.add(\"is-tapped\");\n\n        setTimeout(function () {\n          card.classList.remove(\"is-tapped\");\n        }, 450);\n\n        var symbols = {\n          steam: [\"\", \"\", \"\", \"\", \"\"],\n          move: [\"↗\", \"↖\", \"🤸\", \"✨\", \"↗\"],\n          soft: [\"🦥\", \"♡\", \"✨\", \"♡\", \"🦥\"],\n          relief: [\"🙌\", \"🔥\", \"♡\", \"✨\", \"🔥\"],\n          life: [\"💪\", \"✨\", \"🏠\", \"💪\", \"✨\"],\n          winter: [\"❄️\", \"🔥\", \"🇿🇦\", \"❄️\", \"🔥\"]\n        };\n\n        var selected = symbols[type] || [\"✨\", \"✨\", \"✨\"];\n\n        selected.forEach(function (symbol, index) {\n          var particle = document.createElement(\"span\");\n          particle.className = \"sfhc-particle\";\n\n          if (type === \"steam\") {\n            particle.classList.add(\"steam\");\n          } else {\n            particle.textContent = symbol;\n          }\n\n          particle.style.setProperty(\"--x\", 18 + index * 15 + \"%\");\n          particle.style.setProperty(\"--size\", 18 + index * 2 + \"px\");\n          particle.style.animationDelay = index * 0.08 + \"s\";\n\n          layer.appendChild(particle);\n        });\n\n        setTimeout(function () {\n          layer.innerHTML = \"\";\n        }, 1500);\n      }\n\n      section.addEventListener(\"click\", function (event) {\n        var colourButton = event.target.closest(\"[data-colour]\");\n        if (colourButton \u0026\u0026 section.contains(colourButton)) {\n          event.preventDefault();\n          setColour(colourButton.getAttribute(\"data-colour\"));\n          return;\n        }\n\n        var benefitCard = event.target.closest(\".sfhc-benefit\");\n        if (benefitCard \u0026\u0026 section.contains(benefitCard)) {\n          createEffect(benefitCard, benefitCard.getAttribute(\"data-effect\"));\n          return;\n        }\n\n        var scrollButton = event.target.closest(\"[data-sfhc-scroll]\");\n        if (scrollButton \u0026\u0026 section.contains(scrollButton)) {\n          var productForm =\n            document.querySelector(\".product-form\") ||\n            document.querySelector('form[action*=\"\/cart\/add\"]') ||\n            document.querySelector('[id*=\"ProductSubmitButton\"]');\n\n          if (productForm) {\n            productForm.scrollIntoView({\n              behavior: \"smooth\",\n              block: \"center\"\n            });\n          }\n        }\n      });\n\n      setColour(\"coral\");\n    })();\n  \u003c\/script\u003e\n\u003c\/section\u003e","brand":"SoftHaven","offers":[{"title":"Default Title","offer_id":46777764675721,"sku":"SSH-HWB-WRAP-OS","price":499.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0765\/3539\/8537\/files\/warm-hug-product.png?v=1779285000"}],"url":"https:\/\/www.softhaven.co.za\/collections\/wellness-self-care.oembed","provider":"SoftHaven","version":"1.0","type":"link"}