{"product_id":"portable-rechargeable-hair-steamer","title":"ZenPulse Silk™","description":"\u003cstyle\u003e\n\/* =========================================================\n   ZENPULSE — PREMIUM HAIR STEAMER SECTION\n   ========================================================= *\/\n\n.zp-steamer {\n  --pink: #ec4899;\n  --pink-dark: #db2777;\n  --pink-light: #fce7f3;\n  --pink-soft: #fff5fa;\n  --blush: #fff8fb;\n  --text: #17131f;\n  --muted: #6b6475;\n  --white: #ffffff;\n\n  position: relative;\n  overflow: hidden;\n  padding: 90px 20px;\n  background:\n    radial-gradient(circle at 10% 20%, rgba(236,72,153,.10), transparent 28%),\n    radial-gradient(circle at 90% 80%, rgba(244,114,182,.12), transparent 30%),\n    linear-gradient(135deg, #fffafd 0%, #fff1f7 50%, #ffffff 100%);\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  color: var(--text);\n}\n\n\/* Decorative background blobs *\/\n\n.zp-steamer::before,\n.zp-steamer::after {\n  content: \"\";\n  position: absolute;\n  border-radius: 50%;\n  pointer-events: none;\n  filter: blur(2px);\n}\n\n.zp-steamer::before {\n  width: 350px;\n  height: 350px;\n  background: rgba(236,72,153,.08);\n  top: -180px;\n  left: -120px;\n  animation: zpFloat 8s ease-in-out infinite;\n}\n\n.zp-steamer::after {\n  width: 300px;\n  height: 300px;\n  background: rgba(249,168,212,.10);\n  bottom: -150px;\n  right: -100px;\n  animation: zpFloat 10s ease-in-out infinite reverse;\n}\n\n@keyframes zpFloat {\n  0%,100% { transform: translateY(0) translateX(0); }\n  50% { transform: translateY(25px) translateX(15px); }\n}\n\n.zp-steamer-wrap {\n  position: relative;\n  z-index: 2;\n  max-width: 1180px;\n  margin: 0 auto;\n}\n\n\/* =========================================================\n   TOP INTRO\n   ========================================================= *\/\n\n.zp-steamer-intro {\n  text-align: center;\n  max-width: 780px;\n  margin: 0 auto 55px;\n}\n\n.zp-steamer-eyebrow {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  padding: 9px 17px;\n  border-radius: 999px;\n  background: rgba(255,255,255,.85);\n  border: 1px solid #f9c5dc;\n  color: var(--pink-dark);\n  font-size: 12px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n  box-shadow: 0 8px 25px rgba(219,39,119,.08);\n  animation: zpFadeUp .7s ease both;\n}\n\n.zp-steamer-intro h2 {\n  margin: 22px 0 15px;\n  font-size: clamp(38px, 5vw, 64px);\n  line-height: 1.02;\n  letter-spacing: -2.5px;\n  font-weight: 850;\n  animation: zpFadeUp .8s ease .1s both;\n}\n\n.zp-steamer-intro h2 span {\n  background: linear-gradient(90deg, #db2777, #ec4899, #f472b6);\n  -webkit-background-clip: text;\n  background-clip: text;\n  color: transparent;\n}\n\n.zp-steamer-intro p {\n  margin: 0 auto;\n  max-width: 650px;\n  color: var(--muted);\n  font-size: 17px;\n  line-height: 1.75;\n  animation: zpFadeUp .8s ease .2s both;\n}\n\n@keyframes zpFadeUp {\n  from {\n    opacity: 0;\n    transform: translateY(22px);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n\n\/* =========================================================\n   FEATURE GRID\n   ========================================================= *\/\n\n.zp-steamer-grid {\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  gap: 20px;\n}\n\n\/* Cards *\/\n\n.zp-steamer-card {\n  position: relative;\n  padding: 30px;\n  min-height: 220px;\n  border-radius: 28px;\n  background: rgba(255,255,255,.78);\n  border: 1px solid rgba(236,72,153,.13);\n  box-shadow:\n    0 20px 55px rgba(219,39,119,.07),\n    inset 0 1px 0 rgba(255,255,255,.9);\n  backdrop-filter: blur(16px);\n  -webkit-backdrop-filter: blur(16px);\n  overflow: hidden;\n  transition:\n    transform .45s cubic-bezier(.2,.8,.2,1),\n    box-shadow .45s ease,\n    border-color .45s ease;\n  animation: zpCardIn .8s ease both;\n}\n\n.zp-steamer-card:nth-child(1) { animation-delay: .1s; }\n.zp-steamer-card:nth-child(2) { animation-delay: .18s; }\n.zp-steamer-card:nth-child(3) { animation-delay: .26s; }\n.zp-steamer-card:nth-child(4) { animation-delay: .34s; }\n.zp-steamer-card:nth-child(5) { animation-delay: .42s; }\n\n@keyframes zpCardIn {\n  from {\n    opacity: 0;\n    transform: translateY(30px) scale(.97);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0) scale(1);\n  }\n}\n\n.zp-steamer-card:hover {\n  transform: translateY(-8px);\n  border-color: rgba(236,72,153,.30);\n  box-shadow:\n    0 28px 70px rgba(219,39,119,.14),\n    0 0 0 1px rgba(236,72,153,.05);\n}\n\n\/* Shimmer *\/\n\n.zp-steamer-card::after {\n  content: \"\";\n  position: absolute;\n  width: 180px;\n  height: 180px;\n  right: -80px;\n  top: -80px;\n  border-radius: 50%;\n  background: radial-gradient(\n    circle,\n    rgba(244,114,182,.16),\n    transparent 70%\n  );\n  transition: transform .5s ease;\n}\n\n.zp-steamer-card:hover::after {\n  transform: scale(1.5);\n}\n\n\/* =========================================================\n   ICON\n   ========================================================= *\/\n\n.zp-steamer-icon {\n  position: relative;\n  z-index: 2;\n  width: 58px;\n  height: 58px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 18px;\n  margin-bottom: 22px;\n  background: linear-gradient(135deg, #fce7f3, #fff);\n  border: 1px solid #f9c5dc;\n  color: var(--pink-dark);\n  box-shadow: 0 10px 25px rgba(219,39,119,.10);\n  font-size: 27px;\n  transition: transform .4s ease;\n}\n\n.zp-steamer-card:hover .zp-steamer-icon {\n  transform: rotate(-5deg) scale(1.08);\n}\n\n\/* =========================================================\n   CARD TEXT\n   ========================================================= *\/\n\n.zp-steamer-card h3 {\n  position: relative;\n  z-index: 2;\n  margin: 0 0 10px;\n  font-size: 21px;\n  font-weight: 800;\n  letter-spacing: -.4px;\n}\n\n.zp-steamer-card p {\n  position: relative;\n  z-index: 2;\n  margin: 0;\n  color: var(--muted);\n  font-size: 15px;\n  line-height: 1.7;\n}\n\n\/* =========================================================\n   FEATURE 5 — FULL WIDTH\n   ========================================================= *\/\n\n.zp-steamer-card-wide {\n  grid-column: span 2;\n  display: grid;\n  grid-template-columns: auto 1fr auto;\n  align-items: center;\n  gap: 28px;\n  min-height: 180px;\n  background:\n    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,241,247,.88));\n}\n\n.zp-steamer-card-wide .zp-steamer-icon {\n  margin-bottom: 0;\n}\n\n.zp-steamer-mini-badge {\n  display: inline-flex;\n  margin-top: 14px;\n  padding: 7px 12px;\n  border-radius: 999px;\n  background: #fce7f3;\n  color: #be185d;\n  font-size: 11px;\n  font-weight: 800;\n  letter-spacing: .7px;\n  text-transform: uppercase;\n}\n\n\/* =========================================================\n   STEAM ANIMATION\n   ========================================================= *\/\n\n.zp-steam-animation {\n  position: relative;\n  width: 130px;\n  height: 90px;\n  display: flex;\n  justify-content: center;\n  align-items: flex-end;\n}\n\n.zp-steam-line {\n  position: absolute;\n  bottom: 8px;\n  width: 10px;\n  height: 65px;\n  border-radius: 50%;\n  border-left: 3px solid rgba(236,72,153,.42);\n  opacity: 0;\n  animation: zpSteam 2.8s ease-in-out infinite;\n}\n\n.zp-steam-line:nth-child(1) {\n  left: 38px;\n  animation-delay: 0s;\n}\n\n.zp-steam-line:nth-child(2) {\n  left: 61px;\n  height: 75px;\n  animation-delay: .55s;\n}\n\n.zp-steam-line:nth-child(3) {\n  left: 83px;\n  height: 62px;\n  animation-delay: 1.1s;\n}\n\n@keyframes zpSteam {\n  0% {\n    opacity: 0;\n    transform: translateY(15px) scale(.8) rotate(-4deg);\n  }\n  25% {\n    opacity: .75;\n  }\n  75% {\n    opacity: .35;\n  }\n  100% {\n    opacity: 0;\n    transform: translateY(-35px) scale(1.2) rotate(5deg);\n  }\n}\n\n\/* =========================================================\n   BOTTOM CTA\n   ========================================================= *\/\n\n.zp-steamer-cta {\n  margin-top: 55px;\n  padding: 42px 35px;\n  text-align: center;\n  border-radius: 30px;\n  background:\n    linear-gradient(\n      135deg,\n      #db2777 0%,\n      #ec4899 48%,\n      #f472b6 100%\n    );\n  color: white;\n  box-shadow:\n    0 25px 70px rgba(219,39,119,.22);\n  position: relative;\n  overflow: hidden;\n}\n\n.zp-steamer-cta::before {\n  content: \"\";\n  position: absolute;\n  width: 250px;\n  height: 250px;\n  background: rgba(255,255,255,.12);\n  border-radius: 50%;\n  top: -150px;\n  left: -100px;\n}\n\n.zp-steamer-cta::after {\n  content: \"\";\n  position: absolute;\n  width: 250px;\n  height: 250px;\n  background: rgba(255,255,255,.10);\n  border-radius: 50%;\n  bottom: -170px;\n  right: -100px;\n}\n\n.zp-steamer-cta h3 {\n  position: relative;\n  z-index: 2;\n  margin: 0 0 10px;\n  font-size: clamp(27px, 4vw, 39px);\n  letter-spacing: -1px;\n  font-weight: 850;\n}\n\n.zp-steamer-cta p {\n  position: relative;\n  z-index: 2;\n  margin: 0 auto 24px;\n  max-width: 600px;\n  font-size: 15px;\n  line-height: 1.7;\n  opacity: .94;\n}\n\n.zp-steamer-button {\n  position: relative;\n  z-index: 2;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 9px;\n  padding: 15px 28px;\n  border-radius: 999px;\n  background: white;\n  color: #be185d;\n  text-decoration: none;\n  font-size: 14px;\n  font-weight: 800;\n  box-shadow: 0 12px 30px rgba(0,0,0,.12);\n  transition: all .35s ease;\n}\n\n.zp-steamer-button:hover {\n  transform: translateY(-3px) scale(1.02);\n  box-shadow: 0 18px 38px rgba(0,0,0,.18);\n}\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width: 750px) {\n\n  .zp-steamer {\n    padding: 65px 15px;\n  }\n\n  .zp-steamer-intro {\n    margin-bottom: 35px;\n  }\n\n  .zp-steamer-intro h2 {\n    letter-spacing: -1.5px;\n  }\n\n  .zp-steamer-intro p {\n    font-size: 15px;\n  }\n\n  .zp-steamer-grid {\n    grid-template-columns: 1fr;\n  }\n\n  .zp-steamer-card {\n    min-height: auto;\n    padding: 25px;\n  }\n\n  .zp-steamer-card-wide {\n    grid-column: span 1;\n    display: block;\n  }\n\n  .zp-steamer-card-wide .zp-steamer-icon {\n    margin-bottom: 20px;\n  }\n\n  .zp-steam-animation {\n    margin: 25px auto 0;\n  }\n\n  .zp-steamer-cta {\n    margin-top: 35px;\n    padding: 35px 22px;\n  }\n}\n\n\/* Respect reduced-motion settings *\/\n\n@media (prefers-reduced-motion: reduce) {\n  .zp-steamer *,\n  .zp-steamer::before,\n  .zp-steamer::after {\n    animation: none !important;\n    transition: none !important;\n  }\n}\n\u003c\/style\u003e\n\u003csection class=\"zp-steamer\"\u003e\n\u003cdiv class=\"zp-steamer-wrap\"\u003e\n\u003c!-- INTRO --\u003e\n\u003cdiv class=\"zp-steamer-intro\"\u003e\n\u003cdiv class=\"zp-steamer-eyebrow\"\u003e✨ PREMIUM HAIRCARE\u003c\/div\u003e\n\u003ch2\u003eHydrate. Nourish. \u003cspan\u003eGlow.\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp\u003eMeet your new haircare bestie. The Portable Rechargeable Hair Steamer delivers a gentle steam mist to help deeply moisturize your hair — anytime, anywhere.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- FEATURES --\u003e\n\u003cdiv class=\"zp-steamer-grid\"\u003e\n\u003c!-- CARD 1 --\u003e\n\u003cdiv class=\"zp-steamer-card\"\u003e\n\u003cdiv class=\"zp-steamer-icon\"\u003e💧\u003c\/div\u003e\n\u003ch3\u003eDeep Moisture Boost\u003c\/h3\u003e\n\u003cp\u003eSteam helps open the hair cuticle, allowing moisture, oils and treatments to absorb more effectively for softer, shinier, healthier-looking hair.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- CARD 2 --\u003e\n\u003cdiv class=\"zp-steamer-card\"\u003e\n\u003cdiv class=\"zp-steamer-icon\"\u003e🔋\u003c\/div\u003e\n\u003ch3\u003eRechargeable \u0026amp; Travel-Ready\u003c\/h3\u003e\n\u003cp\u003eSimply charge via USB and take your haircare routine wherever life takes you. Compact enough for your bag and perfect for home, travel or quick touch-ups.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- CARD 3 --\u003e\n\u003cdiv class=\"zp-steamer-card\"\u003e\n\u003cdiv class=\"zp-steamer-icon\"\u003e🌿\u003c\/div\u003e\n\u003ch3\u003eFor All Hair Types\u003c\/h3\u003e\n\u003cp\u003eFrom tight coils and bouncy curls to flowing waves and sleek straight hair, enjoy a convenient hydration boost designed for every hair routine.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- CARD 4 --\u003e\n\u003cdiv class=\"zp-steamer-card\"\u003e\n\u003cdiv class=\"zp-steamer-icon\"\u003e⚡\u003c\/div\u003e\n\u003ch3\u003eQuick \u0026amp; Easy\u003c\/h3\u003e\n\u003cp\u003eFill it, power it on and let the steam do the work. Pair it with your favourite deep conditioner or hair mask for an elevated haircare routine.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- WIDE CARD --\u003e\n\u003cdiv class=\"zp-steamer-card zp-steamer-card-wide\"\u003e\n\u003cdiv class=\"zp-steamer-icon\"\u003e💆🏽♀️\u003c\/div\u003e\n\u003cdiv\u003e\n\u003ch3\u003eSalon-Level Haircare, Wherever You Are\u003c\/h3\u003e\n\u003cp\u003eSay goodbye to dry, brittle-looking hair and make hydration part of your self-care routine — without bulky equipment or complicated setups.\u003c\/p\u003e\n\u003cdiv class=\"zp-steamer-mini-badge\"\u003ePortable • Rechargeable • Easy to Use\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Animated steam --\u003e\n\u003cdiv class=\"zp-steam-animation\"\u003e\n\u003cspan class=\"zp-steam-line\"\u003e\u003c\/span\u003e \u003cspan class=\"zp-steam-line\"\u003e\u003c\/span\u003e \u003cspan class=\"zp-steam-line\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CTA --\u003e\n\u003cdiv class=\"zp-steamer-cta\"\u003e\n\u003ch3\u003eGive Your Hair the Hydration It Deserves ✨\u003c\/h3\u003e\n\u003cp\u003eMake deep moisture a simple part of your everyday routine. Your haircare ritual just got an upgrade.\u003c\/p\u003e\n\u003ca href=\"\/products\/portable-rechargeable-hair-steamer\" class=\"zp-steamer-button\"\u003e Shop Hair Steamer \u003cspan\u003e→\u003c\/span\u003e \u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":67618827337837,"sku":null,"price":599.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0840\/6217\/5341\/files\/ZenPulseCordlessStylingCollection.png?v=1791378062","url":"https:\/\/zenpulse.co.za\/products\/portable-rechargeable-hair-steamer","provider":"My Store","version":"1.0","type":"link"}