{"title":"Winter Essentials","description":"\u003cp\u003eEverything you need to survive — and thrive — this winter. The SoftHaven™ Winter Essentials collection is your one-stop destination for warmth, comfort and self-care. From cozy wearables and plush home decor to wellness tools and spa-worthy bath sets, every product is designed to make the cold season feel like the best season.\u003c\/p\u003e","products":[{"product_id":"softhaven-the-self-care-kit","title":"SoftHaven™ The Self-Care Kit","description":"\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: #d4806a;\n      --accent-dark: #bd6b57;\n      --accent-rgb: 212, 128, 106;\n      --bg-one: #faf0eb;\n      --bg-two: #f2c4b0;\n      --wood-one: #e7bd8a;\n      --wood-two: #b87a45;\n      --tool-one: #f4d9b4;\n      --tool-two: #c99563;\n      --tool-icon: \"🛁\";\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-spa-set {\n      position: relative;\n      width: 335px;\n      height: 255px;\n      filter: drop-shadow(0 28px 45px rgba(112,67,54,0.24));\n      animation: sfhcBreathe 4.5s ease-in-out infinite;\n    }\n\n    .sfhc-box {\n      position: absolute;\n      left: 42px;\n      bottom: 30px;\n      width: 245px;\n      height: 132px;\n      border-radius: 26px;\n      background:\n        linear-gradient(135deg, rgba(255,255,255,0.28), transparent),\n        repeating-linear-gradient(90deg, rgba(255,255,255,0.08) 0 7px, rgba(44,44,44,0.04) 7px 14px),\n        linear-gradient(145deg, var(--wood-one), var(--wood-two));\n      box-shadow:\n        inset 0 0 22px rgba(255,255,255,0.24),\n        0 22px 44px rgba(112,67,54,0.18);\n      transition: border-radius 0.35s ease, background 0.35s ease;\n      z-index: 2;\n    }\n\n    .sfhc-section.is-heart .sfhc-box {\n      width: 190px;\n      height: 170px;\n      left: 72px;\n      bottom: 18px;\n      transform: rotate(-45deg);\n      border-radius: 38px 38px 28px 38px;\n    }\n\n    .sfhc-section.is-heart .sfhc-box::before,\n    .sfhc-section.is-heart .sfhc-box::after {\n      content: \"\";\n      position: absolute;\n      width: 190px;\n      height: 170px;\n      border-radius: 999px;\n      background:\n        linear-gradient(135deg, rgba(255,255,255,0.22), transparent),\n        linear-gradient(145deg, var(--wood-one), var(--wood-two));\n      z-index: -1;\n    }\n\n    .sfhc-section.is-heart .sfhc-box::before {\n      top: -82px;\n      left: 0;\n    }\n\n    .sfhc-section.is-heart .sfhc-box::after {\n      top: 0;\n      left: 82px;\n    }\n\n    .sfhc-box-lid {\n      position: absolute;\n      left: 58px;\n      top: 62px;\n      width: 215px;\n      height: 42px;\n      border-radius: 22px;\n      background:\n        linear-gradient(145deg, rgba(255,255,255,0.28), transparent),\n        linear-gradient(145deg, var(--wood-one), var(--wood-two));\n      box-shadow: inset 0 0 15px rgba(255,255,255,0.18);\n      z-index: 1;\n      opacity: 0.92;\n    }\n\n    .sfhc-section.is-heart .sfhc-box-lid {\n      opacity: 0;\n    }\n\n    .sfhc-tool {\n      position: absolute;\n      border-radius: 999px;\n      background:\n        radial-gradient(circle at 35% 28%, rgba(255,255,255,0.44), transparent 22%),\n        linear-gradient(145deg, var(--tool-one), var(--tool-two));\n      box-shadow:\n        inset 0 0 16px rgba(255,255,255,0.25),\n        0 14px 28px rgba(112,67,54,0.14);\n      z-index: 5;\n      transition: background 0.35s ease, transform 0.35s ease;\n    }\n\n    .sfhc-tool.loofah {\n      left: 45px;\n      top: 78px;\n      width: 78px;\n      height: 78px;\n    }\n\n    .sfhc-tool.mitt {\n      left: 132px;\n      top: 44px;\n      width: 72px;\n      height: 100px;\n      border-radius: 36px 36px 28px 28px;\n      transform: rotate(-8deg);\n    }\n\n    .sfhc-tool.pumice {\n      right: 68px;\n      top: 76px;\n      width: 80px;\n      height: 56px;\n      border-radius: 45% 55% 50% 50%;\n      background:\n        radial-gradient(circle at 30% 30%, rgba(255,255,255,0.35), transparent 18%),\n        radial-gradient(circle at 70% 40%, rgba(44,44,44,0.09), transparent 14%),\n        linear-gradient(145deg, #eeeeee, #9f9f9f);\n    }\n\n    .sfhc-tool.puff {\n      right: 42px;\n      bottom: 54px;\n      width: 88px;\n      height: 88px;\n      background:\n        radial-gradient(circle at 28% 28%, rgba(255,255,255,0.65), transparent 20%),\n        radial-gradient(circle at 70% 35%, rgba(255,255,255,0.38), transparent 20%),\n        linear-gradient(145deg, #fff5fa, #f5a9bd);\n    }\n\n    .sfhc-roller {\n      position: absolute;\n      left: 132px;\n      bottom: 28px;\n      width: 120px;\n      height: 22px;\n      border-radius: 999px;\n      background: linear-gradient(145deg, #d9a66d, #8f5d2d);\n      box-shadow: 0 13px 24px rgba(112,67,54,0.16);\n      z-index: 7;\n    }\n\n    .sfhc-roller::before,\n    .sfhc-roller::after {\n      content: \"\";\n      position: absolute;\n      top: -8px;\n      width: 30px;\n      height: 38px;\n      border-radius: 999px;\n      background: linear-gradient(145deg, #edc08b, #9a6736);\n      box-shadow: inset 0 0 10px rgba(255,255,255,0.22);\n    }\n\n    .sfhc-roller::before {\n      left: 12px;\n    }\n\n    .sfhc-roller::after {\n      right: 12px;\n    }\n\n    .sfhc-nail-brush {\n      position: absolute;\n      left: 68px;\n      bottom: 62px;\n      width: 94px;\n      height: 34px;\n      border-radius: 18px;\n      background: linear-gradient(145deg, #d9a66d, #8f5d2d);\n      box-shadow: 0 13px 24px rgba(112,67,54,0.16);\n      z-index: 7;\n    }\n\n    .sfhc-nail-brush::after {\n      content: \"\";\n      position: absolute;\n      left: 11px;\n      right: 11px;\n      bottom: -11px;\n      height: 14px;\n      background:\n        repeating-linear-gradient(90deg, rgba(255,255,255,0.75) 0 3px, transparent 3px 7px);\n    }\n\n    .sfhc-feature-icon {\n      position: absolute;\n      right: 28px;\n      top: 30px;\n      width: 70px;\n      height: 70px;\n      border-radius: 24px;\n      background: rgba(255,255,255,0.74);\n      border: 1px solid rgba(255,255,255,0.9);\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-size: 34px;\n      z-index: 8;\n      box-shadow: 0 18px 34px rgba(112,67,54,0.12);\n      animation: sfhcFloat 4.5s ease-in-out infinite;\n    }\n\n    .sfhc-feature-icon::before {\n      content: var(--tool-icon);\n    }\n\n    .sfhc-sparkle {\n      position: absolute;\n      width: 18px;\n      height: 18px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.72);\n      filter: blur(1px);\n      animation: sfhcFloat 5s ease-in-out infinite;\n      z-index: 8;\n    }\n\n    .sfhc-sparkle.s1 { left: 20%; top: 20%; animation-delay: 0s; }\n    .sfhc-sparkle.s2 { left: 52%; top: 14%; animation-delay: 1s; }\n    .sfhc-sparkle.s3 { right: 22%; bottom: 25%; 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      min-width: 118px;\n      min-height: 42px;\n      border-radius: 999px;\n      border: 3px solid #fff;\n      background: rgba(255,255,255,0.68);\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: 8px 14px;\n      font-size: 13px;\n      font-weight: 900;\n      color: var(--charcoal);\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.04);\n      background: rgba(255,255,255,0.86);\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.bubble {\n      width: 22px;\n      height: 22px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.76);\n      border: 1px solid rgba(255,255,255,0.92);\n      filter: blur(1px);\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-option-grid {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 12px;\n      margin-top: 16px;\n    }\n\n    .sfhc-option-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-option-item:hover,\n    .sfhc-option-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-option-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 sfhcFloat {\n      0%, 100% { transform: translateY(0) scale(1); opacity: 0.8; }\n      50% { transform: translateY(-12px) scale(1.08); opacity: 1; }\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-spa-set {\n        width: 285px;\n        height: 235px;\n      }\n\n      .sfhc-box {\n        left: 32px;\n        width: 218px;\n        height: 122px;\n      }\n\n      .sfhc-box-lid {\n        left: 50px;\n        width: 185px;\n      }\n\n      .sfhc-section.is-heart .sfhc-box {\n        left: 55px;\n        width: 155px;\n        height: 145px;\n      }\n\n      .sfhc-section.is-heart .sfhc-box::before,\n      .sfhc-section.is-heart .sfhc-box::after {\n        width: 155px;\n        height: 145px;\n      }\n\n      .sfhc-section.is-heart .sfhc-box::before {\n        top: -66px;\n      }\n\n      .sfhc-section.is-heart .sfhc-box::after {\n        left: 66px;\n      }\n\n      .sfhc-tool.loofah {\n        left: 35px;\n        width: 66px;\n        height: 66px;\n      }\n\n      .sfhc-tool.mitt {\n        left: 108px;\n        width: 62px;\n        height: 88px;\n      }\n\n      .sfhc-tool.pumice {\n        right: 52px;\n        width: 68px;\n        height: 48px;\n      }\n\n      .sfhc-tool.puff {\n        right: 32px;\n        width: 74px;\n        height: 74px;\n      }\n\n      .sfhc-roller {\n        left: 108px;\n        width: 105px;\n      }\n\n      .sfhc-nail-brush {\n        left: 48px;\n        width: 82px;\n      }\n\n      .sfhc-feature-icon {\n        right: 18px;\n        top: 24px;\n        width: 58px;\n        height: 58px;\n        font-size: 28px;\n      }\n\n      .sfhc-benefits,\n      .sfhc-split,\n      .sfhc-option-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\u003csection class=\"sfhc-section\" id=\"sfhc-self-care-kit\"\u003e\n\u003cdiv class=\"sfhc-wrap\"\u003e\n\u003cdiv class=\"sfhc-hero\"\u003e\n\u003cdiv\u003e\n\u003cbr\u003e\n\u003ch1 class=\"sfhc-title\"\u003eSoftHaven™ \u003cspan\u003eThe Self Care Kit\u003c\/span\u003e\n\u003c\/h1\u003e\n\u003cdiv class=\"sfhc-subtitle\"\u003eBecause You Deserve a Proper Self-Care Moment. 🛁✨\u003c\/div\u003e\n\u003cp class=\"sfhc-text\"\u003eHot water. Candles. Silence. And a set of tools that actually work. SoftHaven™ The Self Care Kit is a curated 7-piece natural bath set designed to turn your ordinary shower or bath into a full spa experience — right in your own home. No booking required.\u003c\/p\u003e\n\u003cdiv class=\"sfhc-actions\"\u003e\n\u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll=\"\"\u003e Choose My Self Care Kit \u003c\/button\u003e\n\u003cdiv class=\"sfhc-note\"\u003e7 items included · Natural materials · Wooden gift box · Heart or Rectangle box\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-trust-row\"\u003e\n\u003cspan\u003e🌿 Natural exfoliation\u003c\/span\u003e \u003cspan\u003e🧼 Full body routine\u003c\/span\u003e \u003cspan\u003e🎁 Gift-ready box\u003c\/span\u003e \u003cspan\u003e✨ Spa-at-home feel\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-product-card\"\u003e\n\u003cdiv class=\"sfhc-visual\"\u003e\n\u003cspan class=\"sfhc-sparkle s1\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-sparkle s2\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-sparkle s3\"\u003e\u003c\/span\u003e\n\u003cdiv class=\"sfhc-spa-set\"\u003e\n\u003cdiv class=\"sfhc-box-lid\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-box\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-tool loofah\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-tool mitt\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-tool pumice\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-tool puff\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-roller\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-nail-brush\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-feature-icon\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-colour-title\"\u003eTap a box style to preview the vibe\u003c\/div\u003e\n\u003cdiv class=\"sfhc-colours\"\u003e\n\u003cbutton type=\"button\" class=\"sfhc-colour\" data-style=\"rectangle\"\u003e▭ Rectangle Box\u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-colour\" data-style=\"heart\"\u003e♡ Heart Box\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-selected\" data-selected-text=\"\"\u003eSelected vibe: Rectangle Gift Box · Full Self-Care Ritual\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-heading\"\u003e\n\u003ch2\u003eTap a Tool to Feel the Effect\u003c\/h2\u003e\n\u003cp\u003eEach card is interactive, helping customers understand the outcome each tool gives them.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefits\"\u003e\n\u003cdiv class=\"sfhc-benefit\" data-tool=\"loofah\" data-effect=\"scrub\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🌿\u003c\/div\u003e\n\u003ch3\u003eNatural Loofah Sponge\u003c\/h3\u003e\n\u003cp\u003eDeep exfoliation that helps leave your skin feeling silky smooth and refreshed.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-tool=\"mitt\" data-effect=\"glow\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🧶\u003c\/div\u003e\n\u003ch3\u003eSisal Bath Mitt\u003c\/h3\u003e\n\u003cp\u003eStimulates circulation and helps remove dead skin cells for a polished, clean feeling.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-tool=\"pumice\" data-effect=\"stone\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🪨\u003c\/div\u003e\n\u003ch3\u003ePumice Stone\u003c\/h3\u003e\n\u003cp\u003eSmooths rough heels and calluses so your feet feel softer and more cared for.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-tool=\"brush\" data-effect=\"clean\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🧹\u003c\/div\u003e\n\u003ch3\u003eNail Brush\u003c\/h3\u003e\n\u003cp\u003eKeeps nails looking clean, groomed and fresh after every bath or shower.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-tool=\"puff\" data-effect=\"bubble\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🧤\u003c\/div\u003e\n\u003ch3\u003eBath Puff\u003c\/h3\u003e\n\u003cp\u003eCreates a rich, foamy lather so even a normal wash feels more luxurious.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-tool=\"roller\" data-effect=\"relax\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🪄\u003c\/div\u003e\n\u003ch3\u003eWooden Massage Roller\u003c\/h3\u003e\n\u003cp\u003eHelps relieve tension and gives your self-care routine a relaxing massage finish.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\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\u003eComplete routine:\u003c\/strong\u003e everything you need to exfoliate, cleanse, smooth and relax at home.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eSkin feels renewed:\u003c\/strong\u003e removes dullness so your skin feels softer, cleaner and more refreshed.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eGift-ready presentation:\u003c\/strong\u003e the wooden box looks beautiful enough to give as-is.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eReusable self-care:\u003c\/strong\u003e a practical set that becomes part of your weekly reset ritual.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\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\u003eGifting\u003c\/strong\u003e for birthdays, Mother’s Day, Valentine’s Day or just because.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eSelf-care routines\u003c\/strong\u003e when you want your daily bath or shower to feel special.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eHome spa days\u003c\/strong\u003e with no appointment, no travel and no expensive spa bill.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eSunday resets\u003c\/strong\u003e when your body and mind need a fresh start.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-size-guide\"\u003e\n\u003ch3\u003eWhat’s Inside the Box 🧴\u003c\/h3\u003e\n\u003cp\u003eTap an item below to change the background and preview that part of the ritual.\u003c\/p\u003e\n\u003cdiv class=\"sfhc-option-grid\"\u003e\n\u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"loofah\"\u003e \u003cspan\u003e🌿\u003c\/span\u003e Natural Loofah Sponge \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"mitt\"\u003e \u003cspan\u003e🧶\u003c\/span\u003e Sisal Bath Mitt \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"pumice\"\u003e \u003cspan\u003e🪨\u003c\/span\u003e Pumice Stone \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"brush\"\u003e \u003cspan\u003e🧹\u003c\/span\u003e Nail Brush \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"puff\"\u003e \u003cspan\u003e🧤\u003c\/span\u003e Bath Puff \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"roller\"\u003e \u003cspan\u003e🪄\u003c\/span\u003e Wooden Massage Roller \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-option-item\" data-tool=\"box\"\u003e \u003cspan\u003e📦\u003c\/span\u003e Wooden Gift Box \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-story\"\u003e\n\u003ch2\u003eYour Story 🌙\u003c\/h2\u003e\n\u003cp\u003eIt is Sunday evening. The week was long. You run a warm bath, light a candle and reach for The Self Care Kit. One by one, each tool does its job — exfoliating, smoothing and relaxing. By the time you are done, your skin is glowing and your mind is clear. That is the SoftHaven difference.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll=\"\"\u003e Treat Yourself. You’ve Earned It. 🛁✨ \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function () {\n      var script = document.currentScript;\n      var section = script ? script.closest(\".sfhc-section\") : document.getElementById(\"sfhc-self-care-kit\");\n      if (!section) return;\n\n      var selectedText = section.querySelector(\"[data-selected-text]\");\n      var selectedStyle = \"Rectangle Gift Box\";\n\n      var toolData = {\n        loofah: {\n          name: \"Natural Loofah Sponge\",\n          icon: \"🌿\",\n          accent: \"#9b7a45\",\n          accentDark: \"#75572e\",\n          accentRgb: \"155, 122, 69\",\n          bgOne: \"#fff8ec\",\n          bgTwo: \"#e4c798\",\n          toolOne: \"#f4d9a8\",\n          toolTwo: \"#b98242\",\n          woodOne: \"#e7bd8a\",\n          woodTwo: \"#b87a45\"\n        },\n        mitt: {\n          name: \"Sisal Bath Mitt\",\n          icon: \"🧶\",\n          accent: \"#b99165\",\n          accentDark: \"#8d6842\",\n          accentRgb: \"185, 145, 101\",\n          bgOne: \"#fff6ea\",\n          bgTwo: \"#e2bf91\",\n          toolOne: \"#e9c89b\",\n          toolTwo: \"#a97543\",\n          woodOne: \"#e7bd8a\",\n          woodTwo: \"#b87a45\"\n        },\n        pumice: {\n          name: \"Pumice Stone\",\n          icon: \"🪨\",\n          accent: \"#8f8f8f\",\n          accentDark: \"#5c5c5c\",\n          accentRgb: \"143, 143, 143\",\n          bgOne: \"#fafafa\",\n          bgTwo: \"#d6d6d6\",\n          toolOne: \"#eeeeee\",\n          toolTwo: \"#9f9f9f\",\n          woodOne: \"#d8b07d\",\n          woodTwo: \"#9a683b\"\n        },\n        brush: {\n          name: \"Nail Brush\",\n          icon: \"🧹\",\n          accent: \"#c88a55\",\n          accentDark: \"#9f6636\",\n          accentRgb: \"200, 138, 85\",\n          bgOne: \"#fff6ee\",\n          bgTwo: \"#eec59d\",\n          toolOne: \"#e6b072\",\n          toolTwo: \"#9c6735\",\n          woodOne: \"#e7bd8a\",\n          woodTwo: \"#b87a45\"\n        },\n        puff: {\n          name: \"Bath Puff\",\n          icon: \"🧤\",\n          accent: \"#d97896\",\n          accentDark: \"#be5f7d\",\n          accentRgb: \"217, 120, 150\",\n          bgOne: \"#fff3f6\",\n          bgTwo: \"#f5b5c7\",\n          toolOne: \"#fff5fa\",\n          toolTwo: \"#f5a9bd\",\n          woodOne: \"#e7bd8a\",\n          woodTwo: \"#b87a45\"\n        },\n        roller: {\n          name: \"Wooden Massage Roller\",\n          icon: \"🪄\",\n          accent: \"#b87942\",\n          accentDark: \"#85572f\",\n          accentRgb: \"184, 121, 66\",\n          bgOne: \"#fff4e8\",\n          bgTwo: \"#ddb184\",\n          toolOne: \"#edc08b\",\n          toolTwo: \"#9a6736\",\n          woodOne: \"#e7bd8a\",\n          woodTwo: \"#b87a45\"\n        },\n        box: {\n          name: \"Beautiful Wooden Gift Box\",\n          icon: \"📦\",\n          accent: \"#d4806a\",\n          accentDark: \"#bd6b57\",\n          accentRgb: \"212, 128, 106\",\n          bgOne: \"#faf0eb\",\n          bgTwo: \"#f2c4b0\",\n          toolOne: \"#f4d9b4\",\n          toolTwo: \"#c99563\",\n          woodOne: \"#e7bd8a\",\n          woodTwo: \"#b87a45\"\n        }\n      };\n\n      function updateSelectedText(toolName) {\n        if (selectedText) {\n          selectedText.textContent = \"Selected vibe: \" + selectedStyle + \" · \" + toolName;\n        }\n      }\n\n      function setTool(tool) {\n        var data = toolData[tool];\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(\"--tool-one\", data.toolOne);\n        section.style.setProperty(\"--tool-two\", data.toolTwo);\n        section.style.setProperty(\"--wood-one\", data.woodOne);\n        section.style.setProperty(\"--wood-two\", data.woodTwo);\n        section.style.setProperty(\"--tool-icon\", '\"' + data.icon + '\"');\n\n        section.querySelectorAll(\"[data-tool]\").forEach(function (btn) {\n          btn.classList.toggle(\"is-active\", btn.getAttribute(\"data-tool\") === tool);\n        });\n\n        updateSelectedText(data.name);\n      }\n\n      function setStyle(style) {\n        if (style === \"heart\") {\n          selectedStyle = \"Heart Gift Box\";\n          section.classList.add(\"is-heart\");\n        } else {\n          selectedStyle = \"Rectangle Gift Box\";\n          section.classList.remove(\"is-heart\");\n        }\n\n        section.querySelectorAll(\"[data-style]\").forEach(function (btn) {\n          btn.classList.toggle(\"is-active\", btn.getAttribute(\"data-style\") === style);\n        });\n\n        var activeTool = section.querySelector(\"[data-tool].is-active\");\n        var toolKey = activeTool ? activeTool.getAttribute(\"data-tool\") : \"box\";\n        updateSelectedText(toolData[toolKey].name);\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          scrub: [\"✨\", \"🌿\", \"✨\", \"♡\", \"🌿\"],\n          glow: [\"✨\", \"🧶\", \"✨\", \"🌙\", \"♡\"],\n          stone: [\"🪨\", \"✨\", \"🦶\", \"✨\", \"🪨\"],\n          clean: [\"✨\", \"🧹\", \"✨\", \"♡\", \"🧹\"],\n          bubble: [\"\", \"\", \"\", \"\", \"\"],\n          relax: [\"🪄\", \"✨\", \"🌙\", \"♡\", \"🪄\"]\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 === \"bubble\") {\n            particle.classList.add(\"bubble\");\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 styleButton = event.target.closest(\"[data-style]\");\n        if (styleButton \u0026\u0026 section.contains(styleButton)) {\n          event.preventDefault();\n          setStyle(styleButton.getAttribute(\"data-style\"));\n          return;\n        }\n\n        var toolButton = event.target.closest(\"[data-tool]\");\n        if (toolButton \u0026\u0026 section.contains(toolButton)) {\n          event.preventDefault();\n          setTool(toolButton.getAttribute(\"data-tool\"));\n\n          var benefitCard = event.target.closest(\".sfhc-benefit\");\n          if (benefitCard) {\n            createEffect(benefitCard, benefitCard.getAttribute(\"data-effect\"));\n          }\n\n          return;\n        }\n\n        var benefitCardOnly = event.target.closest(\".sfhc-benefit\");\n        if (benefitCardOnly \u0026\u0026 section.contains(benefitCardOnly)) {\n          createEffect(benefitCardOnly, benefitCardOnly.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      setStyle(\"rectangle\");\n      setTool(\"box\");\n    })();\n  \u003c\/script\u003e\u003c\/section\u003e","brand":"SoftHaven","offers":[{"title":"Square - Sisal Set","offer_id":46777763332233,"sku":"SSH-SCK-SQR-SIS","price":419.0,"currency_code":"ZAR","in_stock":true},{"title":"Heart - Mirror Set","offer_id":46777763365001,"sku":"SSH-SCK-HRT-MIR","price":379.0,"currency_code":"ZAR","in_stock":true},{"title":"Heart - Nail Brush Set","offer_id":46777763397769,"sku":"SSH-SCK-HRT-NBR","price":379.0,"currency_code":"ZAR","in_stock":true},{"title":"Heart - Nylon Glove Set","offer_id":46777763430537,"sku":"SSH-SCK-HRT-NYL","price":299.0,"currency_code":"ZAR","in_stock":true},{"title":"Heart - Sisal Balls Set","offer_id":46777763463305,"sku":"SSH-SCK-HRT-SIS","price":399.0,"currency_code":"ZAR","in_stock":true},{"title":"Bag \u0026 Barrel Set","offer_id":46777763496073,"sku":"SSH-SCK-BAG-BAR","price":449.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0765\/3539\/8537\/files\/double-layer-blanket-high-conversion.png?v=1778979259"},{"product_id":"softhaven™-the-cloud-blanket","title":"SoftHaven™ The Cloud Blanket","description":"\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: #7f7f7f;\n      --accent-dark: #555555;\n      --accent-rgb: 127, 127, 127;\n      --bg-one: #fafafa;\n      --bg-two: #d8d8d8;\n      --blanket-one: #d8d8d8;\n      --blanket-two: #7f7f7f;\n      --blanket-deep: #5c5c5c;\n      --blanket-size: 0.96;\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-blanket-wrap {\n      position: relative;\n      width: 330px;\n      height: 250px;\n      transform: scale(var(--blanket-size));\n      transition: transform 0.35s ease;\n      filter: drop-shadow(0 28px 45px rgba(112,67,54,0.22));\n      animation: sfhcBreathe 4.5s ease-in-out infinite;\n    }\n\n    .sfhc-blanket {\n      position: absolute;\n      left: 50%;\n      top: 50%;\n      width: 290px;\n      height: 205px;\n      transform: translate(-50%, -50%) rotate(-5deg);\n      border-radius: 36px;\n      background:\n        radial-gradient(circle at 25% 28%, rgba(255,255,255,0.42), transparent 13%),\n        radial-gradient(circle at 62% 38%, rgba(255,255,255,0.28), transparent 12%),\n        radial-gradient(circle at 45% 72%, rgba(0,0,0,0.08), transparent 14%),\n        linear-gradient(145deg, var(--blanket-one), var(--blanket-two));\n      box-shadow:\n        inset 0 0 36px rgba(255,255,255,0.28),\n        inset 0 -24px 35px rgba(44,44,44,0.13),\n        0 28px 58px rgba(44,44,44,0.14);\n      overflow: hidden;\n      transition: background 0.45s ease;\n    }\n\n    .sfhc-blanket::before {\n      content: \"\";\n      position: absolute;\n      inset: -10px;\n      background:\n        radial-gradient(circle, rgba(255,255,255,0.48) 0 10px, transparent 11px),\n        radial-gradient(circle, rgba(255,255,255,0.30) 0 8px, transparent 9px),\n        radial-gradient(circle, rgba(44,44,44,0.08) 0 8px, transparent 9px);\n      background-size: 48px 48px, 48px 48px, 48px 48px;\n      background-position: 0 0, 24px 24px, 13px 31px;\n      opacity: 0.78;\n      animation: sfhcBubbleSoft 5.5s ease-in-out infinite;\n    }\n\n    .sfhc-blanket::after {\n      content: \"\";\n      position: absolute;\n      right: -8px;\n      top: 36px;\n      width: 88px;\n      height: 138px;\n      border-radius: 30px;\n      background:\n        linear-gradient(120deg, rgba(255,255,255,0.45), rgba(255,255,255,0.04)),\n        linear-gradient(145deg, var(--blanket-one), var(--blanket-deep));\n      transform: rotate(8deg);\n      box-shadow: inset 0 0 22px rgba(255,255,255,0.28);\n      opacity: 0.92;\n    }\n\n    .sfhc-fold {\n      position: absolute;\n      left: 36px;\n      bottom: 16px;\n      width: 220px;\n      height: 72px;\n      border-radius: 28px;\n      background:\n        radial-gradient(circle at 30% 40%, rgba(255,255,255,0.35), transparent 24%),\n        linear-gradient(145deg, var(--blanket-one), var(--blanket-deep));\n      transform: rotate(2deg);\n      box-shadow: inset 0 0 24px rgba(255,255,255,0.22);\n      z-index: 3;\n      opacity: 0.98;\n    }\n\n    .sfhc-cloud-puff {\n      position: absolute;\n      width: 18px;\n      height: 18px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.78);\n      filter: blur(1px);\n      animation: sfhcFloatPuff 5s ease-in-out infinite;\n      z-index: 5;\n    }\n\n    .sfhc-cloud-puff.p1 { left: 18%; top: 22%; animation-delay: 0s; }\n    .sfhc-cloud-puff.p2 { left: 48%; top: 13%; animation-delay: 1s; }\n    .sfhc-cloud-puff.p3 { right: 19%; top: 25%; animation-delay: 2s; }\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-space-grey { background: #7f7f7f; }\n    .sfhc-off-white { background: #f5efe6; }\n    .sfhc-khaki { background: #b39c76; }\n    .sfhc-olive { background: #78815d; }\n    .sfhc-pink-red { background: #d97896; }\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.cloud {\n      width: 24px;\n      height: 24px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.78);\n      filter: blur(3px);\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-option-grid {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 12px;\n      margin-top: 16px;\n    }\n\n    .sfhc-option-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-option-item:hover,\n    .sfhc-option-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-option-item span {\n      display: block;\n      font-size: 30px;\n      margin-bottom: 8px;\n    }\n\n    .sfhc-option-item small {\n      display: block;\n      margin-top: 6px;\n      font-size: 12.5px;\n      line-height: 1.35;\n      color: var(--grey);\n      font-weight: 800;\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(var(--blanket-size)); }\n      50% { transform: scale(calc(var(--blanket-size) + 0.018)); }\n    }\n\n    @keyframes sfhcBubbleSoft {\n      0%, 100% { opacity: 0.65; transform: scale(1); }\n      50% { opacity: 0.9; transform: scale(1.03); }\n    }\n\n    @keyframes sfhcFloatPuff {\n      0%, 100% { transform: translateY(0) scale(1); opacity: 0.72; }\n      50% { transform: translateY(-12px) scale(1.18); opacity: 1; }\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-blanket-wrap {\n        width: 280px;\n        height: 220px;\n      }\n\n      .sfhc-blanket {\n        width: 250px;\n        height: 178px;\n      }\n\n      .sfhc-fold {\n        left: 30px;\n        bottom: 20px;\n        width: 190px;\n        height: 62px;\n      }\n\n      .sfhc-benefits,\n      .sfhc-split,\n      .sfhc-option-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\u003csection id=\"sfhc-cloud-blanket\" class=\"sfhc-section\"\u003e\n\u003cdiv class=\"sfhc-wrap\"\u003e\n\u003cdiv class=\"sfhc-hero\"\u003e\n\u003cdiv\u003e\n\u003cbr\u003e\n\u003ch1 class=\"sfhc-title\"\u003eSoftHaven™ \u003cspan\u003eThe Cloud Blanket\u003c\/span\u003e\n\u003c\/h1\u003e\n\u003cdiv class=\"sfhc-subtitle\"\u003eBecause Warmth Should Feel Like a Hug You Never Want to Leave. ☁️\u003c\/div\u003e\n\u003cp class=\"sfhc-text\"\u003eThere is cold. And then there is that deep SA winter cold that thin blankets cannot touch. The Cloud Blanket wraps you in thick, bubble-textured plush warmth — soft, heavy and cosy enough to make your couch or bed feel like a cloud.\u003c\/p\u003e\n\u003cdiv class=\"sfhc-actions\"\u003e\n\u003cbutton data-sfhc-scroll=\"\" class=\"sfhc-btn\" type=\"button\"\u003e Choose My Colour \u0026amp; Size \u003c\/button\u003e\n\u003cdiv class=\"sfhc-note\"\u003e5 colours · 4 sizes · Premium bubble plush · Double-layer warmth · Machine washable\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-trust-row\"\u003e\n\u003cspan\u003e☁️ Cloud-like softness\u003c\/span\u003e \u003cspan\u003e🔥 Deep lasting warmth\u003c\/span\u003e \u003cspan\u003e🧸 Weighted comfort\u003c\/span\u003e \u003cspan\u003e🧺 Machine washable\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-product-card\"\u003e\n\u003cdiv class=\"sfhc-visual\"\u003e\n\u003cspan class=\"sfhc-warmth one\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-warmth two\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-warmth three\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-cloud-puff p1\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-cloud-puff p2\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-cloud-puff p3\"\u003e\u003c\/span\u003e\n\u003cdiv class=\"sfhc-blanket-wrap\"\u003e\n\u003cdiv class=\"sfhc-blanket\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-fold\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-colour-title\"\u003eTap a colour to preview your blanket vibe\u003c\/div\u003e\n\u003cdiv class=\"sfhc-colours\"\u003e\n\u003cbutton aria-label=\"Space Grey\" data-colour=\"space-grey\" class=\"sfhc-colour sfhc-space-grey\" type=\"button\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Off White\" data-colour=\"off-white\" class=\"sfhc-colour sfhc-off-white\" type=\"button\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Khaki\" data-colour=\"khaki\" class=\"sfhc-colour sfhc-khaki\" type=\"button\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Olive Green\" data-colour=\"olive\" class=\"sfhc-colour sfhc-olive\" type=\"button\"\u003e\u003c\/button\u003e \u003cbutton aria-label=\"Pink Red\" data-colour=\"pink-red\" class=\"sfhc-colour sfhc-pink-red\" type=\"button\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-selected-text=\"\" class=\"sfhc-selected\"\u003eSelected vibe: Space Grey · 100×150cm\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\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 softness, warmth and cosy cloud comfort.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefits\"\u003e\n\u003cdiv data-effect=\"cloud\" class=\"sfhc-benefit\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e☁️\u003c\/div\u003e\n\u003ch3\u003eCloud-Like Softness\u003c\/h3\u003e\n\u003cp\u003ePremium bubble plush texture feels irresistibly soft and cosy against bare skin.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv data-effect=\"steam\" class=\"sfhc-benefit\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🔥\u003c\/div\u003e\n\u003ch3\u003eDeep, Lasting Warmth\u003c\/h3\u003e\n\u003cp\u003eThick double-layer construction traps heat so you stay warmer for longer.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv data-effect=\"comfort\" class=\"sfhc-benefit\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🧸\u003c\/div\u003e\n\u003ch3\u003eWeighted Comfort\u003c\/h3\u003e\n\u003cp\u003eThe satisfying weight helps melt away stress, tension and that restless cold feeling.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv data-effect=\"colour\" class=\"sfhc-benefit\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🎨\u003c\/div\u003e\n\u003ch3\u003e5 Beautiful Colours\u003c\/h3\u003e\n\u003cp\u003eSpace Grey, Off White, Khaki, Olive Green and Pink Red to match your room.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv data-effect=\"size\" class=\"sfhc-benefit\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e📏\u003c\/div\u003e\n\u003ch3\u003e4 Generous Sizes\u003c\/h3\u003e\n\u003cp\u003eFrom single comfort to king-size coverage, there is a perfect fit for your bed or couch.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv data-effect=\"clean\" class=\"sfhc-benefit\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🧹\u003c\/div\u003e\n\u003ch3\u003eEasy Care\u003c\/h3\u003e\n\u003cp\u003eMachine washable and made to stay fluffy, soft and beautiful wash after wash.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\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\u003eWarmth that surrounds you:\u003c\/strong\u003e perfect for freezing nights, cold couches and winter mornings.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eBubble plush texture:\u003c\/strong\u003e soft, cosy and premium enough to make every touch feel comforting.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eHeavy cosy feel:\u003c\/strong\u003e wraps around you with a calming, cocoon-like comfort.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eBeautiful home upgrade:\u003c\/strong\u003e looks good on your bed or couch while keeping you warm.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\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\u003eLoad shedding nights\u003c\/strong\u003e when the house gets dark, cold and uncomfortable.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eMovie nights\u003c\/strong\u003e when you want full-body softness and warmth.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eBedrooms\u003c\/strong\u003e as a cosy winter layer that feels 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\u003eGifting\u003c\/strong\u003e for anyone who loves warm, soft, useful comfort.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-size-guide\"\u003e\n\u003ch3\u003eAvailable Options 🎨📏\u003c\/h3\u003e\n\u003cp\u003eTap a colour or size below to preview the vibe. Choose your favourite colour and the size that fits your bed, couch or cosy corner.\u003c\/p\u003e\n\u003cdiv class=\"sfhc-option-grid\"\u003e\n\u003cbutton data-colour=\"space-grey\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🪨\u003c\/span\u003e Space Grey \u003c\/button\u003e \u003cbutton data-colour=\"off-white\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🤍\u003c\/span\u003e Off White \u003c\/button\u003e \u003cbutton data-colour=\"khaki\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🥥\u003c\/span\u003e Khaki \u003c\/button\u003e \u003cbutton data-colour=\"olive\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🫒\u003c\/span\u003e Olive Green \u003c\/button\u003e \u003cbutton data-colour=\"pink-red\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🌹\u003c\/span\u003e Pink Red \u003c\/button\u003e \u003cbutton data-size=\"single\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e📏\u003c\/span\u003e 100×150cm \u003csmall\u003eSolo comfort · Couch throw\u003c\/small\u003e \u003c\/button\u003e \u003cbutton data-size=\"double\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🛋️\u003c\/span\u003e 150×200cm \u003csmall\u003eFull couch comfort\u003c\/small\u003e \u003c\/button\u003e \u003cbutton data-size=\"queen\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e🛏️\u003c\/span\u003e 180×200cm \u003csmall\u003eBed-ready coverage\u003c\/small\u003e \u003c\/button\u003e \u003cbutton data-size=\"king\" class=\"sfhc-option-item\" type=\"button\"\u003e \u003cspan\u003e👑\u003c\/span\u003e 200×230cm \u003csmall\u003eMaximum cosy coverage\u003c\/small\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-story\"\u003e\n\u003ch2\u003eYour Story ☀️\u003c\/h2\u003e\n\u003cp\u003eIt is a freezing Friday night. Load shedding hits. The house goes dark and cold. You reach for The Cloud Blanket, wrap it around your shoulders and suddenly nothing else matters. Warm, soft, completely cocooned. That is the SoftHaven difference.\u003c\/p\u003e\n\u003cbutton data-sfhc-scroll=\"\" class=\"sfhc-btn\" type=\"button\"\u003e Wrap Yourself In Warmth ☁️ \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function () {\n      var script = document.currentScript;\n      var section = script ? script.closest(\".sfhc-section\") : document.getElementById(\"sfhc-cloud-blanket\");\n      if (!section) return;\n\n      var selectedText = section.querySelector(\"[data-selected-text]\");\n      var sizeText = \"100×150cm\";\n\n      var colourData = {\n        \"space-grey\": {\n          name: \"Space Grey\",\n          accent: \"#7f7f7f\",\n          accentDark: \"#555555\",\n          accentRgb: \"127, 127, 127\",\n          bgOne: \"#fafafa\",\n          bgTwo: \"#d8d8d8\",\n          blanketOne: \"#d8d8d8\",\n          blanketTwo: \"#7f7f7f\",\n          blanketDeep: \"#5c5c5c\"\n        },\n        \"off-white\": {\n          name: \"Off White\",\n          accent: \"#d8c7b4\",\n          accentDark: \"#b49b82\",\n          accentRgb: \"216, 199, 180\",\n          bgOne: \"#fffaf4\",\n          bgTwo: \"#eadac8\",\n          blanketOne: \"#fff8ef\",\n          blanketTwo: \"#e6d5c1\",\n          blanketDeep: \"#c7ad91\"\n        },\n        \"khaki\": {\n          name: \"Khaki\",\n          accent: \"#b39c76\",\n          accentDark: \"#8d7654\",\n          accentRgb: \"179, 156, 118\",\n          bgOne: \"#fff8ec\",\n          bgTwo: \"#d9c39b\",\n          blanketOne: \"#d4bd90\",\n          blanketTwo: \"#9d835d\",\n          blanketDeep: \"#75603f\"\n        },\n        \"olive\": {\n          name: \"Olive Green\",\n          accent: \"#78815d\",\n          accentDark: \"#596043\",\n          accentRgb: \"120, 129, 93\",\n          bgOne: \"#f7faef\",\n          bgTwo: \"#c8d0ad\",\n          blanketOne: \"#a5ad83\",\n          blanketTwo: \"#68734f\",\n          blanketDeep: \"#4e553a\"\n        },\n        \"pink-red\": {\n          name: \"Pink Red\",\n          accent: \"#d97896\",\n          accentDark: \"#be5f7d\",\n          accentRgb: \"217, 120, 150\",\n          bgOne: \"#fff3f6\",\n          bgTwo: \"#f5b5c7\",\n          blanketOne: \"#ffd3df\",\n          blanketTwo: \"#d97896\",\n          blanketDeep: \"#b85070\"\n        }\n      };\n\n      var sizeData = {\n        single: {\n          label: \"100×150cm\",\n          scale: \"0.92\"\n        },\n        double: {\n          label: \"150×200cm\",\n          scale: \"1\"\n        },\n        queen: {\n          label: \"180×200cm\",\n          scale: \"1.07\"\n        },\n        king: {\n          label: \"200×230cm\",\n          scale: \"1.13\"\n        }\n      };\n\n      function updateSelectedText(colourName) {\n        if (selectedText) {\n          selectedText.textContent = \"Selected vibe: \" + colourName + \" · \" + sizeText;\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(\"--blanket-one\", data.blanketOne);\n        section.style.setProperty(\"--blanket-two\", data.blanketTwo);\n        section.style.setProperty(\"--blanket-deep\", data.blanketDeep);\n\n        section.querySelectorAll(\"[data-colour]\").forEach(function (btn) {\n          btn.classList.toggle(\"is-active\", btn.getAttribute(\"data-colour\") === colour);\n        });\n\n        updateSelectedText(data.name);\n      }\n\n      function setSize(size) {\n        var data = sizeData[size];\n        if (!data) return;\n\n        sizeText = data.label;\n        section.style.setProperty(\"--blanket-size\", data.scale);\n\n        section.querySelectorAll(\"[data-size]\").forEach(function (btn) {\n          btn.classList.toggle(\"is-active\", btn.getAttribute(\"data-size\") === size);\n        });\n\n        var activeColour = section.querySelector(\"[data-colour].is-active\");\n        var colourKey = activeColour ? activeColour.getAttribute(\"data-colour\") : \"space-grey\";\n        updateSelectedText(colourData[colourKey].name);\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          cloud: [\"\", \"\", \"\", \"\", \"\"],\n          steam: [\"\", \"\", \"\", \"\", \"\"],\n          comfort: [\"🧸\", \"♡\", \"✨\", \"♡\", \"🧸\"],\n          colour: [\"🎨\", \"🤍\", \"🫒\", \"🌹\", \"🪨\"],\n          size: [\"📏\", \"🛏️\", \"👑\", \"✨\", \"🛋️\"],\n          clean: [\"✨\", \"🧹\", \"✨\", \"♡\", \"🧺\"]\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 === \"cloud\") {\n            particle.classList.add(\"cloud\");\n          } else 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 sizeButton = event.target.closest(\"[data-size]\");\n        if (sizeButton \u0026\u0026 section.contains(sizeButton)) {\n          event.preventDefault();\n          setSize(sizeButton.getAttribute(\"data-size\"));\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(\"space-grey\");\n      setSize(\"single\");\n    })();\n  \u003c\/script\u003e\u003c\/section\u003e","brand":"SoftHaven","offers":[{"title":"Green \/ 100 x 150cm","offer_id":46777763561609,"sku":"SSH-BLK-GRN-S","price":399.0,"currency_code":"ZAR","in_stock":true},{"title":"Green \/ 150 x 200cm","offer_id":46777763594377,"sku":"SSH-BLK-GRN-M","price":499.0,"currency_code":"ZAR","in_stock":true},{"title":"Green \/ 180 x 200cm","offer_id":46777763627145,"sku":"SSH-BLK-GRN-L","price":579.0,"currency_code":"ZAR","in_stock":true},{"title":"Green \/ 200 x 230cm","offer_id":46777763659913,"sku":"SSH-BLK-GRN-XL","price":649.0,"currency_code":"ZAR","in_stock":true},{"title":"Pink \/ 100 x 150cm","offer_id":46777763692681,"sku":"SSH-BLK-PNK-S","price":399.0,"currency_code":"ZAR","in_stock":true},{"title":"Pink \/ 150 x 200cm","offer_id":46777763725449,"sku":"SSH-BLK-PNK-M","price":499.0,"currency_code":"ZAR","in_stock":true},{"title":"Pink \/ 180 x 200cm","offer_id":46777763758217,"sku":"SSH-BLK-PNK-L","price":579.0,"currency_code":"ZAR","in_stock":true},{"title":"Pink \/ 200 x 230cm","offer_id":46777763790985,"sku":"SSH-BLK-PNK-XL","price":649.0,"currency_code":"ZAR","in_stock":true},{"title":"Khaki \/ 100 x 150cm","offer_id":46777763823753,"sku":"SSH-BLK-KHK-S","price":399.0,"currency_code":"ZAR","in_stock":true},{"title":"Khaki \/ 150 x 200cm","offer_id":46777763856521,"sku":"SSH-BLK-KHK-M","price":499.0,"currency_code":"ZAR","in_stock":true},{"title":"Khaki \/ 180 x 200cm","offer_id":46777763889289,"sku":"SSH-BLK-KHK-L","price":579.0,"currency_code":"ZAR","in_stock":true},{"title":"Khaki \/ 200 x 230cm","offer_id":46777763922057,"sku":"SSH-BLK-KHK-XL","price":649.0,"currency_code":"ZAR","in_stock":true},{"title":"White \/ 100 x 150cm","offer_id":46777763954825,"sku":"SSH-BLK-WHT-S","price":399.0,"currency_code":"ZAR","in_stock":true},{"title":"White \/ 150 x 200cm","offer_id":46777763987593,"sku":"SSH-BLK-WHT-M","price":499.0,"currency_code":"ZAR","in_stock":true},{"title":"White \/ 180 x 200cm","offer_id":46777764020361,"sku":"SSH-BLK-WHT-L","price":579.0,"currency_code":"ZAR","in_stock":true},{"title":"White \/ 200 x 230cm","offer_id":46777764053129,"sku":"SSH-BLK-WHT-XL","price":649.0,"currency_code":"ZAR","in_stock":true},{"title":"Grey \/ 100 x 150cm","offer_id":46777764085897,"sku":"SSH-BLK-GRY-S","price":399.0,"currency_code":"ZAR","in_stock":true},{"title":"Grey \/ 150 x 200cm","offer_id":46777764118665,"sku":"SSH-BLK-GRY-M","price":499.0,"currency_code":"ZAR","in_stock":true},{"title":"Grey \/ 180 x 200cm","offer_id":46777764151433,"sku":"SSH-BLK-GRY-L","price":579.0,"currency_code":"ZAR","in_stock":true},{"title":"Grey \/ 200 x 230cm","offer_id":46777764184201,"sku":"SSH-BLK-GRY-XL","price":649.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0765\/3539\/8537\/files\/cloud-blanket-green-image-3.png?v=1779282281"},{"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"},{"product_id":"softhaven™-the-cloud-sock","title":"SoftHaven™ The Cloud Sock","description":"\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: #d4806a;\n      --accent-dark: #bd6b57;\n      --accent-rgb: 212, 128, 106;\n      --bg-one: #faf0eb;\n      --bg-two: #f2c4b0;\n      --sock-one: #ffd3df;\n      --sock-two: #b9a3d8;\n      --cuff-one: #fff8fb;\n      --cuff-two: #eeeeee;\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-socks {\n      position: relative;\n      width: 330px;\n      height: 245px;\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-sock {\n      position: absolute;\n      width: 92px;\n      height: 215px;\n      border-radius: 42px 42px 35px 35px;\n      background:\n        radial-gradient(circle at 35% 22%, rgba(255,255,255,0.32), transparent 25%),\n        linear-gradient(160deg, var(--sock-one-local, var(--sock-one)), var(--sock-two-local, var(--sock-two)));\n      box-shadow:\n        inset 0 0 22px rgba(255,255,255,0.18),\n        0 20px 40px rgba(112,67,54,0.16);\n      transition: background 0.4s ease, transform 0.4s ease;\n    }\n\n    .sfhc-sock.left {\n      left: 56px;\n      top: 22px;\n      transform: rotate(-12deg);\n      opacity: 0.95;\n    }\n\n    .sfhc-sock.middle {\n      left: 50%;\n      top: 3px;\n      transform: translateX(-50%);\n      z-index: 2;\n    }\n\n    .sfhc-sock.right {\n      right: 56px;\n      top: 22px;\n      transform: rotate(12deg);\n      opacity: 0.95;\n    }\n\n    .sfhc-sock::before {\n      content: \"\";\n      position: absolute;\n      top: -4px;\n      left: 7px;\n      right: 7px;\n      height: 54px;\n      border-radius: 30px 30px 22px 22px;\n      background:\n        radial-gradient(circle at 30% 30%, rgba(255,255,255,0.9), transparent 28%),\n        linear-gradient(145deg, var(--cuff-one-local, var(--cuff-one)), var(--cuff-two-local, var(--cuff-two)));\n      box-shadow: inset 0 -8px 16px rgba(112,67,54,0.08);\n      transition: background 0.4s ease;\n    }\n\n    .sfhc-sock::after {\n      content: \"\";\n      position: absolute;\n      bottom: 10px;\n      left: 13px;\n      right: 13px;\n      height: 12px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.28);\n    }\n\n    .sfhc-grip {\n      position: absolute;\n      left: 50%;\n      bottom: 34px;\n      width: 54px;\n      height: 8px;\n      transform: translateX(-50%);\n      border-radius: 999px;\n      background: rgba(44,44,44,0.18);\n      box-shadow:\n        0 15px 0 rgba(44,44,44,0.12),\n        0 30px 0 rgba(44,44,44,0.09);\n    }\n\n    .sfhc-fluff {\n      position: absolute;\n      width: 16px;\n      height: 16px;\n      border-radius: 999px;\n      background: rgba(255,255,255,0.78);\n      filter: blur(1px);\n      animation: sfhcFluff 5s ease-in-out infinite;\n    }\n\n    .sfhc-fluff.f1 { left: 24%; top: 21%; animation-delay: 0s; }\n    .sfhc-fluff.f2 { left: 50%; top: 12%; animation-delay: 1s; }\n    .sfhc-fluff.f3 { right: 24%; top: 21%; animation-delay: 2s; }\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-pink { background: #f5a9bd; }\n    .sfhc-lavender { background: #b9a3d8; }\n    .sfhc-grey { background: #9b9b9b; }\n    .sfhc-pack { background: linear-gradient(135deg, #f5a9bd 0%, #f5a9bd 33%, #b9a3d8 33%, #b9a3d8 66%, #9b9b9b 66%, #9b9b9b 100%); }\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-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 {\n      margin-top: 28px;\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(3, 1fr);\n      gap: 12px;\n      margin-top: 16px;\n    }\n\n    .sfhc-included-item {\n      padding: 18px;\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: 28px;\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 sfhcFluff {\n      0%, 100% { transform: translateY(0) scale(1); opacity: 0.7; }\n      50% { transform: translateY(-12px) scale(1.2); opacity: 1; }\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-socks {\n        width: 270px;\n        height: 220px;\n      }\n\n      .sfhc-sock {\n        width: 76px;\n        height: 195px;\n      }\n\n      .sfhc-sock.left {\n        left: 44px;\n      }\n\n      .sfhc-sock.right {\n        right: 44px;\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\u003csection class=\"sfhc-section\" id=\"sfhc-cloud-sock\"\u003e\n\u003cdiv class=\"sfhc-wrap\"\u003e\n\u003cdiv class=\"sfhc-hero\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"sfhc-badge\"\u003e🇿🇦 3 cosy pairs for cold SA winters\u003c\/div\u003e\n\u003ch1 class=\"sfhc-title\"\u003eSoftHaven™ \u003cspan\u003eThe Cloud Sock\u003c\/span\u003e\n\u003c\/h1\u003e\n\u003cdiv class=\"sfhc-subtitle\"\u003eCold Feet Are a Thing of the Past. ☁️\u003c\/div\u003e\n\u003cp class=\"sfhc-text\"\u003eYou know that freezing-floor feeling on a winter morning? The Cloud Sock was made to fix exactly that. Slip them on and feel instant warmth, fluffy softness and cosy comfort — like walking on warm clouds all day long.\u003c\/p\u003e\n\u003cdiv class=\"sfhc-actions\"\u003e\n\u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll=\"\"\u003e Get My 3-Pack Cloud Socks \u003c\/button\u003e\n\u003cdiv class=\"sfhc-note\"\u003e3 pairs per pack · Pink, Lavender \u0026amp; Grey · One size fits most · Machine washable\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-trust-row\"\u003e\n\u003cspan\u003e☁️ Warm cloud feel\u003c\/span\u003e \u003cspan\u003e🔥 Thick fleece lining\u003c\/span\u003e \u003cspan\u003e🚶♀️ Non-slip grip\u003c\/span\u003e \u003cspan\u003e🧺 Machine washable\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-product-card\"\u003e\n\u003cdiv class=\"sfhc-visual\"\u003e\n\u003cspan class=\"sfhc-warmth one\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-warmth two\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-warmth three\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-fluff f1\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-fluff f2\"\u003e\u003c\/span\u003e \u003cspan class=\"sfhc-fluff f3\"\u003e\u003c\/span\u003e\n\u003cdiv class=\"sfhc-socks\"\u003e\n\u003cdiv class=\"sfhc-sock left\"\u003e\n\u003cspan class=\"sfhc-grip\"\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-sock middle\"\u003e\n\u003cspan class=\"sfhc-grip\"\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-sock right\"\u003e\n\u003cspan class=\"sfhc-grip\"\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-colour-title\"\u003eTap a colour to preview the vibe\u003c\/div\u003e\n\u003cdiv class=\"sfhc-colours\"\u003e\n\u003cbutton type=\"button\" class=\"sfhc-colour sfhc-pack\" data-colour=\"pack\" aria-label=\"3 Pack\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-pink\" data-colour=\"pink\" aria-label=\"Pink\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-lavender\" data-colour=\"lavender\" aria-label=\"Lavender\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-grey\" data-colour=\"grey\" aria-label=\"Grey\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-selected\" data-selected-text=\"\"\u003eSelected vibe: 3-Pack Mix\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\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, grip and cloud-soft comfort.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefits\"\u003e\n\u003cdiv class=\"sfhc-benefit\" data-effect=\"steam\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e☁️\u003c\/div\u003e\n\u003ch3\u003eInstant Foot Warmth\u003c\/h3\u003e\n\u003cp\u003eThick fleece lining helps warm your feet from the first second you slip them on.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-effect=\"cloud\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🦥\u003c\/div\u003e\n\u003ch3\u003eImpossibly Soft\u003c\/h3\u003e\n\u003cp\u003eThe fluffy fur cuff feels like a gentle hug around your ankle.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-effect=\"comfort\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🤸\u003c\/div\u003e\n\u003ch3\u003eAll-Day Comfort\u003c\/h3\u003e\n\u003cp\u003eNo bunching, no slipping and no tight elastic cutting into your skin.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-effect=\"grip\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🚶♀️\u003c\/div\u003e\n\u003ch3\u003eNon-Slip Grip\u003c\/h3\u003e\n\u003cp\u003eMove around the house with more confidence on tiles or wooden floors.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-effect=\"pair\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🌟\u003c\/div\u003e\n\u003ch3\u003ePairs Perfectly\u003c\/h3\u003e\n\u003cp\u003eWear them with slippers, under blankets or on their own for cosy home comfort.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-benefit\" data-effect=\"winter\"\u003e\n\u003cdiv class=\"sfhc-effect-layer\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sfhc-icon\"\u003e🇿🇦\u003c\/div\u003e\n\u003ch3\u003eSA Winter Essential\u003c\/h3\u003e\n\u003cp\u003eWarm enough for cold Joburg, Cape Town and Bloemfontein winter nights.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-split\"\u003e\n\u003cdiv class=\"sfhc-panel\"\u003e\n\u003ch3\u003eWhy You’ll Love Them\u003c\/h3\u003e\n\u003cul class=\"sfhc-list\"\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eWarm feet fast:\u003c\/strong\u003e perfect for icy floors, cold mornings and chilly evenings.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eCloud-soft comfort:\u003c\/strong\u003e fluffy, cosy and gentle enough to wear for hours.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eBetter grip at home:\u003c\/strong\u003e non-slip grip helps you move around more confidently.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003e3 pairs included:\u003c\/strong\u003e more cosy options for lounging, sleeping and winter mornings.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\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\u003eCold floors\u003c\/strong\u003e when stepping out of bed feels like punishment.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eMovie nights\u003c\/strong\u003e under blankets with warm, happy feet.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eHome lounging\u003c\/strong\u003e while making coffee, studying, cleaning or relaxing.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eGifting\u003c\/strong\u003e for anyone who always complains about cold feet.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-size-guide\"\u003e\n\u003ch3\u003eWhat’s Included 🧶\u003c\/h3\u003e\n\u003cp\u003eEach pack includes 3 cosy pairs in Pink, Lavender and Grey. One size fits most, unisex and machine washable.\u003c\/p\u003e\n\u003cdiv class=\"sfhc-included-grid\"\u003e\n\u003cbutton type=\"button\" class=\"sfhc-included-item\" data-colour=\"pink\"\u003e \u003cspan\u003e🌸\u003c\/span\u003e Pink Pair \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-included-item\" data-colour=\"lavender\"\u003e \u003cspan\u003e💜\u003c\/span\u003e Lavender Pair \u003c\/button\u003e \u003cbutton type=\"button\" class=\"sfhc-included-item\" data-colour=\"grey\"\u003e \u003cspan\u003e🪨\u003c\/span\u003e Grey Pair \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sfhc-story\"\u003e\n\u003ch2\u003eYour Winter Morning, Reimagined ☀️\u003c\/h2\u003e\n\u003cp\u003eIt is 6am. The alarm goes off. You dread putting your feet on that cold floor. But this time, you reach for The Cloud Sock first. Warm. Soft. Instant. You walk to the kitchen, make your coffee and your feet are still in heaven. That is the SoftHaven difference.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll=\"\"\u003e Warm Feet. Happy Life. ☁️ \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function () {\n      var script = document.currentScript;\n      var section = script ? script.closest(\".sfhc-section\") : document.getElementById(\"sfhc-cloud-sock\");\n      if (!section) return;\n\n      var selectedText = section.querySelector(\"[data-selected-text]\");\n      var socks = section.querySelectorAll(\".sfhc-sock\");\n\n      var colourData = {\n        pack: {\n          name: \"3-Pack Mix\",\n          accent: \"#d4806a\",\n          accentDark: \"#bd6b57\",\n          accentRgb: \"212, 128, 106\",\n          bgOne: \"#faf0eb\",\n          bgTwo: \"#f2c4b0\",\n          sockOne: \"#ffd3df\",\n          sockTwo: \"#b9a3d8\",\n          cuffOne: \"#fff8fb\",\n          cuffTwo: \"#eeeeee\"\n        },\n        pink: {\n          name: \"Pink Pair\",\n          accent: \"#d97896\",\n          accentDark: \"#be5f7d\",\n          accentRgb: \"217, 120, 150\",\n          bgOne: \"#fff3f6\",\n          bgTwo: \"#f5b5c7\",\n          sockOne: \"#ffd3df\",\n          sockTwo: \"#f5a9bd\",\n          cuffOne: \"#fff8fb\",\n          cuffTwo: \"#ffd9e5\"\n        },\n        lavender: {\n          name: \"Lavender Pair\",\n          accent: \"#9b7cc7\",\n          accentDark: \"#765aa1\",\n          accentRgb: \"155, 124, 199\",\n          bgOne: \"#f7f1ff\",\n          bgTwo: \"#d7c3f1\",\n          sockOne: \"#cdb6eb\",\n          sockTwo: \"#9271c1\",\n          cuffOne: \"#fff7ff\",\n          cuffTwo: \"#e2d0f5\"\n        },\n        grey: {\n          name: \"Grey Pair\",\n          accent: \"#8f8f8f\",\n          accentDark: \"#5c5c5c\",\n          accentRgb: \"143, 143, 143\",\n          bgOne: \"#fafafa\",\n          bgTwo: \"#d6d6d6\",\n          sockOne: \"#b8b8b8\",\n          sockTwo: \"#6f6f6f\",\n          cuffOne: \"#ffffff\",\n          cuffTwo: \"#dddddd\"\n        }\n      };\n\n      function paintSock(sock, data) {\n        if (!sock || !data) return;\n        sock.style.setProperty(\"--sock-one-local\", data.sockOne);\n        sock.style.setProperty(\"--sock-two-local\", data.sockTwo);\n        sock.style.setProperty(\"--cuff-one-local\", data.cuffOne);\n        sock.style.setProperty(\"--cuff-two-local\", data.cuffTwo);\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(\"--sock-one\", data.sockOne);\n        section.style.setProperty(\"--sock-two\", data.sockTwo);\n        section.style.setProperty(\"--cuff-one\", data.cuffOne);\n        section.style.setProperty(\"--cuff-two\", data.cuffTwo);\n\n        if (colour === \"pack\") {\n          paintSock(socks[0], colourData.pink);\n          paintSock(socks[1], colourData.lavender);\n          paintSock(socks[2], colourData.grey);\n        } else {\n          socks.forEach(function (sock) {\n            paintSock(sock, data);\n          });\n        }\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          cloud: [\"☁️\", \"♡\", \"☁️\", \"♡\", \"☁️\"],\n          comfort: [\"✨\", \"🦥\", \"♡\", \"✨\", \"🦥\"],\n          grip: [\"👣\", \"✓\", \"👣\", \"✨\", \"✓\"],\n          pair: [\"🌟\", \"🧦\", \"♡\", \"🌟\", \"🧦\"],\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(\"pack\");\n    })();\n  \u003c\/script\u003e\u003c\/section\u003e","brand":"SoftHaven","offers":[{"title":"Default Title","offer_id":46777764741257,"sku":null,"price":299.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0765\/3539\/8537\/files\/cloud-sock-no-bubble.png?v=1779284230"},{"product_id":"softhaven™-the-cloud-hoodie","title":"SoftHaven™ The Cloud Hoodie","description":"\u003csection class=\"sfhc-section\" id=\"sfhc-cloud-hoodie\"\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: #d4806a;\n      --accent-dark: #bd6b57;\n      --accent-rgb: 212, 128, 106;\n      --bg-one: #faf0eb;\n      --bg-two: #f2c4b0;\n      --hoodie-one: #e5a18a;\n      --hoodie-two: #d4806a;\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    }\n\n    .sfhc-hoodie {\n      position: relative;\n      width: 250px;\n      height: 310px;\n      border-radius: 95px 95px 48px 48px;\n      background:\n        radial-gradient(circle at 35% 25%, rgba(255,255,255,0.66), transparent 18%),\n        linear-gradient(145deg, var(--hoodie-one), var(--hoodie-two));\n      box-shadow: 0 28px 60px rgba(112,67,54,0.28);\n      animation: sfhcBreathe 4.5s ease-in-out infinite;\n      transition: background 0.4s ease;\n    }\n\n    .sfhc-hoodie::before {\n      content: \"\";\n      position: absolute;\n      top: 24px;\n      left: 50%;\n      width: 125px;\n      height: 92px;\n      transform: translateX(-50%);\n      border-radius: 70px 70px 38px 38px;\n      background: rgba(255,255,255,0.38);\n    }\n\n    .sfhc-hoodie::after {\n      content: \"\";\n      position: absolute;\n      bottom: 45px;\n      left: 50%;\n      width: 150px;\n      height: 68px;\n      transform: translateX(-50%);\n      border-radius: 26px;\n      background: rgba(255,255,255,0.34);\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-black { background: #111111; }\n    .sfhc-sky { background: #a8dff2; }\n    .sfhc-navy { background: #17213f; }\n    .sfhc-pink { background: #f5a9bd; }\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    }\n\n    .sfhc-benefit:hover {\n      transform: translateY(-5px);\n      box-shadow: 0 25px 55px rgba(112,67,54,0.17);\n    }\n\n    .sfhc-benefit.is-tapped {\n      transform: translateY(-5px) scale(1.01);\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    }\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      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-panel h3 {\n      margin: 0 0 16px;\n      font-size: 24px;\n      font-weight: 950;\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    }\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-hoodie {\n        width: 210px;\n        height: 265px;\n      }\n\n      .sfhc-benefits,\n      .sfhc-split {\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        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🇿🇦 Made for South African winters\u003c\/div\u003e\n\n        \u003ch1 class=\"sfhc-title\"\u003e\n          SoftHaven™\n          \u003cspan\u003eThe Cloud Hoodie\u003c\/span\u003e\n        \u003c\/h1\u003e\n\n        \u003cdiv class=\"sfhc-subtitle\"\u003eNever Feel Cold Again. ❄️\u003c\/div\u003e\n\n        \u003cp class=\"sfhc-text\"\u003e\n          South African winters hit different. The Cloud Hoodie wraps you in oversized warmth,\n          skin-soft comfort and effortless winter style — so you can stay cosy without wearing five layers.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"sfhc-actions\"\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll\u003e\n            Choose Your Colour \u0026amp; Stay Warm\n          \u003c\/button\u003e\n\n          \u003cdiv class=\"sfhc-note\"\u003e\n            One size fits most · Unisex · Black, Sky Blue, Navy \u0026amp; Pink\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-trust-row\"\u003e\n          \u003cspan\u003e☁️ Cloud-soft feel\u003c\/span\u003e\n          \u003cspan\u003e🔥 Winter warmth\u003c\/span\u003e\n          \u003cspan\u003e🤲 Deep front pocket\u003c\/span\u003e\n          \u003cspan\u003e🎁 Gift-ready comfort\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          \u003cdiv class=\"sfhc-hoodie\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-colour-title\"\u003eTap a colour to preview the vibe\u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-colours\"\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-black\" data-colour=\"black\" aria-label=\"Black\"\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-sky\" data-colour=\"sky\" aria-label=\"Sky Blue\"\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-navy\" data-colour=\"navy\" aria-label=\"Navy\"\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"sfhc-colour sfhc-pink\" data-colour=\"pink\" aria-label=\"Pink\"\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sfhc-selected\" data-selected-text\u003e\n          Selected vibe: SoftHaven Terracotta\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, so customers can experience the 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 Full-Body Warmth\u003c\/h3\u003e\n        \u003cp\u003eTap here and feel the warmth. Slip it on and feel wrapped from your shoulders down.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"cloud\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🧸\u003c\/div\u003e\n        \u003ch3\u003eSkin-Soft Comfort\u003c\/h3\u003e\n        \u003cp\u003eSoft, cosy and gentle enough to make you want to live in it all winter.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"zzz\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e😴\u003c\/div\u003e\n        \u003ch3\u003eDeep Relaxation\u003c\/h3\u003e\n        \u003cp\u003eThe oversized warmth helps you unwind, relax and feel calm after a long day.\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\u003eMove Freely\u003c\/h3\u003e\n        \u003cp\u003eWalk, cook, study, scroll and lounge without dragging a blanket around.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"hands\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e🤲\u003c\/div\u003e\n        \u003ch3\u003eWarm Hands Always\u003c\/h3\u003e\n        \u003cp\u003eThe deep front pocket keeps your hands warm and your essentials close.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sfhc-benefit\" data-effect=\"save\"\u003e\n        \u003cdiv class=\"sfhc-effect-layer\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"sfhc-icon\"\u003e💸\u003c\/div\u003e\n        \u003ch3\u003eUse Less Heater Time\u003c\/h3\u003e\n        \u003cp\u003eStay warm without needing to turn up the heater every time the cold hits.\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\u003eOversized comfort:\u003c\/strong\u003e made for lounging, relaxing and staying warm without feeling restricted.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eOne-piece warmth:\u003c\/strong\u003e hoodie, blanket and pocket comfort combined into one cosy essential.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eEveryday use:\u003c\/strong\u003e perfect for home, study sessions, movie nights and cold Sunday mornings.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003ePremium look:\u003c\/strong\u003e soft colours, clean fit and a cosy aesthetic that still looks cute.\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\u003eCold Jozi mornings\u003c\/strong\u003e when getting out of bed feels impossible.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eStudents\u003c\/strong\u003e who need warmth while studying late.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eMovie nights\u003c\/strong\u003e when you want comfort without dragging a blanket around.\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"sfhc-check\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cstrong\u003eGifting\u003c\/strong\u003e because everyone loves something warm, soft and useful.\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sfhc-story\"\u003e\n      \u003ch2\u003eYour Winter, Transformed ☁️\u003c\/h2\u003e\n      \u003cp\u003e\n        Picture this: it is a cold Sunday morning in Jozi. You reach for The Cloud Hoodie,\n        wrap yourself up, make a warm drink and settle in. No shivering. No uncomfortable layers.\n        Just pure, effortless comfort.\n      \u003c\/p\u003e\n\n      \u003cbutton type=\"button\" class=\"sfhc-btn\" data-sfhc-scroll\u003e\n        Get Yours Before The Cold Hits\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    (function () {\n      var section = document.getElementById(\"sfhc-cloud-hoodie\");\n      if (!section) return;\n\n      var selectedText = section.querySelector(\"[data-selected-text]\");\n\n      var colourData = {\n        black: {\n          name: \"Black\",\n          accent: \"#2c2c2c\",\n          accentDark: \"#111111\",\n          accentRgb: \"44, 44, 44\",\n          bgOne: \"#f7f2ef\",\n          bgTwo: \"#d8d1cd\",\n          hoodieOne: \"#444444\",\n          hoodieTwo: \"#111111\"\n        },\n        sky: {\n          name: \"Sky Blue\",\n          accent: \"#6eb8d4\",\n          accentDark: \"#4b9fbd\",\n          accentRgb: \"110, 184, 212\",\n          bgOne: \"#f7fbff\",\n          bgTwo: \"#bdeeff\",\n          hoodieOne: \"#d6f4ff\",\n          hoodieTwo: \"#8ed8ff\"\n        },\n        navy: {\n          name: \"Navy\",\n          accent: \"#17213f\",\n          accentDark: \"#0d1428\",\n          accentRgb: \"23, 33, 63\",\n          bgOne: \"#f3f5ff\",\n          bgTwo: \"#c8d3ef\",\n          hoodieOne: \"#2c3b69\",\n          hoodieTwo: \"#111a35\"\n        },\n        pink: {\n          name: \"Pink\",\n          accent: \"#d97896\",\n          accentDark: \"#be5f7d\",\n          accentRgb: \"217, 120, 150\",\n          bgOne: \"#fff3f6\",\n          bgTwo: \"#f5b5c7\",\n          hoodieOne: \"#ffd3df\",\n          hoodieTwo: \"#f5a9bd\"\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(\"--hoodie-one\", data.hoodieOne);\n        section.style.setProperty(\"--hoodie-two\", data.hoodieTwo);\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      section.querySelectorAll(\"[data-colour]\").forEach(function (button) {\n        button.addEventListener(\"click\", function () {\n          setColour(button.getAttribute(\"data-colour\"));\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          cloud: [\"☁️\", \"♡\", \"☁️\", \"♡\", \"☁️\"],\n          zzz: [\"zZ\", \"Zz\", \"zZ\", \"✨\", \"Zz\"],\n          move: [\"↗\", \"↖\", \"↗\", \"✨\", \"↖\"],\n          hands: [\"🔥\", \"🤲\", \"🔥\", \"✨\", \"🔥\"],\n          save: [\"R\", \"💸\", \"R\", \"✨\", \"💸\"]\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.querySelectorAll(\".sfhc-benefit\").forEach(function (card) {\n        card.addEventListener(\"click\", function () {\n          createEffect(card, card.getAttribute(\"data-effect\"));\n        });\n      });\n\n      section.querySelectorAll(\"[data-sfhc-scroll]\").forEach(function (button) {\n        button.addEventListener(\"click\", function () {\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(\"pink\");\n    })();\n  \u003c\/script\u003e\n\u003c\/section\u003e","brand":"SoftHaven","offers":[{"title":"Black","offer_id":46777766412425,"sku":"SSH-HOOD-BLK","price":799.0,"currency_code":"ZAR","in_stock":true},{"title":"Blue","offer_id":46777766445193,"sku":"SSH-HOOD-BLU","price":799.0,"currency_code":"ZAR","in_stock":true},{"title":"Navy","offer_id":46777766477961,"sku":"SSH-HOOD-NVY","price":799.0,"currency_code":"ZAR","in_stock":true},{"title":"Pink","offer_id":46777766510729,"sku":"SSH-HOOD-PNK","price":799.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0765\/3539\/8537\/files\/hoodie-blanket-black-sa-lifestyle.png?v=1779279656"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0765\/3539\/8537\/collections\/winter-essentials-collection.png?v=1779204641","url":"https:\/\/www.softhaven.co.za\/collections\/winter-essentials.oembed","provider":"SoftHaven","version":"1.0","type":"link"}