{"title":"Afloria Products","description":null,"products":[{"product_id":"afloria-luxflush-toilet-wand","title":"Afloria LuxFlush Toilet Wand with 12 refills","description":"\u003cp\u003e\u003cmeta charset=\"UTF-8\"\u003e \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e \u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:wght@500;600\u0026amp;family=Inter:wght@400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n    .afloria-section, .afloria-section * { box-sizing: border-box; margin: 0; padding: 0; }\n\n    .afloria-section {\n      font-family: 'Inter', Arial, sans-serif;\n      background: linear-gradient(135deg, #efe5d6 0%, #e7dac7 100%);\n      padding: 24px;\n      display: flex;\n      justify-content: center;\n    }\n\n    .afloria-product-card {\n      max-width: 1100px;\n      width: 100%;\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      background: rgba(248,244,238,0.96);\n      border-radius: 34px;\n      overflow: hidden;\n      box-shadow: 0 25px 70px rgba(40,32,20,0.08);\n    }\n\n    .afloria-product-visual {\n      position: relative;\n      min-height: 420px;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      background: radial-gradient(circle at center, #f5ecdf, #e5d5bf);\n      overflow: hidden;\n    }\n\n    .afloria-wave {\n      position: absolute;\n      inset: 0;\n      background: linear-gradient(120deg, transparent 10%, rgba(255,255,255,0.22) 40%, transparent 70%);\n      background-size: 200% 100%;\n      animation: waveMove 7s linear infinite;\n    }\n\n    .afloria-ring {\n      position: absolute;\n      border: 1px solid rgba(180,140,80,0.25);\n      border-radius: 50%;\n      animation: ringPulse 6s ease-in-out infinite;\n    }\n    .afloria-ring.one { width: 170px; height: 170px; }\n    .afloria-ring.two { width: 260px; height: 260px; animation-delay: 1.5s; }\n\n    .afloria-dot {\n      position: absolute;\n      color: #b58a52;\n      font-size: 18px;\n      animation: sparkle 3s ease-in-out infinite;\n    }\n    .afloria-dot.one { top: 24%; left: 32%; }\n    .afloria-dot.two { right: 28%; top: 58%; animation-delay: 1s; }\n    .afloria-dot.three { left: 42%; bottom: 24%; animation-delay: 2s; }\n\n    .afloria-brush-wrap {\n      position: relative;\n      width: 120px;\n      height: 280px;\n      animation: floatBrush 5s ease-in-out infinite;\n      z-index: 2;\n    }\n\n    .afloria-brush-handle {\n      position:absolute;\n      left:50%;\n      transform:translateX(-50%);\n      width:18px;\n      height:200px;\n      border-radius:12px;\n      background: linear-gradient(180deg,#ffffff,#d9d9d9);\n      box-shadow: 0 8px 20px rgba(0,0,0,0.08);\n    }\n\n    .afloria-brush-head {\n      position:absolute;\n      bottom:34px;\n      left:50%;\n      transform:translateX(-50%);\n      width:34px;\n      height:18px;\n      border-radius: 12px;\n      background: linear-gradient(180deg,#7fb5d6,#5e9fc8);\n    }\n\n    .afloria-brush-holder {\n      position:absolute;\n      bottom:0;\n      left:50%;\n      transform:translateX(-50%);\n      width:70px;\n      height:58px;\n      border-radius:18px;\n      background: rgba(255,255,255,0.28);\n      border:1px solid rgba(255,255,255,0.45);\n      backdrop-filter: blur(6px);\n    }\n\n    .afloria-brush-shine {\n      position:absolute;\n      top:0;\n      left:50%;\n      transform:translateX(-50%);\n      width:24px;\n      height:220px;\n      background: linear-gradient(180deg, transparent, rgba(255,255,255,0.75), transparent);\n      background-size:100% 220%;\n      animation: brushShine 3.5s linear infinite;\n      z-index:3;\n      pointer-events:none;\n    }\n\n    .afloria-content { padding: 60px 52px; }\n\n    h1 {\n      font-family: 'Cormorant Garamond', serif;\n      letter-spacing: 0.5px;\n      font-size: 42px;\n      line-height: 1.1;\n      margin-bottom: 18px;\n      font-weight: 600;\n      background: linear-gradient(90deg, #7a5a34 0%, #d6b17c 50%, #7a5a34 100%);\n      background-size: 220% auto;\n      -webkit-background-clip: text;\n      -webkit-text-fill-color: transparent;\n      animation: titleShine 4s linear infinite;\n    }\n\n    .afloria-description {\n      color: #5f5a52;\n      font-size: 17px;\n      line-height: 1.7;\n      margin-bottom: 28px;\n    }\n\n    .afloria-features {\n      display: grid;\n      gap: 14px;\n      margin-bottom: 28px;\n    }\n\n    .afloria-feature {\n      position: relative;\n      display: flex;\n      align-items: center;\n      gap: 12px;\n      padding: 16px 18px;\n      border-radius: 18px;\n      background: #eceef1;\n      color: #3d434a;\n      font-size: 15px;\n      box-shadow: 0 8px 18px rgba(0,0,0,0.03);\n      overflow: hidden;\n      opacity: 0;\n      transform: translateY(16px);\n      animation: fadeInUp .6s forwards;\n    }\n\n    .afloria-feature::before {\n      content: '';\n      position: absolute;\n      inset: 0;\n      padding: 1px;\n      border-radius: 18px;\n      background: linear-gradient(90deg, transparent, rgba(212,175,85,0.95), transparent);\n      background-size: 220% 100%;\n      animation: borderShine 4s linear infinite;\n      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n      -webkit-mask-composite: xor;\n      mask-composite: exclude;\n      pointer-events: none;\n    }\n\n    .afloria-feature:nth-child(1){animation-delay:.1s}\n    .afloria-feature:nth-child(2){animation-delay:.2s}\n    .afloria-feature:nth-child(3){animation-delay:.3s}\n    .afloria-feature:nth-child(4){animation-delay:.4s}\n    .afloria-feature:nth-child(5){animation-delay:.5s}\n    .afloria-feature:nth-child(6){animation-delay:.6s}\n\n    .afloria-icon { font-size: 18px; }\n\n    .afloria-details {\n      background: #f5efe7;\n      border: 1px solid rgba(180,140,80,0.25);\n      border-radius: 18px;\n      padding: 18px;\n      margin-bottom: 22px;\n      color: #4d4a45;\n    }\n\n    .afloria-detail-item + .afloria-detail-item { margin-top: 8px; }\n\n    .afloria-cta {\n      position: relative;\n      overflow: hidden;\n      display: inline-block;\n      padding: 15px 32px;\n      border-radius: 16px;\n      text-decoration: none;\n      color: #fff;\n      font-weight: 700;\n      background: linear-gradient(135deg, #a97d49, #7a5a34);\n        }\n\n    .afloria-cta::before {\n      content:'';\n      position:absolute;\n      inset:0;\n      background: linear-gradient(120deg, transparent 25%, rgba(255,255,255,0.35) 50%, transparent 75%);\n      background-size: 220% 100%;\n      animation: buttonShine 3.5s linear infinite;\n    }\n\n    .afloria-cta span {\n      position: relative;\n      z-index: 2;\n    }\n\n    @keyframes waveMove { from { background-position: 200% 0; } to { background-position: -200% 0; } }\n    @keyframes floatBrush { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }\n    @keyframes brushShine { from { background-position: 0 -220%; } to { background-position: 0 220%; } }\n    @keyframes ringPulse { 0%,100% { transform: scale(.96); opacity:.4; } 50% { transform: scale(1.05); opacity:.8; } }\n    @keyframes sparkle { 0%,100% { opacity:.35; transform: scale(1); } 50% { opacity:1; transform: scale(1.15); } }\n    @keyframes titleShine { from { background-position: 200% center; } to { background-position: -200% center; } }\n    @keyframes borderShine { from { background-position: 200% 0; } to { background-position: -200% 0; } }\n    @keyframes fadeInUp { to { opacity:1; transform: translateY(0); } }\n    @keyframes buttonShine { from { background-position: 200% 0; } to { background-position: -200% 0; } }\n\n    @media (max-width: 820px) {\n      .afloria-product-card { grid-template-columns: 1fr; }\n      .afloria-content { padding: 34px 26px; }\n      h1 { font-size: 32px; }\n      .afloria-product-visual { min-height: 260px; }\n    }\n  \u003c\/style\u003e\n\u003cdiv class=\"afloria-section\"\u003e\n\u003csection class=\"afloria-product-card\"\u003e\n\u003cdiv class=\"afloria-product-visual\"\u003e\n\u003cdiv class=\"afloria-wave\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-ring one\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-ring two\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-dot one\"\u003e✦\u003c\/div\u003e\n\u003cdiv class=\"afloria-dot two\"\u003e✧\u003c\/div\u003e\n\u003cdiv class=\"afloria-dot three\"\u003e✦\u003c\/div\u003e\n\u003cdiv class=\"afloria-brush-wrap\"\u003e\n\u003cdiv class=\"afloria-brush-shine\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-brush-handle\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-brush-head\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-brush-holder\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"afloria-content\"\u003e\n\u003ch1\u003eElegant Toilet Cleaning System\u003c\/h1\u003e\n\u003cp class=\"afloria-description\"\u003e✨ Designed to keep hands away from mess while bringing a refined touch to everyday bathroom cleaning.\u003c\/p\u003e\n\u003cdiv class=\"afloria-features\"\u003e\n\u003cdiv class=\"afloria-feature\"\u003e\n\u003cspan class=\"afloria-icon\"\u003e💎\u003c\/span\u003e Sleek design that suits any bathroom\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e\n\u003cspan class=\"afloria-icon\"\u003e🧼\u003c\/span\u003e Hygienic no-touch replacement system\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e\n\u003cspan class=\"afloria-icon\"\u003e🤍\u003c\/span\u003e Ergonomic handle for a comfortable grip\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e\n\u003cspan class=\"afloria-icon\"\u003e✨\u003c\/span\u003e Storage holder for a tidy finish\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e\n\u003cspan class=\"afloria-icon\"\u003e🛡️\u003c\/span\u003e Keeps hands safely away from germs\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e\n\u003cspan class=\"afloria-icon\"\u003e🌿\u003c\/span\u003e Made for simple daily cleaning\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"afloria-details\"\u003e\n\u003cdiv class=\"afloria-detail-item\"\u003e📏 Brush size: \u003cstrong\u003e40cm × 5.5cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"afloria-detail-item\"\u003e📏 Holder size: \u003cstrong\u003e17.6cm × 10cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ca class=\"afloria-cta\" href=\"#\"\u003e\u003cspan\u003eShop Collection\u003c\/span\u003e\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":48322804285689,"sku":null,"price":299.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Luxflushbranding.png?v=1777118134"},{"product_id":"afloria-luxflush-refills","title":"Afloria LuxFlush Refills - 12 PCS","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"afloria-heads-section\"\u003e\n\u003cdiv class=\"afloria-heads-hero\"\u003e\n\u003cdiv class=\"afloria-stick\"\u003e\n\u003cdiv class=\"afloria-head\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"afloria-sparkle\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch2 class=\"afloria-title\"\u003eLuxFlush Refills\u003c\/h2\u003e\n\u003cp class=\"afloria-subtext\"\u003eEnjoy a fresher, more hygienic clean with refill heads designed to make bathroom care feel effortless.\u003c\/p\u003e\n\u003cdiv class=\"afloria-features\"\u003e\n\u003cdiv class=\"afloria-feature\"\u003e✨ Affordable disposable design\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e🧼 Easy snap-on fit\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e🛡️ Helps reduce direct contact with germs\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e🎨 Available in Blue, Yellow \u0026amp; Purple\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"afloria-specs\"\u003e\u003cspan\u003eSize: 1.3cm × 6cm\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.afloria-heads-section{\n  background:#f4eadc;\n  border-radius:28px;\n  padding:35px 25px;\n  text-align:center;\n  font-family:'Manrope',sans-serif;\n  max-width:900px;\n  margin:auto;\n  box-shadow:0 12px 30px rgba(0,0,0,0.04);\n}\n\n.afloria-heads-hero{\n  height:180px;\n  position:relative;\n  margin-bottom:25px;\n  overflow:hidden;\n}\n\n.afloria-stick{\n  width:12px;\n  height:120px;\n  background:linear-gradient(to bottom,#d7d7d7,#f9f9f9);\n  border-radius:12px;\n  position:absolute;\n  left:50%;\n  top:12px;\n  transform-origin:bottom center;\n  animation:brushMove 7s ease-in-out infinite;\n}\n\n.afloria-head{\n  width:42px;\n  height:28px;\n  border-radius:14px;\n  position:absolute;\n  left:50%;\n  transform:translateX(-50%);\n  box-shadow:0 8px 16px rgba(0,0,0,0.08);\n  animation:\n    snapOn 7s ease-in-out infinite,\n    headColor 6s ease-in-out infinite;\n}\n\n.afloria-sparkle{\n  position:absolute;\n  left:50%;\n  bottom:-2px;\n  width:20px;\n  height:20px;\n  transform:translateX(-50%);\n  opacity:0;\n  animation:sparkleSnap 7s ease-in-out infinite;\n}\n\n.afloria-sparkle::before,\n.afloria-sparkle::after{\n  content:'';\n  position:absolute;\n  background:rgba(255,255,255,0.95);\n  border-radius:2px;\n}\n\n.afloria-sparkle::before{\n  width:2px;\n  height:18px;\n  left:9px;\n  top:1px;\n}\n\n.afloria-sparkle::after{\n  width:18px;\n  height:2px;\n  left:1px;\n  top:9px;\n}\n\n.afloria-title{\n  font-family:'Playfair Display',serif;\n  font-size:42px;\n  margin-bottom:14px;\n  animation:titleGlow 6s ease-in-out infinite;\n}\n\n.afloria-subtext{\n  color:#5d564d;\n  font-size:16px;\n  line-height:1.7;\n  max-width:620px;\n  margin:0 auto 25px;\n}\n\n.afloria-features{\n  display:grid;\n  gap:14px;\n}\n\n.afloria-feature{\n  background:#eceef1;\n  padding:16px;\n  border-radius:18px;\n  color:#4d4942;\n  border:1px solid rgba(176,138,92,0.22);\n  font-family:'Manrope',sans-serif;\n  font-weight:500;\n}\n\n.afloria-specs{\n  margin-top:22px;\n  color:#7a5a34;\n  font-weight:600;\n  font-family:'Manrope',sans-serif;\n}\n\n@keyframes snapOn{\n  0%{bottom:-55px;opacity:0;}\n  15%{bottom:-35px;opacity:1;}\n  25%{bottom:-14px;opacity:1;}\n  100%{bottom:-14px;opacity:1;}\n}\n\n@keyframes brushMove{\n  0%,25%,100%{\n    transform:translateX(-50%) rotate(0deg);\n  }\n  40%{\n    transform:translateX(-50%) rotate(-10deg);\n  }\n  55%{\n    transform:translateX(-50%) rotate(12deg);\n  }\n  70%{\n    transform:translateX(-50%) rotate(-8deg);\n  }\n  85%{\n    transform:translateX(-50%) rotate(8deg);\n  }\n}\n\n@keyframes sparkleSnap{\n  0%,20%,100%{\n    opacity:0;\n    transform:translateX(-50%) scale(0.5);\n  }\n  25%{\n    opacity:1;\n    transform:translateX(-50%) scale(1.2);\n  }\n  30%{\n    opacity:0;\n    transform:translateX(-50%) scale(1.8);\n  }\n}\n\n@keyframes headColor{\n  0%,100%{background:#6aa9d8;}\n  33%{background:#d8c04f;}\n  66%{background:#9f74cb;}\n}\n\n@keyframes titleGlow{\n  0%,100%{\n    color:#6aa9d8;\n    text-shadow:0 0 12px rgba(106,169,216,0.25);\n  }\n  33%{\n    color:#c7ab45;\n    text-shadow:0 0 12px rgba(215,192,79,0.25);\n  }\n  66%{\n    color:#8f69ba;\n    text-shadow:0 0 12px rgba(157,114,200,0.25);\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Blue","offer_id":48373324677369,"sku":null,"price":95.0,"currency_code":"ZAR","in_stock":true},{"title":"Yellow","offer_id":48373324710137,"sku":null,"price":95.0,"currency_code":"ZAR","in_stock":true},{"title":"Purple","offer_id":48373324742905,"sku":null,"price":95.0,"currency_code":"ZAR","in_stock":true},{"title":"Mixed","offer_id":48373324775673,"sku":null,"price":95.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_up4rmpup4rmpup4r.png?v=1777235084"},{"product_id":"afloria-flowguard-drain-catcher","title":"Afloria FlowGuard- Drain Hair Catcher","description":"\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@600\u0026amp;family=Manrope:wght@400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cdiv class=\"afloria-drain-section\"\u003e\n  \u003cdiv class=\"afloria-drain-hero\"\u003e\n    \u003cdiv class=\"drain-scene\"\u003e\n      \u003cdiv class=\"water-stream water1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"water-stream water2\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"hair hair1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"hair hair2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"hair hair3\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"drain-ring\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"silicone-catcher\"\u003e\n        \u003cspan\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"soft-glow\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003ch2 class=\"afloria-drain-title\"\u003eDrain Hair Catcher\u003c\/h2\u003e\n\n  \u003cp class=\"afloria-drain-subtext\"\u003e\n    Keep your shower cleaner and protect your drains from unwanted blockages with a sleek catch system designed for everyday convenience.\n  \u003c\/p\u003e\n\n  \u003cdiv class=\"afloria-drain-features\"\u003e\n    \u003cdiv class=\"afloria-drain-feature\"\u003e🖤 Flexible durable design\u003c\/div\u003e\n    \u003cdiv class=\"afloria-drain-feature\"\u003e✨ Helps catch loose hair\u003c\/div\u003e\n    \u003cdiv class=\"afloria-drain-feature\"\u003e🧼 Easy to lift and rinse clean\u003c\/div\u003e\n    \u003cdiv class=\"afloria-drain-feature\"\u003e🚿 Fits most standard shower drains\u003c\/div\u003e\n    \u003cdiv class=\"afloria-drain-feature\"\u003e📏 Size: 14.5cm × 14.5cm\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-drain-section{\n  background:#e7e8ea;\n  border-radius:28px;\n  padding:35px 24px;\n  text-align:center;\n  max-width:900px;\n  margin:auto;\n  font-family:'Manrope',sans-serif;\n}\n\n.afloria-drain-hero{\n  height:220px;\n  display:flex;\n  justify-content:center;\n  align-items:center;\n  margin-bottom:20px;\n}\n\n.drain-scene{\n  width:180px;\n  height:180px;\n  position:relative;\n}\n\n.drain-ring{\n  width:120px;\n  height:120px;\n  border-radius:50%;\n  background:radial-gradient(circle,#b8bcc2,#9ea3aa);\n  position:absolute;\n  left:50%;\n  top:50%;\n  transform:translate(-50%,-50%);\n  box-shadow:inset 0 6px 12px rgba(255,255,255,.25);\n}\n\n.water-stream{\n  position:absolute;\n  width:6px;\n  height:60px;\n  background:rgba(255,255,255,.35);\n  border-radius:20px;\n  top:-20px;\n  animation:waterFlow 3s linear infinite;\n}\n\n.water1{ left:75px; }\n.water2{ left:98px; animation-delay:1s; }\n\n.hair{\n  position:absolute;\n  width:2px;\n  height:36px;\n  background:#444;\n  border-radius:20px;\n  top:20px;\n  opacity:0;\n  animation:hairDrop 5s ease-in-out infinite;\n}\n\n.hair1{ left:82px; }\n.hair2{ left:92px; animation-delay:.4s; }\n.hair3{ left:102px; animation-delay:.8s; }\n\n.silicone-catcher{\n  width:110px;\n  height:110px;\n  background:#1e1e20;\n  border-radius:30px;\n  position:absolute;\n  left:50%;\n  top:50%;\n  transform:translate(-50%,80%) rotate(-12deg);\n  animation:catcherPlace 5s ease-in-out infinite;\n  display:flex;\n  flex-wrap:wrap;\n  justify-content:center;\n  align-content:center;\n  gap:10px;\n  padding:18px;\n}\n\n.silicone-catcher span{\n  width:10px;\n  height:10px;\n  background:#555;\n  border-radius:50%;\n}\n\n.soft-glow{\n  position:absolute;\n  inset:0;\n  border-radius:50%;\n  animation:glowPulse 5s ease-in-out infinite;\n}\n\n.afloria-drain-title{\n  font-family:'Playfair Display',serif;\n  font-size:38px;\n  margin-bottom:14px;\n  animation:titleShine 5s ease-in-out infinite;\n}\n\n.afloria-drain-subtext{\n  color:#5d6064;\n  font-size:16px;\n  line-height:1.7;\n  max-width:650px;\n  margin:0 auto 24px;\n}\n\n.afloria-drain-features{\n  display:grid;\n  gap:14px;\n}\n\n.afloria-drain-feature{\n  background:#f3f4f5;\n  padding:16px;\n  border-radius:18px;\n  border:1px solid rgba(176,138,92,.15);\n  color:#4a4c50;\n  font-weight:500;\n}\n\n@keyframes waterFlow{\n  0%{top:-30px;opacity:0;}\n  20%{opacity:1;}\n  100%{top:130px;opacity:0;}\n}\n\n@keyframes hairDrop{\n  0%,20%{top:15px;opacity:0;}\n  35%{top:72px;opacity:1;}\n  60%,100%{top:72px;opacity:0;}\n}\n\n@keyframes catcherPlace{\n  0%,15%{\n    transform:translate(-50%,80%) rotate(-12deg);\n  }\n  30%,100%{\n    transform:translate(-50%,-50%) rotate(0deg);\n  }\n}\n\n@keyframes glowPulse{\n  0%,30%,100%{\n    box-shadow:0 0 0 rgba(212,180,108,0);\n  }\n  45%{\n    box-shadow:0 0 26px rgba(212,180,108,.25);\n  }\n}\n\n@keyframes titleShine{\n  0%,100%{\n    color:#3f4246;\n  }\n  50%{\n    color:#8d6b3f;\n    text-shadow:0 0 10px rgba(212,180,108,.25);\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48325971050745,"sku":null,"price":89.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_yd407tyd407tyd40.png?v=1777281379"},{"product_id":"afloria-flownest-hair-catcher","title":"Afloria FlowNest- Wall Hair Catcher","description":"\u003ch2 class=\"afloria-flow-title\"\u003eWall Hair Catcher\u003c\/h2\u003e\n\u003cp class=\"afloria-flow-text\"\u003eMaintain a cleaner, more organised shower space with a discreet solution that keeps loose hair neatly contained.\u003c\/p\u003e\n\u003cdiv class=\"afloria-flow-features\"\u003e\n\u003cdiv class=\"afloria-feature\"\u003e🤍 Compact wall-mounted design\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e🛡 Strong adhesive backing\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e♻️ Reusable durable material\u003c\/div\u003e\n\u003cdiv class=\"afloria-feature\"\u003e🧼 Easy to remove and clean\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-flow-section{\n  background:#e8e9eb;\n  border-radius:28px;\n  padding:36px 22px;\n  text-align:center;\n  max-width:900px;\n  margin:auto;\n  font-family:'Manrope',sans-serif;\n}\n\n.afloria-flow-demo{\n  display:flex;\n  justify-content:center;\n  margin-bottom:24px;\n}\n\n.flow-wall{\n  width:240px;\n  height:220px;\n  border-radius:24px;\n  background:linear-gradient(145deg,#f5f5f6,#dde0e3);\n  position:relative;\n  overflow:hidden;\n}\n\n.flow-zone{\n  position:absolute;\n  bottom:35px;\n  left:50%;\n  transform:translateX(-50%);\n  width:90px;\n  height:18px;\n  border-radius:18px;\n  background:rgba(255,255,255,.8);\n  box-shadow:0 0 18px rgba(184,137,77,.15);\n}\n\n.water-ring{\n  position:absolute;\n  bottom:26px;\n  left:50%;\n  width:70px;\n  height:70px;\n  margin-left:-35px;\n  border:2px solid rgba(255,255,255,.5);\n  border-radius:50%;\n  animation:ripple 3s ease-out infinite;\n}\n\n.hair{\n  position:absolute;\n  width:24px;\n  height:2px;\n  background:#555;\n  border-radius:20px;\n  left:50%;\n  margin-left:-12px;\n  opacity:0;\n}\n\n.h1{ animation:fallHair 3s infinite; }\n.h2{ animation:fallHair 3s infinite .6s; }\n.h3{ animation:fallHair 3s infinite 1.2s; }\n\n.afloria-flow-title{\n  font-family:'Playfair Display',serif;\n  font-size:38px;\n  margin-bottom:14px;\n  animation:titleGlow 4s ease-in-out infinite;\n}\n\n.afloria-flow-text{\n  color:#5d6064;\n  font-size:16px;\n  line-height:1.7;\n  max-width:620px;\n  margin:0 auto 24px;\n}\n\n.afloria-flow-features{\n  display:grid;\n  gap:14px;\n}\n\n.afloria-feature{\n  background:#f4f5f6;\n  padding:16px;\n  border-radius:18px;\n  border:1px solid rgba(176,138,92,.12);\n  color:#4b4d50;\n  font-weight:500;\n}\n\n@keyframes fallHair{\n  0%{\n    top:25px;\n    opacity:0;\n    transform:translateX(0);\n  }\n  20%{\n    opacity:1;\n  }\n  60%{\n    top:135px;\n    opacity:1;\n    transform:translateX(-18px);\n  }\n  80%{\n    top:155px;\n    opacity:.4;\n    transform:translateX(0);\n  }\n  100%{\n    top:165px;\n    opacity:0;\n  }\n}\n\n@keyframes ripple{\n  0%{\n    transform:translateX(-50%) scale(.6);\n    opacity:.6;\n  }\n  100%{\n    transform:translateX(-50%) scale(1.5);\n    opacity:0;\n  }\n}\n\n@keyframes titleGlow{\n  0%,100%{\n    color:#4d5258;\n  }\n  50%{\n    color:#b8894d;\n    text-shadow:0 0 10px rgba(184,137,77,.18);\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48326002278649,"sku":null,"price":189.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_uxjkkeuxjkkeuxjk.png?v=1777283541"},{"product_id":"flow-collection-absolute-draincare","title":"Flow collection-Absolute Draincare","description":"\u003cdiv class=\"afloria-flow-bundle\"\u003e\n  \u003cdiv class=\"flow-visual\"\u003e\n\n    \u003cdiv class=\"wall-wrapper\"\u003e\n      \u003cdiv class=\"wall-catcher\"\u003e\n        \u003cdiv class=\"wall-grid\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bundle-plus\"\u003e+\u003c\/div\u003e\n\n    \u003cdiv class=\"drain-wrapper\"\u003e\n      \u003cdiv class=\"drain-catcher\"\u003e\n        \u003cdiv class=\"drain-grid\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"flow-content\"\u003e\n    \u003cspan class=\"bundle-tag\"\u003eComplete Set\u003c\/span\u003e\n    \u003ch2\u003eFlow Collection\u003c\/h2\u003e\n    \u003cdiv class=\"bundle-subtitle\"\u003eAbsolute Drain Care\u003c\/div\u003e\n    \u003cdiv class=\"bundle-price\"\u003eR260\u003c\/div\u003e\n\n    \u003cp\u003eCreate a cleaner bathroom routine with a complete drainage care solution in one set.\u003c\/p\u003e\n\n    \u003cul\u003e\n      \u003cli\u003eIncludes drain catcher\u003c\/li\u003e\n      \u003cli\u003eIncludes wall-mounted catcher\u003c\/li\u003e\n      \u003cli\u003eEasy-clean materials\u003c\/li\u003e\n      \u003cli\u003eSuitable for daily use\u003c\/li\u003e\n      \u003cli\u003eDesigned for modern bathrooms\u003c\/li\u003e\n    \u003c\/ul\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-flow-bundle{\n  max-width:1100px;\n  margin:50px auto;\n  padding:50px 28px;\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:40px;\n  align-items:center;\n  background:#f7f7f5;\n  border-radius:28px;\n  box-shadow:0 20px 45px rgba(0,0,0,.08);\n  font-family:'Inter',sans-serif;\n}\n\n.flow-visual{\n  position:relative;\n  height:400px;\n}\n\n.wall-wrapper{\n  position:absolute;\n  left:30px;\n  top:40px;\n  opacity:0;\n  animation:enterLeft 1.4s ease forwards;\n}\n\n.drain-wrapper{\n  position:absolute;\n  right:30px;\n  bottom:40px;\n  opacity:0;\n  animation:enterRight 1.4s ease forwards;\n}\n\n\/* GOLD PLUS *\/\n.bundle-plus{\n  position:absolute;\n  top:50%;\n  left:50%;\n  transform:translate(-50%,-50%);\n  font-size:42px;\n  font-weight:300;\n  color:#c69a54;\n  text-shadow:\n    0 0 8px rgba(198,154,84,.35),\n    0 0 18px rgba(198,154,84,.25);\n  opacity:0;\n  animation:plusGlow 2s ease forwards 1s,\n            pulsePlus 2.8s ease-in-out infinite 2s;\n}\n\n.wall-catcher{\n  width:130px;\n  height:210px;\n  border-radius:28px;\n  background:linear-gradient(145deg,#d8dadd,#fafafa);\n  box-shadow:\n    inset 0 4px 8px rgba(255,255,255,.8),\n    0 18px 30px rgba(0,0,0,.12);\n  animation:floatWall 5s ease-in-out infinite;\n  animation-delay:1.4s;\n}\n\n.wall-grid{\n  position:absolute;\n  inset:26px;\n  border-radius:18px;\n  background:\n    repeating-linear-gradient(\n      0deg,\n      transparent,\n      transparent 8px,\n      rgba(120,125,132,.15) 8px,\n      rgba(120,125,132,.15) 10px\n    );\n}\n\n.drain-catcher{\n  width:140px;\n  height:140px;\n  border-radius:22px;\n  background:linear-gradient(145deg,#111,#2c2c2c);\n  box-shadow:\n    inset 0 4px 8px rgba(255,255,255,.08),\n    0 18px 30px rgba(0,0,0,.25);\n  animation:floatDrain 5s ease-in-out infinite;\n  animation-delay:1.5s;\n}\n\n.drain-grid{\n  position:absolute;\n  inset:18px;\n  border-radius:14px;\n  background:\n    repeating-linear-gradient(\n      90deg,\n      transparent,\n      transparent 10px,\n      rgba(255,255,255,.08) 10px,\n      rgba(255,255,255,.08) 12px\n    ),\n    repeating-linear-gradient(\n      0deg,\n      transparent,\n      transparent 10px,\n      rgba(255,255,255,.08) 10px,\n      rgba(255,255,255,.08) 12px\n    );\n}\n\n.flow-content{\n  opacity:0;\n  animation:textRise 1.1s ease forwards .7s;\n}\n\n.bundle-tag{\n  color:#b8894d;\n  font-size:12px;\n  text-transform:uppercase;\n  letter-spacing:.08em;\n  font-weight:600;\n}\n\n.flow-content h2{\n  font-family:'Cormorant Garamond',serif;\n  font-size:50px;\n  margin:10px 0 4px;\n  background:linear-gradient(90deg,#b8894d,#e5c17a,#2f3338,#b8894d);\n  background-size:250% auto;\n  -webkit-background-clip:text;\n  -webkit-text-fill-color:transparent;\n  animation:goldSweep 4s linear infinite;\n}\n\n.bundle-subtitle{\n  font-size:14px;\n  color:#6c7278;\n  text-transform:uppercase;\n  letter-spacing:.08em;\n  margin-bottom:10px;\n}\n\n.bundle-price{\n  font-size:28px;\n  color:#b8894d;\n  font-weight:600;\n  margin-bottom:20px;\n}\n\n.flow-content p{\n  color:#666d74;\n  line-height:1.7;\n  margin-bottom:22px;\n}\n\n.flow-content ul{\n  list-style:none;\n  padding:0;\n  margin:0 0 24px;\n}\n\n.flow-content li{\n  margin-bottom:10px;\n  padding-left:22px;\n  position:relative;\n}\n\n.flow-content li:before{\n  content:'✓';\n  position:absolute;\n  left:0;\n  color:#b8894d;\n}\n\n.bundle-button{\n  display:inline-block;\n  padding:16px 30px;\n  border-radius:16px;\n  text-decoration:none;\n  color:#fff;\n  background:linear-gradient(135deg,#8f9399,#5d636a);\n  font-weight:600;\n}\n\n@keyframes enterLeft{\n  from{transform:translateX(-220px);opacity:0;}\n  to{transform:translateX(0);opacity:1;}\n}\n\n@keyframes enterRight{\n  from{transform:translateX(220px);opacity:0;}\n  to{transform:translateX(0);opacity:1;}\n}\n\n@keyframes textRise{\n  from{transform:translateY(60px);opacity:0;}\n  to{transform:translateY(0);opacity:1;}\n}\n\n@keyframes floatWall{\n  0%,100%{transform:translateY(0);}\n  50%{transform:translateY(-8px);}\n}\n\n@keyframes floatDrain{\n  0%,100%{transform:translateY(0);}\n  50%{transform:translateY(-10px);}\n}\n\n@keyframes goldSweep{\n  from{background-position:0% center;}\n  to{background-position:250% center;}\n}\n\n@keyframes plusGlow{\n  from{opacity:0;transform:translate(-50%,-50%) scale(.6);}\n  to{opacity:1;transform:translate(-50%,-50%) scale(1);}\n}\n\n@keyframes pulsePlus{\n  0%,100%{transform:translate(-50%,-50%) scale(1);}\n  50%{transform:translate(-50%,-50%) scale(1.08);}\n}\n\n@media(max-width:768px){\n  .afloria-flow-bundle{\n    grid-template-columns:1fr;\n    text-align:center;\n  }\n\n  .flow-visual{\n    height:260px;\n  }\n\n  .wall-wrapper{\n    left:18%;\n    top:10px;\n  }\n\n  .drain-wrapper{\n    right:18%;\n    bottom:10px;\n  }\n\n  .wall-catcher{\n    width:90px;\n    height:145px;\n  }\n\n  .drain-catcher{\n    width:95px;\n    height:95px;\n  }\n\n  .bundle-plus{\n    font-size:30px;\n  }\n\n  .flow-content h2{\n    font-size:38px;\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48326807879929,"sku":null,"price":260.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/rn-image_picker_lib_temp_cb0b5766-4cc4-4bc6-a951-7de2a0346481.png?v=1777441340"},{"product_id":"afloria-groom-guard-beard-cap","title":"Afloria Groom guard - Beard cap","description":"\u003cdiv class=\"groom-content\"\u003e\n\u003cspan class=\"product-tag\"\u003eGrooming Essential\u003c\/span\u003e\n\u003ch2\u003eGroomGuard\u003c\/h2\u003e\n\u003cdiv class=\"subtitle\"\u003eShaving Cape\u003c\/div\u003e\n\u003cp\u003eEnjoy a cleaner, more refined grooming routine without leaving loose hair around your sink.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLightweight waterproof material\u003c\/li\u003e\n\u003cli\u003eWide coverage design\u003c\/li\u003e\n\u003cli\u003eEasy fold-away storage\u003c\/li\u003e\n\u003cli\u003eSize: 75.5cm × 110cm\u003c\/li\u003e\n\u003cli\u003eIncludes 2 suction cups\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48330618700025,"sku":null,"price":199.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Beardcap.png?v=1777380679"},{"product_id":"oralpods-toothbrush-holders-2pieces","title":"Oralpods- Toothbrush holders (2pieces)","description":"\u003cdiv class=\"afloria-pods-section\"\u003e\n  \u003cdiv class=\"pods-heading\"\u003e\n    \u003cspan class=\"pods-tag\"\u003eAfloria OralPods\u003c\/span\u003e\n    \u003ch2\u003eProtection for everyday \u003c\/h2\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"pods-grid\"\u003e\n\n    \u003cdiv class=\"pods-card\"\u003e\n      \u003cdiv class=\"pods-cover\"\u003e\n        \u003cspan\u003eSpecifications\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"pods-content\"\u003e\n        \u003cul class=\"spec-list\"\u003e\n          \u003cli\u003e\n\u003cstrong\u003eSize\u003c\/strong\u003e\u003cspan\u003e2.6cm × 3cm × 4.4cm\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eColour\u003c\/strong\u003e\u003cspan\u003eWhite with transparent grey cover\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eIncludes\u003c\/strong\u003e\u003cspan\u003e2 protective holders\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eMounting\u003c\/strong\u003e\u003cspan\u003eNo drilling required\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"pods-card\"\u003e\n      \u003cdiv class=\"pods-cover\"\u003e\n        \u003cspan\u003eBenefits\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"pods-content\"\u003e\n        \u003cul class=\"benefit-list\"\u003e\n          \u003cli\u003eKeeps toothbrush heads protected\u003c\/li\u003e\n          \u003cli\u003eReduces airborne exposure\u003c\/li\u003e\n          \u003cli\u003ePrevents brushes touching\u003c\/li\u003e\n          \u003cli\u003eCleaner countertop appearance\u003c\/li\u003e\n          \u003cli\u003eKeeps brushes protected while travelling\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-pods-section{\n  max-width:1000px;\n  margin:0 auto;\n  padding:20px;\n  font-family:'Inter',sans-serif;\n}\n\n.pods-heading{\n  text-align:center;\n  margin-bottom:35px;\n}\n\n.pods-tag{\n  color:#b8894d;\n  text-transform:uppercase;\n  letter-spacing:.14em;\n  font-size:12px;\n  font-weight:600;\n}\n\n.pods-heading h2{\n  font-family:'Cormorant Garamond',serif;\n  font-size:48px;\n  margin:10px 0 0;\n  color:#3e4348;\n}\n\n.pods-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:28px;\n}\n\n.pods-card{\n  position:relative;\n  min-height:300px;\n  border-radius:28px;\n  overflow:hidden;\n  background:#faf9f7;\n  border:1px solid rgba(184,137,77,.15);\n  box-shadow:0 10px 24px rgba(0,0,0,.05);\n  cursor:pointer;\n}\n\n.pods-cover{\n  position:absolute;\n  inset:0;\n  display:flex;\n  justify-content:center;\n  align-items:center;\n  z-index:3;\n  transition:transform .75s cubic-bezier(.22,1,.36,1);\n\n  background:rgba(110,118,126,.14);\n  backdrop-filter:blur(10px);\n  -webkit-backdrop-filter:blur(10px);\n\n  border:1px solid rgba(255,255,255,.28);\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.32),\n    inset 0 -8px 18px rgba(0,0,0,.03);\n}\n\n.pods-cover::before{\n  content:'';\n  position:absolute;\n  top:14px;\n  left:14px;\n  right:14px;\n  height:34%;\n  border-radius:18px;\n  background:linear-gradient(\n    to bottom,\n    rgba(255,255,255,.24),\n    rgba(255,255,255,0)\n  );\n}\n\n.pods-cover span{\n  font-family:'Playfair Display',serif;\n  font-size:38px;\n  color:#2f3438;\n  letter-spacing:.04em;\n  text-shadow:0 2px 8px rgba(255,255,255,.18);\n}\n\n.pods-card.active .pods-cover{\n  transform:translateY(-100%);\n}\n\n.pods-content{\n  padding:34px 28px;\n}\n\n.spec-list,\n.benefit-list{\n  list-style:none;\n  padding:0;\n  margin:0;\n}\n\n.spec-list li{\n  display:flex;\n  flex-direction:column;\n  padding:14px 0;\n  border-bottom:1px solid rgba(184,137,77,.12);\n}\n\n.spec-list strong{\n  color:#b8894d;\n  font-size:13px;\n  text-transform:uppercase;\n  letter-spacing:.08em;\n  margin-bottom:4px;\n  font-weight:600;\n}\n\n.spec-list span{\n  color:#444c52;\n  font-size:17px;\n  line-height:1.5;\n  font-weight:500;\n}\n\n.benefit-list li{\n  position:relative;\n  padding-left:30px;\n  margin-bottom:18px;\n  color:#444c52;\n  font-size:17px;\n  line-height:1.6;\n  font-weight:500;\n}\n\n.benefit-list li:before{\n  content:'✦';\n  position:absolute;\n  left:0;\n  color:#b8894d;\n  font-size:16px;\n}\n\n@media(max-width:768px){\n  .pods-grid{\n    grid-template-columns:1fr;\n  }\n\n  .pods-heading h2{\n    font-size:36px;\n  }\n\n  .pods-cover span{\n    font-size:30px;\n  }\n\n  .pods-card{\n    min-height:260px;\n  }\n\n  .spec-list span,\n  .benefit-list li{\n    font-size:16px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\ndocument.querySelectorAll('.pods-card').forEach(card=\u003e{\n  card.addEventListener('click',()=\u003e{\n    card.classList.toggle('active');\n  });\n});\n\u003c\/script\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48333798965497,"sku":null,"price":110.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/rn-image_picker_lib_temp_99b9b979-f805-404b-bbb4-53ad7d06df1a.png?v=1777530670"},{"product_id":"oralpod-budget-set","title":"OralPod Core Set","description":"\u003cdiv class=\"afloria-squeezer-section\"\u003e\n  \u003cdiv class=\"squeezer-header\"\u003e\n    \u003cspan class=\"bundle-tag\"\u003eBundle Deal\u003c\/span\u003e\n    \u003ch2\u003e2 Holders + Toothpaste Squeezer\u003c\/h2\u003e\n    \u003cp\u003e\n      Bring elegance and organisation to your bathroom while making every last\n      bit of toothpaste easier to use.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"squeezer-tube\"\u003e\n    \u003cdiv class=\"tube-label\"\u003eToothpaste Squeezer Benefits\u003c\/div\u003e\n\n    \u003cdiv class=\"benefit benefit1\"\u003eReduces toothpaste waste\u003c\/div\u003e\n    \u003cdiv class=\"benefit benefit2\"\u003eGets every last bit out\u003c\/div\u003e\n    \u003cdiv class=\"benefit benefit3\"\u003eMakes squeezing effortless\u003c\/div\u003e\n    \u003cdiv class=\"benefit benefit4\"\u003eKeeps the tube neat\u003c\/div\u003e\n    \u003cdiv class=\"benefit benefit5\"\u003eCleaner sink area\u003c\/div\u003e\n    \u003cdiv class=\"benefit benefit6\"\u003eBetter daily convenience\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-squeezer-section{\n  max-width:980px;\n  margin:0 auto;\n  padding:30px 20px;\n  font-family:'Inter',sans-serif;\n}\n\n.squeezer-header{\n  text-align:center;\n  margin-bottom:40px;\n}\n\n.bundle-tag{\n  color:#b8894d;\n  text-transform:uppercase;\n  letter-spacing:.14em;\n  font-size:12px;\n  font-weight:600;\n}\n\n.squeezer-header h2{\n  font-family:'Cormorant Garamond',serif;\n  font-size:50px;\n  margin:10px 0;\n  color:#3f454b;\n  line-height:1.1;\n}\n\n.squeezer-header p{\n  max-width:640px;\n  margin:0 auto;\n  color:#5d646b;\n  font-size:17px;\n  line-height:1.8;\n}\n\n.squeezer-tube{\n  position:relative;\n  background:linear-gradient(135deg,#f7f7f5,#efefec);\n  border-radius:28px;\n  padding:36px 30px;\n  border:1px solid rgba(184,137,77,.16);\n  box-shadow:0 14px 34px rgba(0,0,0,.06);\n  overflow:hidden;\n}\n\n.squeezer-tube::before{\n  content:'';\n  position:absolute;\n  left:0;\n  top:0;\n  bottom:0;\n  width:18px;\n  background:linear-gradient(to right,#b8894d,#d8bc8c);\n  border-radius:28px 0 0 28px;\n}\n\n.tube-label{\n  font-family:'Playfair Display',serif;\n  font-size:28px;\n  color:#b8894d;\n  margin-bottom:28px;\n  padding-left:10px;\n}\n\n.benefit{\n  opacity:0;\n  transform:translateX(-40px);\n  background:rgba(255,255,255,.72);\n  backdrop-filter:blur(6px);\n  padding:16px 22px;\n  margin-bottom:14px;\n  border-radius:16px;\n  color:#43484d;\n  font-size:16px;\n  font-weight:500;\n  box-shadow:0 6px 14px rgba(0,0,0,.04);\n  animation:dispense 0.9s forwards;\n}\n\n.benefit1{animation-delay:.4s;}\n.benefit2{animation-delay:.9s;}\n.benefit3{animation-delay:1.4s;}\n.benefit4{animation-delay:1.9s;}\n.benefit5{animation-delay:2.4s;}\n.benefit6{animation-delay:2.9s;}\n\n@keyframes dispense{\n  from{\n    opacity:0;\n    transform:translateX(-50px);\n  }\n  to{\n    opacity:1;\n    transform:translateX(0);\n  }\n}\n\n@media(max-width:768px){\n  .squeezer-header h2{\n    font-size:36px;\n  }\n\n  .tube-label{\n    font-size:22px;\n  }\n\n  .benefit{\n    font-size:15px;\n    padding:14px 18px;\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48333830619385,"sku":null,"price":189.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_inyw9vinyw9vinyw_41896102-e72f-45f8-a236-4586accc3dc9.png?v=1777460220"},{"product_id":"afloria-smartflow-dispenser","title":"AFloria SmartFlow Dispenser","description":"\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"afloria-smartflow-circles\"\u003e\n\u003cdiv class=\"smartflow-header\"\u003e\n\u003cspan class=\"smartflow-tag\"\u003eAfloria SmartFlow\u003c\/span\u003e\n\u003ch2\u003eEffortless every morning\u003c\/h2\u003e\n\u003cp\u003eUpgrade your brushing routine with a sleek dispenser that delivers toothpaste with effortless convenience.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"circle-wrap\"\u003e\n\u003cdiv class=\"info-circle specs-circle\"\u003e\n\u003cdiv class=\"circle-inner\"\u003e\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 6.3 × 6 × 11.2cm\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eColour:\u003c\/strong\u003e Black \u0026amp; white\u003c\/li\u003e\n\u003cli\u003eWall-mounted design\u003c\/li\u003e\n\u003cli\u003eNo drilling required\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"info-circle benefits-circle\"\u003e\n\u003cdiv class=\"circle-inner\"\u003e\n\u003ch3\u003eBenefits\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTouch-free dispensing\u003c\/li\u003e\n\u003cli\u003eHelps reduce mess\u003c\/li\u003e\n\u003cli\u003eCleaner sink area\u003c\/li\u003e\n\u003cli\u003eModern premium finish\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ca class=\"smartflow-btn\" href=\"\/products\/smartflow-dispenser\"\u003e Shop SmartFlow \u003c\/a\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.afloria-smartflow-circles{\n  max-width:980px;\n  margin:0 auto;\n  padding:30px 20px;\n  text-align:center;\n  font-family:'Manrope',sans-serif;\n}\n\n.smartflow-tag{\n  color:#b8894d;\n  text-transform:uppercase;\n  letter-spacing:.15em;\n  font-size:12px;\n  font-weight:600;\n}\n\n.smartflow-header h2{\n  font-family:'Playfair Display',serif;\n  font-size:54px;\n  margin:12px 0 6px;\n  color:#2f3438;\n  animation:titleGlow 4s ease-in-out infinite;\n}\n\n.smartflow-price{\n  font-size:28px;\n  color:#b8894d;\n  font-weight:600;\n  margin-bottom:18px;\n}\n\n.smartflow-header p{\n  max-width:620px;\n  margin:0 auto 40px;\n  color:#5a6168;\n  line-height:1.8;\n}\n\n.circle-wrap{\n  display:flex;\n  justify-content:center;\n  gap:40px;\n  flex-wrap:wrap;\n  margin-bottom:35px;\n}\n\n.info-circle{\n  position:relative;\n  width:320px;\n  height:320px;\n  border-radius:50%;\n  padding:2px;\n  opacity:0;\n  transform:translateY(30px);\n  animation:\n    circleRise 1s ease forwards,\n    borderShift 5s linear infinite;\n  background:linear-gradient(\n    90deg,\n    #111 0%,\n    #111 25%,\n    #b8894d 50%,\n    #111 75%,\n    #111 100%\n  );\n  background-size:300% 300%;\n}\n\n.benefits-circle{\n  animation-delay:.4s,0s;\n}\n\n.circle-inner{\n  width:100%;\n  height:100%;\n  border-radius:50%;\n  background:linear-gradient(145deg,#faf9f7,#f2f0eb);\n  box-shadow:\n    inset 0 3px 8px rgba(255,255,255,.8),\n    0 18px 30px rgba(0,0,0,.08);\n  padding:55px 34px;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n}\n\n.info-circle h3{\n  font-family:'Playfair Display',serif;\n  font-size:30px;\n  color:#b8894d;\n  margin-bottom:22px;\n}\n\n.info-circle ul{\n  list-style:none;\n  padding:0;\n  margin:0;\n}\n\n.info-circle li{\n  margin-bottom:12px;\n  color:#454c52;\n  font-size:15px;\n  line-height:1.5;\n}\n\n.info-circle strong{\n  color:#2f3438;\n}\n\n.smartflow-btn{\n  display:inline-block;\n  padding:18px 38px;\n  border-radius:20px;\n  text-decoration:none;\n  color:#fff;\n  font-weight:600;\n  background:linear-gradient(135deg,#111,#444);\n  box-shadow:0 12px 24px rgba(0,0,0,.12);\n  animation:buttonPulse 3s ease-in-out infinite;\n}\n\n@keyframes borderShift{\n  0%{background-position:0% 50%;}\n  50%{background-position:100% 50%;}\n  100%{background-position:0% 50%;}\n}\n\n@keyframes circleRise{\n  from{\n    opacity:0;\n    transform:translateY(35px);\n  }\n  to{\n    opacity:1;\n    transform:translateY(0);\n  }\n}\n\n@keyframes titleGlow{\n  0%,100%{\n    color:#2f3438;\n    text-shadow:none;\n  }\n  50%{\n    color:#b8894d;\n    text-shadow:\n      0 0 10px rgba(184,137,77,.22),\n      0 0 22px rgba(184,137,77,.08);\n  }\n}\n\n@keyframes buttonPulse{\n  0%,100%{transform:translateY(0);}\n  50%{transform:translateY(-3px);}\n}\n\n@media(max-width:768px){\n  .smartflow-header h2{\n    font-size:40px;\n  }\n\n  .info-circle{\n    width:280px;\n    height:280px;\n  }\n\n  .circle-inner{\n    padding:45px 28px;\n  }\n\n  .info-circle h3{\n    font-size:24px;\n  }\n\n  .info-circle li{\n    font-size:14px;\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48333837467897,"sku":null,"price":229.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_g2qfe2g2qfe2g2qf.png?v=1777460681"},{"product_id":"oralpod-premium-set","title":"OralPod-Premium set","description":"\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@600\u0026amp;family=Manrope:wght@400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cdiv class=\"afloria-premium-circles\"\u003e\n  \u003cspan class=\"premium-tag\"\u003eOralPod Premium Set\u003c\/span\u003e\n\n  \u003ch2\u003eComplete oral care,\u003cbr\u003ebeautifully organised\u003c\/h2\u003e\n\n  \u003cp class=\"premium-text\"\u003e\n    Two protective holders and a sleek dispenser designed to keep your bathroom\n    cleaner, simpler and more refined.\n  \u003c\/p\u003e\n\n  \u003cdiv class=\"premium-circle-wrap\"\u003e\n    \u003cdiv class=\"premium-circle\"\u003e\n      \u003cdiv class=\"circle-inner\"\u003e\n        \u003ch3\u003eIncluded\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e2 OralPod holders\u003c\/li\u003e\n          \u003cli\u003e1 toothpaste dispenser\u003c\/li\u003e\n          \u003cli\u003eWall-mounted design\u003c\/li\u003e\n          \u003cli\u003eNo drilling needed\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"premium-circle\"\u003e\n      \u003cdiv class=\"circle-inner\"\u003e\n        \u003ch3\u003eBenefits\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003eCleaner sink space\u003c\/li\u003e\n          \u003cli\u003eTouch-free use\u003c\/li\u003e\n          \u003cli\u003eElegant storage\u003c\/li\u003e\n          \u003cli\u003eEasy daily routine\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-premium-circles{\n  max-width:980px;\n  margin:0 auto;\n  padding:40px 20px;\n  text-align:center;\n  font-family:'Manrope',sans-serif;\n}\n\n.premium-tag{\n  display:block;\n  color:#b8894d;\n  text-transform:uppercase;\n  letter-spacing:.14em;\n  font-size:12px;\n  font-weight:600;\n  margin-bottom:12px;\n  opacity:0;\n  animation:fadeUp .8s ease forwards;\n}\n\n.afloria-premium-circles h2{\n  font-family:'Playfair Display',serif;\n  font-size:56px;\n  line-height:1.05;\n  color:#2f3438;\n  margin:0 0 20px;\n  opacity:0;\n  animation:\n    fadeUp 1s ease forwards .2s,\n    titleGlow 4s ease-in-out infinite 1s;\n}\n\n.premium-text{\n  max-width:600px;\n  margin:0 auto 40px;\n  color:#5c6369;\n  line-height:1.8;\n  font-size:17px;\n  opacity:0;\n  animation:fadeUp 1s ease forwards .4s;\n}\n\n.premium-circle-wrap{\n  display:flex;\n  justify-content:center;\n  gap:40px;\n  flex-wrap:wrap;\n}\n\n.premium-circle{\n  width:320px;\n  height:320px;\n  border-radius:50%;\n  padding:2px;\n  background:linear-gradient(\n    90deg,\n    #111,\n    #111,\n    #b8894d,\n    #111,\n    #111\n  );\n  background-size:300% 300%;\n  animation:\n    borderMove 6s linear infinite,\n    circleFade 1s ease forwards;\n  opacity:0;\n}\n\n.premium-circle:nth-child(2){\n  animation-delay:0s,.35s;\n}\n\n.circle-inner{\n  width:100%;\n  height:100%;\n  border-radius:50%;\n  background:#faf9f7;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n  padding:42px 30px;\n  box-shadow:\n    inset 0 3px 8px rgba(255,255,255,.8),\n    0 14px 26px rgba(0,0,0,.06);\n}\n\n.circle-inner h3{\n  font-family:'Playfair Display',serif;\n  font-size:30px;\n  color:#b8894d;\n  margin-bottom:20px;\n}\n\n.circle-inner ul{\n  list-style:none;\n  padding:0;\n  margin:0;\n}\n\n.circle-inner li{\n  margin-bottom:12px;\n  color:#444b51;\n  font-size:15px;\n  line-height:1.5;\n}\n\n@keyframes fadeUp{\n  from{\n    opacity:0;\n    transform:translateY(20px);\n  }\n  to{\n    opacity:1;\n    transform:translateY(0);\n  }\n}\n\n@keyframes circleFade{\n  from{\n    opacity:0;\n    transform:translateY(25px);\n  }\n  to{\n    opacity:1;\n    transform:translateY(0);\n  }\n}\n\n@keyframes borderMove{\n  0%{background-position:0% 50%;}\n  50%{background-position:100% 50%;}\n  100%{background-position:0% 50%;}\n}\n\n@keyframes titleGlow{\n  0%,100%{\n    color:#2f3438;\n    text-shadow:none;\n  }\n  50%{\n    color:#b8894d;\n    text-shadow:\n      0 0 10px rgba(184,137,77,.18),\n      0 0 24px rgba(184,137,77,.08);\n  }\n}\n\n@media(max-width:768px){\n  .afloria-premium-circles h2{\n    font-size:38px;\n  }\n\n  .premium-circle{\n    width:280px;\n    height:280px;\n  }\n\n  .circle-inner{\n    padding:36px 24px;\n  }\n\n  .circle-inner h3{\n    font-size:24px;\n  }\n\n  .circle-inner li{\n    font-size:14px;\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48333922468089,"sku":null,"price":299.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/rn-image_picker_lib_temp_2ac5d7c2-a38a-49fb-8dc2-63548bd9aaf2.png?v=1777530649"},{"product_id":"afloria-essence","title":"Afloria Essence","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003ctitle\u003eAfloria Essence Animation\u003c\/title\u003e\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Cinzel:wght@400;600\u0026family=Quicksand:wght@400;600\u0026display=swap');\n\nbody {\n  background: transparent;\n  font-family: 'Cinzel', 'Quicksand', sans-serif;\n  text-align: center;\n}\n\n.section {\n  padding: 0;\n  border-radius: 30px;\n  background: rgba(255,255,255,0.06);\n  backdrop-filter: blur(10px);\n  -webkit-backdrop-filter: blur(10px);\n  max-width: 700px;\n  margin: 0 auto;\n  border: 1px solid rgba(255,255,255,0.15);\n}\n\n\/* BOTTLES ROW *\/\n.bottles {\n  display: flex !important;\n  flex-direction: row !important;\n  justify-content: center;\n  align-items: flex-end;\n  gap: 16px;\n  margin-bottom: 40px;\n  flex-wrap: nowrap !important;\n  padding: 0 10px; \/* fixes cut-off on mobile *\/\n}\n\n.bottle {\n  flex: 0 0 auto;\n  width: 60px;\n  height: 100px;\n  border-radius: 20px;\n  position: relative;\n  transition: transform 0.3s ease;\n  overflow: visible;\n}\n\n.bottle:hover { transform: translateY(-10px); }\n\n.red { background: #ff4d4d; }\n.purple { background: #a64dff; }\n.yellow { background: #ffd633; }\n.pink { background: #ff66b2; }\n.blue { background: #66ccff; }\n\n\/* MIST EFFECT (FIXED + ENHANCED) *\/\n.mist {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  opacity: 0;\n  filter: blur(4px);\n  animation: rise 4s ease-in-out infinite;\n}\n\n.mist::before,\n.mist::after {\n  content: \"\";\n  position: absolute;\n  width: 14px;\n  height: 14px;\n  border-radius: 50%;\n  background: inherit;\n  filter: blur(6px);\n}\n\n.mist::before {\n  left: -10px;\n  top: 5px;\n}\n\n.mist::after {\n  left: 10px;\n  top: 10px;\n}\n\n@keyframes rise {\n  0% {\n    transform: translate(-50%, 0) scale(0.6);\n    opacity: 0;\n  }\n  20% { opacity: 0.8; }\n  100% {\n    transform: translate(-50%, -100px) scale(1.4);\n    opacity: 0;\n  }\n}\n\n.content { max-width: 500px; margin: auto; }\n\n.toggle-bottle {\n  width: 260px;\n  min-height: 180px;\n  border-radius: 24px;\n  margin: 20px auto;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  position: relative;\n  background: #000;\n  color: #fff;\n  padding: 18px;\n}\n\n.fingerprint {\n  position: absolute;\n  bottom: 10px;\n  right: 10px;\n  font-size: 20px;\n  opacity: 0.7;\n  animation: pulse 2s infinite;\n  pointer-events: none;\n}\n\n@keyframes pulse {\n  0% { transform: scale(1); opacity: 0.6; }\n  50% { transform: scale(1.2); opacity: 1; }\n  100% { transform: scale(1); opacity: 0.6; }\n}\n\n.text-box {\n  display: none;\n  margin-top: 10px;\n  font-size: 13px;\n  line-height: 1.6;\n  width: 100%;\n}\n\n.toggle-bottle.active .text-box { display: block; }\n\n\/* GOLD SHIMMER *\/\n.color-text {\n  font-weight: bold;\n  background: linear-gradient(90deg, #ffffff, #d4af37, #ffffff);\n  background-size: 200% auto;\n  color: transparent;\n  -webkit-background-clip: text;\n  background-clip: text;\n  animation: shine 8s linear infinite;\n}\n\n.color-text ul li::marker { color: #fff; }\n\n@keyframes shine {\n  0% { background-position: -200% center; }\n  100% { background-position: 200% center; }\n}\n\nul {\n  text-align: left;\n  padding-left: 22px;\n  margin: 0;\n}\n\u003c\/style\u003e\n\n\n\n\u003cdiv class=\"section\"\u003e\n  \u003ch2\u003eAfloria Essence\u003c\/h2\u003e\n  \u003cp\u003eTurn your bathroom into a calming sanctuary with delicate, long-lasting fragrance inspired by nature.\u003c\/p\u003e\n\n  \u003cdiv class=\"bottles\"\u003e\n    \u003cdiv class=\"bottle red\"\u003e\u003cdiv class=\"mist\" style=\"background:#ff4d4d; animation-delay:0s\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"bottle purple\"\u003e\u003cdiv class=\"mist\" style=\"background:#a64dff; animation-delay:0.6s\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"bottle yellow\"\u003e\u003cdiv class=\"mist\" style=\"background:#ffd633; animation-delay:1.2s\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"bottle pink\"\u003e\u003cdiv class=\"mist\" style=\"background:#ff66b2; animation-delay:1.8s\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"bottle blue\"\u003e\u003cdiv class=\"mist\" style=\"background:#66ccff; animation-delay:2.4s\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"content\"\u003e\n\n    \u003cdiv class=\"toggle-bottle\"\u003e\n      \u003cdiv\u003eSpecs\u003c\/div\u003e\n      \u003cdiv class=\"fingerprint\"\u003e👆\u003c\/div\u003e\n      \u003cdiv class=\"text-box color-text\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e10ml premium fragrance oil\u003c\/li\u003e\n          \u003cli\u003eDesigned for aroma diffusers\u003c\/li\u003e\n          \u003cli\u003eAvailable scents: Rose, Lavender, Jasmine, Cherry Blossom, Ocean\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"toggle-bottle\"\u003e\n      \u003cdiv\u003eBenefits\u003c\/div\u003e\n      \u003cdiv class=\"fingerprint\"\u003e👆\u003c\/div\u003e\n      \u003cdiv class=\"text-box color-text\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eCreates a relaxing, spa-like feel\u003c\/li\u003e\n          \u003cli\u003eKeeps your bathroom smelling fresh longer\u003c\/li\u003e\n          \u003cli\u003ePerfect for everyday use or guests\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('click', function(e) {\n  const bottle = e.target.closest('.toggle-bottle');\n  if (bottle) bottle.classList.toggle('active');\n});\n\u003c\/script\u003e\n\n\n\n\u003c\/body\u003e","brand":"AFLORIA","offers":[{"title":"Random","offer_id":48341759721721,"sku":null,"price":99.0,"currency_code":"ZAR","in_stock":true},{"title":"Rose","offer_id":48339669483769,"sku":null,"price":99.0,"currency_code":"ZAR","in_stock":true},{"title":"Ocean breeze","offer_id":48339669516537,"sku":null,"price":99.0,"currency_code":"ZAR","in_stock":true},{"title":"Lavender","offer_id":48339669549305,"sku":null,"price":99.0,"currency_code":"ZAR","in_stock":true},{"title":"Jasmine","offer_id":48339669582073,"sku":null,"price":99.0,"currency_code":"ZAR","in_stock":true},{"title":"Cherry","offer_id":48339669614841,"sku":null,"price":99.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_hhoyrmhhoyrmhhoy.png?v=1777619403"},{"product_id":"afloria-namaqua-diffuser","title":"Afloria Namaqua Diffuser","description":"\u003cp\u003e\u0026lt;div class=\"afloria-card\"\u0026gt;\u003c\/p\u003e\n\u003cp\u003e  \u0026lt;h2 class=\"afloria-title\"\u0026gt;Afloria Namaqua Diffuser\u0026lt;\/h2\u0026gt;\u003c\/p\u003e\n\u003cp\u003e  \u0026lt;p class=\"afloria-desc\"\u0026gt;\u003cbr\u003e    Eliminate unwanted odors and elevate your bathroom into a refined, spa-like space with continuous fragrance and ambient lighting.\u003cbr\u003e  \u0026lt;\/p\u0026gt;\u003c\/p\u003e\n\u003cp\u003e  \u0026lt;div class=\"afloria-features\"\u0026gt;\u003cbr\u003e    \u0026lt;div\u0026gt;12.4cm × 8.6cm\u0026lt;\/div\u0026gt;\u003cbr\u003e    \u0026lt;div\u0026gt;Colour-changing lights\u0026lt;\/div\u0026gt;\u003cbr\u003e    \u0026lt;div\u0026gt;Remote control included\u0026lt;\/div\u0026gt;\u003cbr\u003e    \u0026lt;div\u0026gt;Charging cable included\u0026lt;\/div\u0026gt;\u003cbr\u003e    \u0026lt;div\u0026gt;Continuous mist function\u0026lt;\/div\u0026gt;\u003cbr\u003e    \u0026lt;div\u0026gt;Elegant modern design\u0026lt;\/div\u0026gt;\u003cbr\u003e  \u0026lt;\/div\u0026gt;\u003c\/p\u003e\n\u003cp\u003e  \u0026lt;p class=\"afloria-tagline\"\u0026gt;\u003cbr\u003e    A constant flow of clean, beautifully fresh air.\u003cbr\u003e  \u0026lt;\/p\u0026gt;\u003c\/p\u003e\n\u003cp\u003e\u0026lt;\/div\u0026gt;\u003c\/p\u003e\n\u003cp\u003e\u0026lt;style\u0026gt;\u003cbr\u003e.afloria-card {\u003cbr\u003e  max-width: 520px;\u003cbr\u003e  padding: 32px;\u003cbr\u003e  border-radius: 20px;\u003cbr\u003e  background: linear-gradient(145deg, #0c0c0c, #1a1a1a);\u003cbr\u003e  color: #fff;\u003cbr\u003e  font-family: 'Helvetica Neue', sans-serif;\u003cbr\u003e  position: relative;\u003cbr\u003e  overflow: hidden;\u003cbr\u003e  box-shadow: 0 25px 60px rgba(0,0,0,0.5);\u003cbr\u003e  transition: transform 0.4s ease, box-shadow 0.4s ease;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Hover lift *\/\u003cbr\u003e.afloria-card:hover {\u003cbr\u003e  transform: translateY(-10px) scale(1.02);\u003cbr\u003e  box-shadow: 0 35px 80px rgba(0,0,0,0.7);\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Premium gold ambient glow *\/\u003cbr\u003e.afloria-card::before {\u003cbr\u003e  content: \"\";\u003cbr\u003e  position: absolute;\u003cbr\u003e  top: -60%;\u003cbr\u003e  left: -60%;\u003cbr\u003e  width: 220%;\u003cbr\u003e  height: 220%;\u003cbr\u003e  background: radial-gradient(circle, rgba(212,175,55,0.18), transparent 65%);\u003cbr\u003e  animation: goldGlow 8s linear infinite;\u003cbr\u003e  pointer-events: none;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e@keyframes goldGlow {\u003cbr\u003e  0% { transform: rotate(0deg); }\u003cbr\u003e  100% { transform: rotate(360deg); }\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Subtle shine sweep *\/\u003cbr\u003e.afloria-card::after {\u003cbr\u003e  content: \"\";\u003cbr\u003e  position: absolute;\u003cbr\u003e  top: 0;\u003cbr\u003e  left: -100%;\u003cbr\u003e  width: 60%;\u003cbr\u003e  height: 100%;\u003cbr\u003e  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.08), transparent);\u003cbr\u003e  transform: skewX(-20deg);\u003cbr\u003e  animation: shine 5s infinite;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e@keyframes shine {\u003cbr\u003e  0% { left: -100%; }\u003cbr\u003e  50% { left: 130%; }\u003cbr\u003e  100% { left: 130%; }\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Title *\/\u003cbr\u003e.afloria-title {\u003cbr\u003e  font-size: 26px;\u003cbr\u003e  margin-bottom: 15px;\u003cbr\u003e  background: linear-gradient(90deg, #d4af37, #f5e6a8);\u003cbr\u003e  -webkit-background-clip: text;\u003cbr\u003e  -webkit-text-fill-color: transparent;\u003cbr\u003e  letter-spacing: 0.5px;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Description *\/\u003cbr\u003e.afloria-desc {\u003cbr\u003e  font-size: 14px;\u003cbr\u003e  color: #ddd;\u003cbr\u003e  margin-bottom: 28px;\u003cbr\u003e  line-height: 1.6;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Features *\/\u003cbr\u003e.afloria-features {\u003cbr\u003e  display: grid;\u003cbr\u003e  grid-template-columns: 1fr 1fr;\u003cbr\u003e  gap: 12px;\u003cbr\u003e  font-size: 13px;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e.afloria-features div {\u003cbr\u003e  padding: 12px;\u003cbr\u003e  border-radius: 12px;\u003cbr\u003e  background: rgba(255,255,255,0.05);\u003cbr\u003e  transition: all 0.3s ease;\u003cbr\u003e  text-align: center;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e.afloria-features div:hover {\u003cbr\u003e  background: rgba(212,175,55,0.18);\u003cbr\u003e  transform: scale(1.06);\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e\/* Tagline *\/\u003cbr\u003e.afloria-tagline {\u003cbr\u003e  margin-top: 28px;\u003cbr\u003e  font-size: 14px;\u003cbr\u003e  color: #d4af37;\u003cbr\u003e  text-align: center;\u003cbr\u003e  letter-spacing: 1.2px;\u003cbr\u003e  font-weight: 500;\u003cbr\u003e  opacity: 0;\u003cbr\u003e  animation: fadeIn 1.5s ease forwards;\u003cbr\u003e  animation-delay: 0.6s;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e@keyframes fadeIn {\u003cbr\u003e  to { opacity: 1; }\u003cbr\u003e}\u003cbr\u003e\u0026lt;\/style\u0026gt;\u003c\/p\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48339419169017,"sku":null,"price":500.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_86rgt786rgt786rg.png?v=1777622082"},{"product_id":"afloria-luxscent-collection","title":"Afloria LuxScent Collection- Electric Diffuser and Fragrance oil","description":"\u003cdiv class=\"afloria-luxe-card\"\u003e\n\n  \u003ch2 class=\"afloria-luxe-title\"\u003eAfloria Luxe Scent Collection\u003c\/h2\u003e\n\n  \u003cp class=\"afloria-luxe-desc\"\u003e\n    Indulge in a premium fragrance experience that transforms your space into a refined, spa-like environment with lasting freshness and soft ambience.\n  \u003c\/p\u003e\n\n  \u003c!-- Feature Pills --\u003e\n  \u003cdiv class=\"afloria-luxe-features\"\u003e\n    \u003cspan\u003eElectric diffuser included\u003c\/span\u003e\n    \u003cspan\u003eFragrance oil included\u003c\/span\u003e\n    \u003cspan\u003eElegant gift-ready set\u003c\/span\u003e\n    \u003cspan\u003eLong-lasting scent experience\u003c\/span\u003e\n    \u003cspan\u003ePerfect for luxury ambience\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Divider --\u003e\n  \u003cdiv class=\"afloria-luxe-divider\"\u003e\u003c\/div\u003e\n\n  \u003c!-- Tagline --\u003e\n  \u003cp class=\"afloria-luxe-tagline\"\u003e\n    A complete experience of clean, beautifully fresh air.\n  \u003c\/p\u003e\n\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-luxe-card {\n  max-width: 520px;\n  padding: 36px;\n  border-radius: 22px;\n  background: linear-gradient(160deg, #111111, #1e1e1e);\n  color: #fff;\n  font-family: 'Helvetica Neue', sans-serif;\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n  box-shadow: 0 25px 70px rgba(0,0,0,0.6);\n  transition: all 0.4s ease;\n}\n\n\/* Hover *\/\n.afloria-luxe-card:hover {\n  transform: translateY(-6px) scale(1.015);\n  box-shadow: 0 35px 90px rgba(0,0,0,0.75);\n}\n\n\/* Soft gold ambient glow *\/\n.afloria-luxe-card::before {\n  content: \"\";\n  position: absolute;\n  width: 240%;\n  height: 240%;\n  top: -70%;\n  left: -70%;\n  background: radial-gradient(circle, rgba(212,175,55,0.10), transparent 70%);\n  animation: luxeGlow 12s linear infinite;\n}\n\n@keyframes luxeGlow {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(360deg); }\n}\n\n\/* Subtle shine sweep (different from Namaqua) *\/\n.afloria-luxe-card::after {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: -120%;\n  width: 50%;\n  height: 100%;\n  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.05), transparent);\n  transform: skewX(-25deg);\n  animation: luxeShine 7s infinite;\n}\n\n@keyframes luxeShine {\n  0% { left: -120%; }\n  60% { left: 130%; }\n  100% { left: 130%; }\n}\n\n\/* Title *\/\n.afloria-luxe-title {\n  font-size: 26px;\n  margin-bottom: 18px;\n  background: linear-gradient(90deg, #d4af37, #f5e6a8);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  letter-spacing: 0.5px;\n}\n\n\/* Description *\/\n.afloria-luxe-desc {\n  font-size: 14px;\n  color: #ddd;\n  margin-bottom: 28px;\n  line-height: 1.6;\n}\n\n\/* Feature Pills *\/\n.afloria-luxe-features {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  justify-content: center;\n}\n\n.afloria-luxe-features span {\n  padding: 9px 16px;\n  font-size: 12px;\n  border-radius: 50px;\n  background: rgba(255,255,255,0.06);\n  transition: all 0.3s ease;\n}\n\n.afloria-luxe-features span:hover {\n  background: rgba(212,175,55,0.18);\n  transform: scale(1.08);\n}\n\n\/* Divider *\/\n.afloria-luxe-divider {\n  height: 1px;\n  width: 65%;\n  margin: 30px auto;\n  background: linear-gradient(to right, transparent, #d4af37, transparent);\n  opacity: 0.7;\n}\n\n\/* Tagline *\/\n.afloria-luxe-tagline {\n  font-size: 14px;\n  color: #d4af37;\n  letter-spacing: 1.2px;\n  opacity: 0;\n  animation: fadeIn 1.6s ease forwards;\n  animation-delay: 0.6s;\n}\n\n\/* Fade *\/\n@keyframes fadeIn {\n  to { opacity: 1; }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Random","offer_id":48341711257849,"sku":null,"price":580.0,"currency_code":"ZAR","in_stock":true},{"title":"Cherry","offer_id":48339530842361,"sku":null,"price":580.0,"currency_code":"ZAR","in_stock":true},{"title":"Jasmine","offer_id":48339530875129,"sku":null,"price":580.0,"currency_code":"ZAR","in_stock":true},{"title":"Lavender","offer_id":48339530907897,"sku":null,"price":580.0,"currency_code":"ZAR","in_stock":true},{"title":"Ocean breeze","offer_id":48339530940665,"sku":null,"price":580.0,"currency_code":"ZAR","in_stock":true},{"title":"Rose","offer_id":48339530973433,"sku":null,"price":580.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/ChatGPT_Image_May_1_2026_10_21_54_AM.png?v=1777625476"},{"product_id":"afloria-signature-scent-collection-r220","title":"Signature Scent Collection — Wooden diffuser and Fragrance oil","description":"\u003cp\u003eEnjoy timeless style and lasting fragrance in one beautifully curated set.\u003c\/p\u003e\n\u003cp\u003e Includes wooden diffuser\u003cbr\u003eIncludes fragrance oil\u003cbr\u003eNatural luxury design\u003cbr\u003eBeautiful gift option\u003cbr\u003eEnhances any bathroom effortlessly\u003c\/p\u003e","brand":"AFLORIA","offers":[{"title":"Ocean breeze","offer_id":48341112783097,"sku":null,"price":220.0,"currency_code":"ZAR","in_stock":true},{"title":"Lavender","offer_id":48341112815865,"sku":null,"price":220.0,"currency_code":"ZAR","in_stock":true},{"title":"Jasmine","offer_id":48341112848633,"sku":null,"price":220.0,"currency_code":"ZAR","in_stock":true},{"title":"Cherry","offer_id":48341112881401,"sku":null,"price":220.0,"currency_code":"ZAR","in_stock":true},{"title":"Rose","offer_id":48341112914169,"sku":null,"price":220.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/ChatGPTImageMay1_2026_10_26_52AM_284d4ed2-bde5-42dd-bf00-f8e58216813e.png?v=1777644344"},{"product_id":"afloria-wooden-essence-diffuser","title":"Afloria Wooden Essence Diffuser","description":"\u003cp\u003eAdd natural elegance to your bathroom with a beautifully simple diffuser that gently releases fragrance.\u003cbr\u003eSize: 6cm wide x 3.2cm high\u003cbr\u003eNatural wooden design\u003cbr\u003eNo electricity required\u003cbr\u003eCompact minimalist style\u003cbr\u003eEasy to refill\u003c\/p\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48341140078841,"sku":null,"price":149.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_amsdn6amsdn6amsd.png?v=1777644547"},{"product_id":"crystalmist-glass-cleaner-r280","title":"CrystalMist Glass Cleaner","description":"\u003cdiv class=\"afloria-product-section\"\u003e\n  \u003ch2 class=\"afloria-title\"\u003eAfloria CrystalMist Glass Cleaner\u003c\/h2\u003e\n  \n  \u003cp class=\"afloria-description\"\u003e\n    Restore mirrors and glass surfaces to a flawless streak-free shine with a complete premium cleaning system.\n  \u003c\/p\u003e\n\n  \u003cdiv class=\"afloria-features\"\u003e\n    \u003cdiv class=\"feature\"\u003eColour: Blue and white\u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003eIncludes spray bottle\u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003eIncludes rubber squeegee\u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003eIncludes microfiber cleaning pad\u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003eIncludes hand scrub brush\u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003eSuitable for mirrors and glass surfaces\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.afloria-product-section{\n  max-width:900px;\n  margin:60px auto;\n  padding:50px 30px;\n  background:linear-gradient(145deg,#f8f9fb,#eef3f7);\n  border-radius:28px;\n  text-align:center;\n  font-family:'Inter',sans-serif;\n  box-shadow:0 20px 40px rgba(0,0,0,0.06);\n}\n\n\/* Title *\/\n.afloria-title{\n  font-family:'Cormorant Garamond',serif;\n  font-size:42px;\n  color:#2f3e4d;\n  margin-bottom:18px;\n  letter-spacing:0.5px;\n}\n\n\/* Description *\/\n.afloria-description{\n  font-size:17px;\n  color:#5c6a73;\n  max-width:600px;\n  margin:0 auto 35px;\n  line-height:1.6;\n}\n\n\/* Features grid *\/\n.afloria-features{\n  display:grid;\n  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));\n  gap:16px;\n}\n\n\/* Individual feature *\/\n.feature{\n  background:#ffffff;\n  padding:14px 18px;\n  border-radius:14px;\n  font-size:15px;\n  color:#3e4b55;\n  box-shadow:0 6px 14px rgba(0,0,0,0.05);\n  transition:all 0.25s ease;\n  position:relative;\n}\n\n\/* Hover effect *\/\n.feature:hover{\n  transform:translateY(-4px);\n  box-shadow:0 12px 22px rgba(0,0,0,0.08);\n}\n\n\/* subtle shine animation *\/\n.feature::after{\n  content:'';\n  position:absolute;\n  inset:0;\n  background:linear-gradient(\n    120deg,\n    transparent,\n    rgba(255,255,255,0.5),\n    transparent\n  );\n  opacity:0;\n  transition:0.3s;\n}\n\n.feature:hover::after{\n  opacity:1;\n}\n\n\/* Responsive *\/\n@media(max-width:600px){\n  .afloria-title{\n    font-size:32px;\n  }\n}\n\u003c\/style\u003e","brand":"AFLORIA","offers":[{"title":"Default Title","offer_id":48344939593977,"sku":null,"price":299.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/files\/Gemini_Generated_Image_2io3ey2io3ey2io3.png?v=1777736128"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0809\/8165\/5801\/collections\/1000585280.png?v=1777302245","url":"https:\/\/afloria.co.za\/collections\/afloria-products.oembed","provider":"AFLORIA","version":"1.0","type":"link"}