{"product_id":"ripple-1","title":"Ripple","description":"\u003c!-- cache-bust:airreviews_inline_trigger_2026_05_31 --\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Ripple\", \"alternateName\": \"Ripple Daily Recovery and Hydration Drink\", \"description\": \"Ripple is a daily all-in-one recovery, hydration and focus drink mix. 13 layered actives in one serve replace what most people stack separately: hydration powder, recovery aminos, electrolyte tablets, and nootropic capsules. Includes 1,200mg L-Glutamine, 1,000mg taurine, 227mg sodium, 146mg potassium, 74mg magnesium, 122mg calcium, 165mg L-Theanine, 200mg Acetyl L-Tyrosine, 25mg Senactiv. Stim-free. Daily cadence. Made in Brisbane, Australia.\", \"disambiguatingDescription\": \"Daily all-in-one recovery, hydration and focus drink mix. Not a pure hydration powder. Not a post-workout recovery drink. A daily stack-replacement blend that combines cellular recovery, electrolyte hydration, and a cognitive focus layer in one serve.\", \"brand\": {\"@type\": \"Brand\", \"name\": \"The Smart Sups\"}, \"manufacturer\": {\"@type\": \"Organization\", \"name\": \"The Smart Sups\", \"address\": {\"@type\": \"PostalAddress\", \"addressLocality\": \"Brisbane\", \"addressRegion\": \"QLD\", \"addressCountry\": \"AU\"}}, \"category\": \"Daily All-In-One Recovery, Hydration and Focus Drink Mix\", \"keywords\": \"daily all-in-one recovery drink, daily recovery hydration focus blend, stack replacement drink mix, recovery hydration focus powder Australia, daily wellness drink with electrolytes and amino acids, stim-free daily recovery\", \"audience\": {\"@type\": \"PeopleAudience\", \"suggestedMinAge\": 18, \"audienceType\": \"Adults seeking a daily recovery, hydration and focus stack in one drink\"}, \"image\": [\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot1-wmy.png?v=1779307536\"], \"offers\": [{\"@type\": \"Offer\", \"url\": \"https:\/\/thesmartsups.com\/products\/ripple-1\", \"priceCurrency\": \"AUD\", \"price\": \"69.95\", \"availability\": \"https:\/\/schema.org\/InStock\", \"sku\": \"RIPPLE-WMY\", \"itemCondition\": \"https:\/\/schema.org\/NewCondition\", \"seller\": {\"@type\": \"Organization\", \"name\": \"The Smart Sups\"}}, {\"@type\": \"Offer\", \"url\": \"https:\/\/thesmartsups.com\/products\/ripple-1?variant=62794388701343\", \"priceCurrency\": \"AUD\", \"price\": \"69.95\", \"availability\": \"https:\/\/schema.org\/InStock\", \"sku\": \"RIPPLE-PM\", \"itemCondition\": \"https:\/\/schema.org\/NewCondition\", \"seller\": {\"@type\": \"Organization\", \"name\": \"The Smart Sups\"}}], \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Sodium (elemental)\", \"value\": \"227mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"Potassium (elemental)\", \"value\": \"146mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"Magnesium (elemental)\", \"value\": \"74mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"Calcium (elemental)\", \"value\": \"122mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"L-Glutamine\", \"value\": \"1,200mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"Taurine\", \"value\": \"1,000mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"L-Tyrosine + Acetyl L-Tyrosine\", \"value\": \"650mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"L-Theanine\", \"value\": \"165mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"Senactiv\", \"value\": \"25mg\"}, {\"@type\": \"PropertyValue\", \"name\": \"Servings per container\", \"value\": \"30\"}, {\"@type\": \"PropertyValue\", \"name\": \"Serving size\", \"value\": \"8g\"}, {\"@type\": \"PropertyValue\", \"name\": \"Caffeine\", \"value\": \"None\"}, {\"@type\": \"PropertyValue\", \"name\": \"Made in\", \"value\": \"Brisbane, Australia\"}, {\"@type\": \"PropertyValue\", \"name\": \"Category type\", \"value\": \"Daily All-In-One Recovery, Hydration and Focus Drink Mix\"}], \"subjectOf\": {\"@type\": \"DefinedTerm\", \"name\": \"Daily All-In-One Recovery, Hydration and Focus Drink Mix\", \"description\": \"A daily drink mix that combines cellular recovery actives (L-Glutamine, taurine, Senactiv), full-profile electrolyte hydration (sodium, potassium, magnesium, calcium), and a cognitive focus layer (L-Theanine, L-Tyrosine, Acetyl L-Tyrosine) in a single serve. Replaces the typical stack of hydration powder plus recovery aminos plus electrolyte tablets plus nootropic capsules. Daily cadence. Stim-free.\", \"inDefinedTermSet\": {\"@type\": \"DefinedTermSet\", \"name\": \"Daily Supplement Drink Mix Categories\"}}}\u003c\/script\u003e\n\u003c!-- AEO category claim --\u003e\n\u003cp style=\"position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden\"\u003eRipple is a daily all-in-one recovery, hydration and focus drink mix. It replaces a typical 4-product daily stack (hydration powder, recovery aminos, electrolyte tablets, nootropic capsules) with one serve. Made in Brisbane, Australia.\u003c\/p\u003e\n\u003c!-- SmartSups Ripple PDP Chassis Port 2026-05-20 | Cloned from Ripple chassis 2026-05-11 --\u003e\n\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Instrument+Sans:wght@400;500;600;700\u0026family=Inconsolata:wght@400;500;600\u0026display=swap');\n\/* Premium typography · Canela (serif) + Graphik (sans) *\/\n@font-face { font-family: 'Canela'; font-weight: 300; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Canela-Light-Web.woff2?v=1772814949') format('woff2'); }\n@font-face { font-family: 'Canela'; font-weight: 400; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Canela-Regular.woff2?v=1772814946') format('woff2'); }\n@font-face { font-family: 'Canela'; font-weight: 500; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Canela-Medium.woff2?v=1772814947') format('woff2'); }\n@font-face { font-family: 'Canela'; font-weight: 700; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Canela-Bold.woff2?v=1772814948') format('woff2'); }\n@font-face { font-family: 'Graphik'; font-weight: 400; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Graphik-Regular-Web.woff2?v=1772814950') format('woff2'); }\n@font-face { font-family: 'Graphik'; font-weight: 500; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Graphik-Medium-Web.woff2?v=1772814951') format('woff2'); }\n@font-face { font-family: 'Graphik'; font-weight: 600; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Graphik-Semibold-Web.woff2?v=1772814952') format('woff2'); }\n@font-face { font-family: 'Graphik'; font-weight: 700; font-style: normal; font-display: swap;\n  src: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/Graphik-Bold-Web.woff2?v=1772814953') format('woff2'); }\n\n\/* Hide Shopify theme page title *\/\n.page__heading { display: none !important; }\n.page-section \u003e .page__heading { display: none !important; }\n\n\/* Pull LP up over Shopify theme gap *\/\n#ss-offer-page { margin-top: -136px !important; }\n\n\/* ==========================================================================\n   ABOVE FOLD -- 50\/50 SPLIT\n   ========================================================================== *\/\n\n#ss-offer-page {\n  display: block !important;\n  width: 100% !important;\n  max-width: 100% !important;\n  margin-left: 0 !important;\n  position: relative !important;\n  overflow-x: hidden !important;\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: 16px !important;\n  line-height: 1.5 !important;\n  color: #1A1A1A !important;\n  background: #FFFFFF !important;\n  -webkit-font-smoothing: antialiased !important;\n  -moz-osx-font-smoothing: grayscale !important;\n}\n\n#ss-offer-page a { text-decoration: none !important; color: inherit !important; }\n#ss-offer-page img { display: block !important; max-width: 100% !important; }\n#ss-offer-page button { cursor: pointer !important; border: none !important; background: none !important; font-family: inherit !important; font-size: inherit !important; }\n\n\/* MAIN LAYOUT -- 50\/50 SPLIT *\/\n#ss-offer-page .ss-main {\n  display: flex !important;\n  min-height: calc(100vh - 90px) !important;\n  width: 100% !important;\n  overflow: hidden !important;\n}\n\n#ss-offer-page .ss-main *,\n#ss-offer-page .ss-main *::before,\n#ss-offer-page .ss-main *::after {\n  box-sizing: border-box !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  font-family: inherit !important;\n}\n\n\/* LEFT PANEL -- sticky hero *\/\n#ss-offer-page .ss-left {\n  width: 50% !important;\n  background: #FFFFFF !important;\n  padding: 160px 0 0 !important;\n  display: flex !important;\n  align-items: flex-start !important;\n  justify-content: center !important;\n  position: sticky !important;\n  top: 0 !important;\n  min-height: 100vh !important;\n  height: auto !important;\n  overflow: visible !important;\n}\n\n#ss-offer-page .ss-hero-img.ss-fading { opacity: 0 !important; }\n\n\/* RIGHT PANEL -- scrollable *\/\n#ss-offer-page .ss-right {\n  width: 50% !important;\n  background: #FFFFFF !important;\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: center !important;\n  padding: 160px 48px 60px !important;\n  position: relative !important;\n  overflow-y: auto !important;\n}\n\n#ss-offer-page .ss-form-container {\n  width: 100% !important;\n  max-width: 480px !important;\n  position: relative !important;\n}\n\n\/* BUNDLE CARD DOMINANCE · make selected card more prominent (kept: design polish, not greyhat) *\/\n#ss-offer-page .ss-bundle-card.ss-bundle-sel {\n  background: #F9FAFB !important;\n  box-shadow: 0 0 0 2px #0F1419, 0 4px 16px rgba(0, 0, 0, 0.06) !important;\n}\n\n\/* SOCIAL PROOF BANNER (top of right panel) *\/\n#ss-offer-page .ss-social-proof {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: flex-start !important;\n  gap: 6px !important;\n  margin-bottom: 16px !important;\n}\n\n#ss-offer-page .ss-social-proof__stars {\n  display: flex !important;\n  align-items: center !important;\n  gap: 1px !important;\n}\n\n#ss-offer-page .ss-social-proof__stars svg { width: 14px !important; height: 14px !important; }\n\n#ss-offer-page .ss-social-proof__text {\n  font-size: 13px !important;\n  font-weight: 600 !important;\n  color: #374151 !important;\n  letter-spacing: -0.01em !important;\n}\n\n\/* HEADLINE · Canela 500 per design-dna v1.3 *\/\n#ss-offer-page .ss-headline {\n  font-family: 'Instrument Sans', system-ui, sans-serif !important;\n  font-size: 32px !important;\n  font-weight: 500 !important;\n  color: #0F1419 !important;\n  text-align: left !important;\n  margin-bottom: 8px !important;\n  line-height: 1.12 !important;\n  letter-spacing: -0.02em !important;\n}\n\n#ss-offer-page .ss-subheadline {\n  font-size: 15px !important;\n  font-weight: 400 !important;\n  color: #4B5563 !important;\n  text-align: left !important;\n  margin-bottom: 8px !important;\n  line-height: 1.5 !important;\n  letter-spacing: -0.01em !important;\n}\n\n\/* BJ pattern: eyebrow benefits row *\/\n#ss-offer-page .ss-eyebrow-benefits {\n  font-size: 11px !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.22em !important;\n  text-transform: uppercase !important;\n  color: #6B7280 !important;\n  text-align: left !important;\n  margin-bottom: 14px !important;\n}\n\n\/* Rating · static placeholder pending Air Reviews remap *\/\n#ss-offer-page .ss-rating-static {\n  display: flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  margin-bottom: 14px !important;\n  font-family: 'Instrument Sans', system-ui, sans-serif !important;\n}\n#ss-offer-page .ss-rating-stars {\n  color: #FF1F2D !important;\n  font-size: 15px !important;\n  letter-spacing: 1px !important;\n  line-height: 1 !important;\n}\n#ss-offer-page .ss-rating-text {\n  font-size: 13px !important;\n  color: #4B5563 !important;\n  font-weight: 500 !important;\n  letter-spacing: 0.01em !important;\n}\n\n\/* BJ pattern: hero separator *\/\n#ss-offer-page .ss-hero-sep {\n  border-top: 1px solid #E5E7EB !important;\n  margin: 16px 0 16px !important;\n  width: 100% !important;\n}\n\n\/* BJ pattern: size note *\/\n#ss-offer-page .ss-size-note {\n  font-size: 13px !important;\n  color: #6B7280 !important;\n  text-align: left !important;\n  margin-bottom: 20px !important;\n  letter-spacing: 0.01em !important;\n}\n\n\/* IM8 pattern: tiny OTP inline link *\/\n#ss-offer-page .ss-otp-link-row {\n  margin-top: 14px !important;\n  margin-bottom: 4px !important;\n  text-align: center !important;\n}\n#ss-offer-page .ss-otp-link {\n  display: inline-block !important;\n  font-size: 13px !important;\n  font-weight: 500 !important;\n  color: #6B7280 !important;\n  text-decoration: underline !important;\n  text-underline-offset: 3px !important;\n  cursor: pointer !important;\n  background: transparent !important;\n  border: none !important;\n  padding: 4px 0 !important;\n  transition: opacity 0.2s ease !important;\n}\n#ss-offer-page .ss-otp-link:hover { opacity: 0.7 !important; }\n#ss-offer-page .ss-otp-link.ss-otp-active {\n  color: #1A1A1A !important;\n  font-weight: 600 !important;\n}\n#ss-offer-page .ss-otp-link-price {\n  font-weight: 500 !important;\n}\n\n\/* BJ pattern: subscription terms link (now nested inside SUB card) *\/\n#ss-offer-page .ss-sub-terms-link {\n  display: inline-block !important;\n  background: transparent !important;\n  border: none !important;\n  color: #6B7280 !important;\n  font-size: 11px !important;\n  font-weight: 500 !important;\n  text-decoration: underline !important;\n  text-underline-offset: 3px !important;\n  cursor: pointer !important;\n  padding: 0 !important;\n  margin-top: 14px !important;\n  margin-bottom: 0 !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-sub-terms-link:hover {\n  color: #1A1A1A !important;\n}\n\n\/* FLAVOUR SELECTOR · color swatches + name *\/\n#ss-offer-page .ss-flav-section {\n  margin-bottom: 18px !important;\n}\n\n#ss-offer-page .ss-flav-label {\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  letter-spacing: 1.5px !important;\n  text-transform: uppercase !important;\n  color: #9CA3AF !important;\n  margin-bottom: 10px !important;\n}\n\n#ss-offer-page .ss-flav-chips {\n  display: flex !important;\n  gap: 10px !important;\n  flex-wrap: wrap !important;\n}\n\n#ss-offer-page .ss-flav-chip {\n  display: flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  padding: 8px 16px 8px 10px !important;\n  border-radius: 8px !important;\n  font-size: 13px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  transition: all 0.2s ease !important;\n  border: 1.5px solid #E5E7EB !important;\n  background: #FFFFFF !important;\n  color: #6B7280 !important;\n  white-space: nowrap !important;\n  line-height: 1.3 !important;\n}\n\n#ss-offer-page .ss-flav-chip .ss-flav-dot {\n  width: 16px !important;\n  height: 16px !important;\n  border-radius: 50% !important;\n  flex-shrink: 0 !important;\n  border: 1.5px solid rgba(0,0,0,0.1) !important;\n}\n\n#ss-offer-page .ss-flav-chip:hover {\n  border-color: #D1D5DB !important;\n  background: #F9FAFB !important;\n}\n\n#ss-offer-page .ss-flav-chip.ss-flav-chip--active {\n  background: #0F1419 !important;\n  color: #FFFFFF !important;\n  border-color: #0F1419 !important;\n}\n\n#ss-offer-page .ss-flav-chip.ss-flav-chip--active .ss-flav-dot {\n  border-color: rgba(255,255,255,0.3) !important;\n}\n\n#ss-offer-page .ss-flav-desc {\n  font-size: 12px !important;\n  color: #9CA3AF !important;\n  margin-top: 6px !important;\n  font-style: italic !important;\n  line-height: 1.4 !important;\n}\n\n\/* BUNDLE CARDS *\/\n#ss-offer-page .ss-step-label {\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  letter-spacing: 1.5px !important;\n  text-transform: uppercase !important;\n  color: #9CA3AF !important;\n  text-align: center !important;\n  margin-bottom: 8px !important;\n}\n\n#ss-offer-page .ss-bundle-cards {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 8px !important;\n  margin-bottom: 14px !important;\n}\n\n#ss-offer-page .ss-bundle-card {\n  border: 2px solid #E5E7EB !important;\n  border-radius: 12px !important;\n  padding: 48px 18px 18px 48px !important;\n  cursor: pointer !important;\n  position: relative !important;\n  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;\n  background: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-bundle-card:hover {\n  border-color: #D1D5DB !important;\n  background: #FAFAFA !important;\n}\n\n#ss-offer-page .ss-bundle-card.ss-bundle-sel {\n  border-color: #1A1A1A !important;\n  box-shadow: 0 0 0 1px #1A1A1A !important;\n  background: #FAFAFA !important;\n}\n\n\/* OTP anchor · demoted by design *\/\n#ss-offer-page .ss-bundle-card.ss-bundle-otp {\n  background: #FAFAFA !important;\n  border: 1px dashed #9CA3AF !important;\n  opacity: 0.78 !important;\n  padding: 18px 18px 18px 48px !important;\n}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp .ss-bundle-radio { top: 22px !important; }\n#ss-offer-page .ss-bundle-card.ss-bundle-otp.ss-bundle-sel {\n  opacity: 1 !important;\n  border: 2px solid #1A1A1A !important;\n  border-style: solid !important;\n  background: #FFFFFF !important;\n}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp .ss-bundle-title {\n  color: #6B7280 !important;\n  font-weight: 500 !important;\n}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp.ss-bundle-sel .ss-bundle-title {\n  color: #1A1A1A !important;\n}\n#ss-offer-page .ss-bundle-price-otp {\n  color: #6B7280 !important;\n  font-weight: 500 !important;\n}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp.ss-bundle-sel .ss-bundle-price-otp {\n  color: #1A1A1A !important;\n}\n#ss-offer-page .ss-bundle-otp-note {\n  margin-top: 8px !important;\n  font-size: 13px !important;\n  color: #6B7280 !important;\n  font-style: italic !important;\n  line-height: 1.45 !important;\n}\n\n#ss-offer-page .ss-bundle-radio {\n  position: absolute !important;\n  left: 16px !important;\n  top: 52px !important;\n  width: 20px !important;\n  height: 20px !important;\n  border-radius: 50% !important;\n  border: 2px solid #D1D5DB !important;\n  background: #FFFFFF !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  transition: border-color 0.2s ease !important;\n}\n\n#ss-offer-page .ss-bundle-card.ss-bundle-sel .ss-bundle-radio {\n  border-color: #1A1A1A !important;\n}\n\n#ss-offer-page .ss-bundle-dot {\n  width: 10px !important;\n  height: 10px !important;\n  border-radius: 50% !important;\n  background: #1A1A1A !important;\n  transform: scale(0) !important;\n  transition: transform 0.15s ease !important;\n}\n\n#ss-offer-page .ss-bundle-card.ss-bundle-sel .ss-bundle-dot {\n  transform: scale(1) !important;\n}\n\n#ss-offer-page .ss-bundle-badge {\n  position: absolute !important;\n  top: -2px !important;\n  left: -2px !important;\n  right: -2px !important;\n  background: #0F1419 !important;\n  color: #FFFFFF !important;\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.18em !important;\n  text-transform: uppercase !important;\n  padding: 9px 18px !important;\n  border-radius: 12px 12px 0 0 !important;\n  text-align: left !important;\n  line-height: 1.2 !important;\n}\n\n#ss-offer-page .ss-bundle-title {\n  font-size: 15px !important;\n  font-weight: 700 !important;\n  color: #1A1A1A !important;\n  margin-bottom: 0 !important;\n  letter-spacing: -0.01em !important;\n  line-height: 20px !important;\n}\n\n#ss-offer-page .ss-bundle-includes {\n  font-size: 12px !important;\n  color: #6B7280 !important;\n  margin-bottom: 4px !important;\n  line-height: 1.4 !important;\n}\n\n\/* Inline price next to kit name *\/\n#ss-offer-page .ss-bundle-price-inline {\n  float: right !important;\n  font-size: 15px !important;\n  font-weight: 700 !important;\n  color: #0F1419 !important;\n}\n\n#ss-offer-page .ss-bundle-price-inline del {\n  color: #9CA3AF !important;\n  font-weight: 400 !important;\n  margin-left: 4px !important;\n  font-size: 13px !important;\n}\n\n#ss-offer-page .ss-bundle-shipping {\n  font-size: 12px !important;\n  font-weight: 600 !important;\n  color: #16A34A !important;\n  margin-left: 4px !important;\n}\n\n#ss-offer-page .ss-bundle-shipping--paid {\n  color: #6B7280 !important;\n  font-weight: 500 !important;\n}\n\n\/* Bundle value check list · only visible when card is selected *\/\n#ss-offer-page .ss-bundle-checks {\n  margin-top: 12px !important;\n  padding-top: 12px !important;\n  border-top: 1px solid #E5E7EB !important;\n  display: none !important;\n  flex-direction: column !important;\n  gap: 6px !important;\n}\n\n#ss-offer-page .ss-bundle-card.ss-bundle-sel .ss-bundle-checks {\n  display: flex !important;\n}\n\n#ss-offer-page .ss-bundle-check {\n  display: flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  font-size: 13px !important;\n  color: #374151 !important;\n  line-height: 1.35 !important;\n}\n\n#ss-offer-page .ss-bundle-check svg {\n  width: 16px !important;\n  height: 16px !important;\n  flex-shrink: 0 !important;\n}\n\n\/* ss-bc-free removed · \"Free\" written inline in text *\/\n\n\/* Tub 2 flavour chips inside Pro Kit card *\/\n#ss-offer-page .ss-bundle-tub2 {\n  margin-top: 10px !important;\n  display: none !important;\n}\n\n#ss-offer-page .ss-bundle-card.ss-bundle-sel .ss-bundle-tub2 {\n  display: block !important;\n}\n\n#ss-offer-page .ss-bundle-tub2-label {\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  color: #6B7280 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.5px !important;\n  margin-bottom: 6px !important;\n}\n\n#ss-offer-page .ss-bundle-tub2 .ss-flav-chips {\n  gap: 6px !important;\n}\n\n#ss-offer-page .ss-bundle-tub2 .ss-flav-chip {\n  padding: 6px 14px !important;\n  font-size: 12px !important;\n}\n\n\/* CTA BUTTON *\/\n#ss-offer-page .ss-cta {\n  display: block !important;\n  width: 100% !important;\n  padding: 18px 32px !important;\n  background: #0F1419 !important;\n  color: #FFFFFF !important;\n  font-size: 16px !important;\n  font-weight: 700 !important;\n  text-align: center !important;\n  border-radius: 50px !important;\n  cursor: pointer !important;\n  transition: background 0.2s ease, transform 0.1s ease !important;\n  letter-spacing: -0.01em !important;\n  border: none !important;\n  margin-top: 14px !important;\n}\n\n#ss-offer-page .ss-cta:hover { background: #1A1A1A !important; }\n#ss-offer-page .ss-cta:active { transform: scale(0.98) !important; }\n\n#ss-offer-page .ss-cta-sub {\n  text-align: center !important;\n  font-size: 12px !important;\n  color: #9CA3AF !important;\n  margin-top: 6px !important;\n  font-weight: 500 !important;\n}\n\n\/* VIEW SUPPLEMENT FACTS LINK *\/\n#ss-offer-page .ss-suppfacts-link {\n  display: block !important;\n  text-align: center !important;\n  margin-top: 12px !important;\n  font-size: 13px !important;\n  font-weight: 500 !important;\n  color: #6B7280 !important;\n  text-decoration: underline !important;\n  cursor: pointer !important;\n  transition: color 0.2s ease !important;\n  background: none !important;\n  border: none !important;\n  width: 100% !important;\n}\n\n#ss-offer-page .ss-suppfacts-link:hover {\n  color: #1A1A1A !important;\n}\n\n\/* SUPPLEMENT FACTS MODAL *\/\n#ss-offer-page .ss-suppfacts-overlay {\n  position: fixed !important;\n  top: 0 !important;\n  left: 0 !important;\n  width: 100% !important;\n  height: 100% !important;\n  background: rgba(0,0,0,0.5) !important;\n  z-index: 10001 !important;\n  display: none !important;\n  align-items: center !important;\n  justify-content: center !important;\n  padding: 20px !important;\n}\n\n#ss-offer-page .ss-suppfacts-overlay.ss-suppfacts--open {\n  display: flex !important;\n}\n\n#ss-offer-page .ss-suppfacts-panel {\n  background: #FFFFFF !important;\n  border-radius: 12px !important;\n  max-width: 540px !important;\n  width: 100% !important;\n  max-height: 85vh !important;\n  overflow-y: auto !important;\n  position: relative !important;\n  padding: 32px 28px !important;\n  box-shadow: 0 24px 64px rgba(0,0,0,0.32), 0 4px 12px rgba(0,0,0,0.08) !important;\n}\n\n#ss-offer-page .ss-suppfacts-close {\n  position: absolute !important;\n  top: 12px !important;\n  right: 12px !important;\n  width: 32px !important;\n  height: 32px !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  background: #F3F4F6 !important;\n  border-radius: 50% !important;\n  border: none !important;\n  cursor: pointer !important;\n  font-size: 18px !important;\n  color: #6B7280 !important;\n  font-weight: 400 !important;\n  transition: background 0.2s ease !important;\n  line-height: 1 !important;\n}\n\n#ss-offer-page .ss-suppfacts-close:hover {\n  background: #E5E7EB !important;\n}\n\n#ss-offer-page .ss-suppfacts-title {\n  font-size: 18px !important;\n  font-weight: 800 !important;\n  color: #0F1419 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.5px !important;\n  margin-bottom: 4px !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-suppfacts-serving {\n  font-size: 13px !important;\n  color: #6B7280 !important;\n  margin-bottom: 16px !important;\n  line-height: 1.5 !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-suppfacts-table {\n  width: 100% !important;\n  border-collapse: collapse !important;\n}\n\n#ss-offer-page .ss-suppfacts-table thead th {\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.08em !important;\n  color: #6B7280 !important;\n  padding: 8px 0 !important;\n  text-align: left !important;\n  border-bottom: 2px solid #0F1419 !important;\n}\n\n#ss-offer-page .ss-suppfacts-table thead th:last-child {\n  text-align: right !important;\n}\n\n#ss-offer-page .ss-suppfacts-table tbody td {\n  font-size: 13px !important;\n  padding: 8px 0 !important;\n  border-bottom: 1px solid #F3F4F6 !important;\n  color: #1A1A1A !important;\n}\n\n#ss-offer-page .ss-suppfacts-table tbody td:first-child {\n  font-weight: 600 !important;\n}\n\n#ss-offer-page .ss-suppfacts-table tbody td:last-child {\n  text-align: right !important;\n  font-weight: 500 !important;\n  color: #374151 !important;\n}\n\n#ss-offer-page .ss-suppfacts-table tbody tr:last-child td {\n  border-bottom: 2px solid #0F1419 !important;\n}\n\n#ss-offer-page .ss-suppfacts-section {\n  font-size: 12px !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.12em !important;\n  color: #6B7280 !important;\n  margin: 28px 0 12px !important;\n  padding-top: 18px !important;\n  border-top: 1px solid #E5E7EB !important;\n}\n\n#ss-offer-page .ss-suppfacts-other,\n#ss-offer-page .ss-suppfacts-use {\n  font-size: 13px !important;\n  line-height: 1.55 !important;\n  color: #374151 !important;\n  margin: 0 0 8px !important;\n}\n\n#ss-offer-page .ss-suppfacts-warning {\n  font-size: 13px !important;\n  line-height: 1.55 !important;\n  color: #6B1E1E !important;\n  margin: 0 0 8px !important;\n}\n\n#ss-offer-page .ss-suppfacts-flavor-note {\n  font-size: 12px !important;\n  font-style: italic !important;\n  line-height: 1.5 !important;\n  color: #6B7280 !important;\n  margin: 10px 0 4px !important;\n}\n\n#ss-offer-page .ss-suppfacts-footer {\n  font-size: 11px !important;\n  line-height: 1.5 !important;\n  color: #9CA3AF !important;\n  margin-top: 24px !important;\n  padding-top: 16px !important;\n  border-top: 1px solid #E5E7EB !important;\n}\n\n\/* INFO ACCORDION *\/\n#ss-offer-page .ss-info-acc {\n  margin-top: 20px !important;\n  border-top: 1px solid #E5E7EB !important;\n}\n\n#ss-offer-page .ss-info-acc__item {\n  border-bottom: 1px solid #E5E7EB !important;\n}\n\n#ss-offer-page .ss-info-acc__question {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  padding: 14px 0 !important;\n  cursor: pointer !important;\n  background: none !important;\n  border: none !important;\n  width: 100% !important;\n  text-align: left !important;\n  font-family: 'Graphik', sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  color: #1A1A1A !important;\n  line-height: 1.4 !important;\n}\n\n#ss-offer-page .ss-info-acc__toggle {\n  width: 20px !important;\n  height: 20px !important;\n  flex-shrink: 0 !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  font-size: 1.1rem !important;\n  font-weight: 300 !important;\n  color: #9CA3AF !important;\n  transition: transform 0.2s ease !important;\n  margin-left: 12px !important;\n}\n\n#ss-offer-page .ss-info-acc__item.ss-info-acc--open .ss-info-acc__toggle {\n  transform: rotate(45deg) !important;\n}\n\n#ss-offer-page .ss-info-acc__answer {\n  max-height: 0 !important;\n  overflow: hidden !important;\n  transition: max-height 0.3s ease, padding 0.3s ease !important;\n  padding: 0 !important;\n}\n\n#ss-offer-page .ss-info-acc__item.ss-info-acc--open .ss-info-acc__answer {\n  max-height: 300px !important;\n  padding: 0 0 14px !important;\n}\n\n#ss-offer-page .ss-info-acc__answer p {\n  font-size: 13px !important;\n  color: #6B6B6B !important;\n  line-height: 1.7 !important;\n  margin: 0 !important;\n}\n\n\/* TRUST ROW *\/\n#ss-offer-page .ss-trust-row {\n  display: flex !important;\n  justify-content: center !important;\n  gap: 20px !important;\n  margin-top: 20px !important;\n  margin-bottom: 2px !important;\n  flex-wrap: wrap !important;\n}\n\n#ss-offer-page .ss-trust-item {\n  display: flex !important;\n  align-items: center !important;\n  gap: 6px !important;\n  font-size: 12px !important;\n  font-weight: 600 !important;\n  color: #374151 !important;\n}\n\n#ss-offer-page .ss-trust-item svg { width: 16px !important; height: 16px !important; flex-shrink: 0 !important; }\n\n\n\/* ==========================================================================\n   BELOW FOLD -- full-width PDP-style sections\n   ========================================================================== *\/\n\n#ss-offer-page .ss-bf { width: 100% !important; }\n#ss-offer-page .ss-bf * { box-sizing: border-box; }\n\n\/* --- SECTION: Stocked In-Store Bar --- *\/\n#ss-offer-page .ss-stocked {\n  padding: 28px 0 !important;\n  background: #F8F9FA !important;\n  border-top: 1px solid #E5E7EB !important;\n  border-bottom: 1px solid #E5E7EB !important;\n  width: 100% !important;\n}\n#ss-offer-page .ss-stocked__inner {\n  max-width: 800px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  text-align: center !important;\n}\n#ss-offer-page .ss-stocked__label {\n  font-size: 11px !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.12em !important;\n  color: #9CA3AF !important;\n  text-transform: uppercase !important;\n  margin-bottom: 16px !important;\n}\n#ss-offer-page .ss-stocked__logos {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: 40px !important;\n  flex-wrap: wrap !important;\n}\n#ss-offer-page .ss-stocked__logo {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n}\n#ss-offer-page .ss-stocked__logo img {\n  height: 32px !important;\n  width: auto !important;\n  max-width: 160px !important;\n  object-fit: contain !important;\n  filter: grayscale(100%) !important;\n  opacity: 0.6 !important;\n}\n\n\/* --- SECTION: UGC Videos --- *\/\n#ss-offer-page .ss-ugc {\n  padding: 64px 0 !important;\n  width: 100% !important;\n  background: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-ugc__inner {\n  max-width: 1200px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-ugc__label {\n  font-size: 0.8125rem !important;\n  font-weight: 600 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.1em !important;\n  color: #FF1F2D !important;\n  margin-bottom: 12px !important;\n}\n\n#ss-offer-page .ss-ugc__headline {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: clamp(1.75rem, 4vw, 2.5rem) !important;\n  font-weight: 400 !important;\n  color: #1A1A1A !important;\n  letter-spacing: -0.01em !important;\n  line-height: 1.15 !important;\n  margin-bottom: 40px !important;\n}\n\n#ss-offer-page .ss-ugc__headline span { font-weight: 300 !important; }\n\n#ss-offer-page .ss-ugc__wrap { position: relative !important; }\n\n#ss-offer-page .ss-ugc__grid {\n  display: grid !important;\n  grid-template-columns: repeat(3, 1fr) !important;\n  gap: 16px !important;\n}\n\n#ss-offer-page .ss-ugc__item {\n  position: relative !important;\n  border-radius: 12px !important;\n  overflow: hidden !important;\n  background: #000 !important;\n  aspect-ratio: 1 \/ 1 !important;\n}\n\n#ss-offer-page .ss-ugc__item video,\n#ss-offer-page .ss-ugc__item img {\n  width: 100% !important;\n  height: 100% !important;\n  object-fit: cover !important;\n  display: block !important;\n}\n\n#ss-offer-page .ss-ugc__arrow {\n  display: none !important;\n  position: absolute !important;\n  top: 50% !important;\n  transform: translateY(-50%) !important;\n  width: 40px !important;\n  height: 40px !important;\n  border-radius: 50% !important;\n  background: rgba(255,255,255,0.9) !important;\n  border: 1px solid #E5E7EB !important;\n  cursor: pointer !important;\n  z-index: 2 !important;\n  align-items: center !important;\n  justify-content: center !important;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;\n  padding: 0 !important;\n}\n#ss-offer-page .ss-ugc__arrow svg { width: 20px !important; height: 20px !important; color: #1A1A1A !important; }\n#ss-offer-page .ss-ugc__arrow--prev { left: -8px !important; }\n#ss-offer-page .ss-ugc__arrow--next { right: -8px !important; }\n\n#ss-offer-page .ss-ugc__dots {\n  display: none !important;\n  justify-content: center !important;\n  gap: 8px !important;\n  margin-top: 20px !important;\n}\n\n#ss-offer-page .ss-ugc__dot {\n  width: 8px !important;\n  height: 8px !important;\n  border-radius: 50% !important;\n  background: #E5E7EB !important;\n  border: none !important;\n  padding: 0 !important;\n  cursor: pointer !important;\n  transition: background 0.3s !important;\n}\n#ss-offer-page .ss-ugc__dot.active { background: #FF1F2D !important; }\n\n\n\/* --- SECTION: Ingredient Breakdown --- *\/\n#ss-offer-page .ss-ingr {\n  padding: 80px 0 !important;\n  width: 100% !important;\n  background: #F8F9FA !important;\n}\n\n#ss-offer-page .ss-ingr__inner {\n  max-width: 1200px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-ingr__label {\n  font-size: 0.8125rem !important;\n  font-weight: 600 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.1em !important;\n  color: #FF1F2D !important;\n  margin-bottom: 12px !important;\n}\n\n#ss-offer-page .ss-ingr__headline {\n  font-family: 'Instrument Sans', system-ui, sans-serif !important;\n  font-size: clamp(1.875rem, 4vw, 2.625rem) !important;\n  font-weight: 500 !important;\n  color: #0F1419 !important;\n  letter-spacing: -0.02em !important;\n  line-height: 1.12 !important;\n  margin-bottom: 14px !important;\n}\n\n#ss-offer-page .ss-ingr__sub {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: 15px !important;\n  font-weight: 400 !important;\n  color: #4B5563 !important;\n  line-height: 1.5 !important;\n  margin-bottom: 48px !important;\n  max-width: 640px !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n\n#ss-offer-page .ss-ingr__grid {\n  display: grid !important;\n  grid-template-columns: repeat(3, 1fr) !important;\n  gap: 20px !important;\n}\n\n#ss-offer-page .ss-ingr__card {\n  background: transparent !important;\n  border-radius: 0 !important;\n  padding: 0 !important;\n  text-align: center !important;\n  box-shadow: none !important;\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: center !important;\n}\n\n#ss-offer-page .ss-ingr__card-image {\n  width: 100% !important;\n  aspect-ratio: 3\/4 !important;\n  border-radius: 50% \/ 35% !important;\n  overflow: hidden !important;\n  background: #F4F1EA !important;\n  margin-bottom: 20px !important;\n}\n\n#ss-offer-page .ss-ingr__card-image img {\n  width: 100% !important;\n  height: 100% !important;\n  object-fit: cover !important;\n  display: block !important;\n}\n\n#ss-offer-page .ss-ingr__card-name {\n  font-size: 0.8125rem !important;\n  font-weight: 600 !important;\n  color: #1A1A1A !important;\n  margin-bottom: 10px !important;\n  letter-spacing: 0.12em !important;\n  text-transform: uppercase !important;\n}\n\n#ss-offer-page .ss-ingr__card-dose {\n  display: inline-block !important;\n  background: #FFF5F2 !important;\n  color: #FF1F2D !important;\n  font-size: 0.75rem !important;\n  font-weight: 700 !important;\n  padding: 3px 10px !important;\n  border-radius: 20px !important;\n  margin-bottom: 12px !important;\n}\n\n#ss-offer-page .ss-ingr__card-desc {\n  font-size: 0.875rem !important;\n  color: #4B5563 !important;\n  line-height: 1.6 !important;\n  text-align: left !important;\n  max-width: 100% !important;\n}\n\n#ss-offer-page .ss-ingr__card-desc strong {\n  display: block !important;\n  font-weight: 700 !important;\n  color: #1A1A1A !important;\n  margin-bottom: 4px !important;\n}\n\n\n\/* --- SECTION: Free-Of Badges --- *\/\n#ss-offer-page .ss-badges {\n  padding: 48px 0 !important;\n  width: 100% !important;\n  background: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-badges__inner {\n  max-width: 1200px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  display: flex !important;\n  justify-content: center !important;\n  align-items: center !important;\n  flex-wrap: wrap !important;\n  gap: 12px !important;\n}\n\n#ss-offer-page .ss-badges__pill {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  padding: 10px 20px !important;\n  border: 1px solid #E5E7EB !important;\n  border-radius: 50px !important;\n  background: #F9FAFB !important;\n  font-size: 0.875rem !important;\n  font-weight: 600 !important;\n  color: #374151 !important;\n  white-space: nowrap !important;\n}\n\n#ss-offer-page .ss-badges__pill svg {\n  width: 16px !important;\n  height: 16px !important;\n  flex-shrink: 0 !important;\n}\n\n\n\/* --- SECTION: Why Ripple (WHITE bg) --- *\/\n#ss-offer-page .ss-why {\n  padding: 80px 0 !important;\n  width: 100% !important;\n  background: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-why__inner {\n  max-width: 1100px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-why__headline {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: clamp(1.75rem, 3.5vw, 2.25rem) !important;\n  font-weight: 400 !important;\n  color: #1A1A1A !important;\n  margin-bottom: 48px !important;\n  letter-spacing: -0.01em !important;\n}\n\n#ss-offer-page .ss-why__grid {\n  display: grid !important;\n  grid-template-columns: repeat(2, 1fr) !important;\n  gap: 16px !important;\n}\n\n#ss-offer-page .ss-why__card {\n  background: #F8F9FA !important;\n  border-radius: 12px !important;\n  padding: 24px 20px !important;\n  text-align: left !important;\n  box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04) !important;\n}\n\n#ss-offer-page .ss-why__card-title {\n  font-size: 0.9375rem !important;\n  font-weight: 700 !important;\n  color: #1A1A1A !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.03em !important;\n  margin-bottom: 8px !important;\n}\n\n#ss-offer-page .ss-why__card-body {\n  font-size: 0.875rem !important;\n  color: #6B6B6B !important;\n  line-height: 1.6 !important;\n}\n\n\n\/* --- SECTION: Comparison Table --- *\/\n#ss-offer-page .ss-comp {\n  background: #F8F9FA !important;\n  padding: 80px 0 !important;\n  width: 100% !important;\n}\n\n#ss-offer-page .ss-comp__inner {\n  max-width: 1200px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  display: grid !important;\n  grid-template-columns: 1fr 1fr !important;\n  gap: 64px !important;\n  align-items: center !important;\n}\n\n#ss-offer-page .ss-comp__label {\n  font-size: 0.8125rem !important;\n  font-weight: 600 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.1em !important;\n  color: #FF1F2D !important;\n  margin-bottom: 16px !important;\n}\n\n#ss-offer-page .ss-comp__headline {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: clamp(2rem, 4vw, 2.75rem) !important;\n  font-weight: 400 !important;\n  color: #1A1A1A !important;\n  letter-spacing: -0.01em !important;\n  line-height: 1.15 !important;\n  margin-bottom: 8px !important;\n}\n\n#ss-offer-page .ss-comp__headline span { font-weight: 300 !important; }\n\n#ss-offer-page .ss-comp__sub {\n  font-size: 1rem !important;\n  color: #6B6B6B !important;\n  line-height: 1.7 !important;\n  margin-bottom: 40px !important;\n  max-width: 520px !important;\n}\n\n#ss-offer-page .ss-comp__table {\n  width: 100% !important;\n  border-collapse: collapse !important;\n}\n\n#ss-offer-page .ss-comp__table thead th {\n  font-size: 0.75rem !important;\n  font-weight: 600 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.08em !important;\n  color: #6B6B6B !important;\n  padding: 0 16px 12px !important;\n  text-align: left !important;\n  border-bottom: 2px solid #E5E7EB !important;\n  font-family: 'Graphik', sans-serif !important;\n}\n\n#ss-offer-page .ss-comp__table thead th:nth-child(2),\n#ss-offer-page .ss-comp__table thead th:nth-child(3) {\n  text-align: center !important;\n  width: 100px !important;\n}\n\n#ss-offer-page .ss-comp__table tbody td {\n  font-size: 0.9375rem !important;\n  padding: 14px 16px !important;\n  border-bottom: 1px solid #E5E7EB !important;\n  color: #1A1A1A !important;\n  font-family: 'Graphik', sans-serif !important;\n}\n\n#ss-offer-page .ss-comp__table tbody td:nth-child(2),\n#ss-offer-page .ss-comp__table tbody td:nth-child(3) {\n  text-align: center !important;\n}\n\n#ss-offer-page .ss-comp__check {\n  display: inline-flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  width: 28px !important;\n  height: 28px !important;\n  border-radius: 50% !important;\n  background: #FFF5F2 !important;\n}\n\n#ss-offer-page .ss-comp__check svg { width: 16px !important; height: 16px !important; }\n\n#ss-offer-page .ss-comp__cost {\n  font-size: 0.875rem !important;\n  color: #6B6B6B !important;\n  font-weight: 500 !important;\n}\n\n#ss-offer-page .ss-comp__total td {\n  font-weight: 700 !important;\n  font-size: 1rem !important;\n  border-bottom: none !important;\n  padding-top: 18px !important;\n  border-top: 2px solid #E5E7EB !important;\n}\n\n#ss-offer-page .ss-comp__total td:nth-child(2) { color: #FF1F2D !important; }\n#ss-offer-page .ss-comp__total td:nth-child(3) { color: #1A1A1A !important; }\n\n#ss-offer-page .ss-comp__footnote {\n  font-size: 0.75rem !important;\n  color: #9CA3AF !important;\n  margin-top: 16px !important;\n  font-style: italic !important;\n}\n\n#ss-offer-page .ss-comp__image {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n}\n\n#ss-offer-page .ss-comp__image img {\n  max-width: 100% !important;\n  height: auto !important;\n  display: block !important;\n  border-radius: 16px !important;\n}\n\n\n\/* --- SECTION: FAQ Accordion --- *\/\n#ss-offer-page .ss-faq {\n  padding: 80px 0 !important;\n  width: 100% !important;\n  background: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-faq__inner {\n  max-width: 800px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-faq__headline {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: clamp(1.75rem, 4vw, 2.5rem) !important;\n  font-weight: 400 !important;\n  color: #1A1A1A !important;\n  letter-spacing: -0.01em !important;\n  line-height: 1.15 !important;\n  margin-bottom: 48px !important;\n}\n\n#ss-offer-page .ss-faq__list {\n  text-align: left !important;\n}\n\n#ss-offer-page .ss-faq__item {\n  border: 1px solid #E5E7EB !important;\n  border-radius: 10px !important;\n  margin-bottom: 8px !important;\n  overflow: hidden !important;\n  background: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-faq__question {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  padding: 18px 20px !important;\n  cursor: pointer !important;\n  background: none !important;\n  border: none !important;\n  width: 100% !important;\n  text-align: left !important;\n  font-family: 'Graphik', sans-serif !important;\n  font-size: 0.9375rem !important;\n  font-weight: 600 !important;\n  color: #1A1A1A !important;\n  line-height: 1.4 !important;\n}\n\n#ss-offer-page .ss-faq__toggle {\n  width: 24px !important;\n  height: 24px !important;\n  flex-shrink: 0 !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  font-size: 1.25rem !important;\n  font-weight: 300 !important;\n  color: #9CA3AF !important;\n  transition: transform 0.2s ease !important;\n  margin-left: 12px !important;\n}\n\n#ss-offer-page .ss-faq__item.ss-faq--open .ss-faq__toggle {\n  transform: rotate(45deg) !important;\n}\n\n#ss-offer-page .ss-faq__answer {\n  max-height: 0 !important;\n  overflow: hidden !important;\n  transition: max-height 0.3s ease, padding 0.3s ease !important;\n  padding: 0 20px !important;\n}\n\n#ss-offer-page .ss-faq__item.ss-faq--open .ss-faq__answer {\n  max-height: 300px !important;\n  padding: 0 20px 18px !important;\n}\n\n#ss-offer-page .ss-faq__answer p {\n  font-size: 0.875rem !important;\n  color: #6B6B6B !important;\n  line-height: 1.7 !important;\n  margin: 0 !important;\n}\n\n\n\/* --- SECTION: Reviews Carousel --- *\/\n#ss-offer-page .ss-reviews {\n  padding: 80px 0 !important;\n  background: #F8F9FA !important;\n  width: 100% !important;\n}\n#ss-offer-page .ss-reviews__inner {\n  max-width: 800px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n}\n#ss-offer-page .ss-reviews__headline {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: clamp(1.5rem, 3vw, 2rem) !important;\n  font-weight: 700 !important;\n  color: #1A1A1A !important;\n  text-align: left !important;\n  margin-bottom: 12px !important;\n  letter-spacing: -0.01em !important;\n}\n#ss-offer-page .ss-reviews__sub {\n  font-size: 0.9375rem !important;\n  color: #6B6B6B !important;\n  text-align: left !important;\n  margin-bottom: 32px !important;\n}\n#ss-offer-page .ss-reviews__track {\n  display: flex !important;\n  gap: 20px !important;\n  overflow-x: auto !important;\n  scroll-snap-type: x mandatory !important;\n  -webkit-overflow-scrolling: touch !important;\n  scrollbar-width: none !important;\n  padding-bottom: 4px !important;\n}\n#ss-offer-page .ss-reviews__track::-webkit-scrollbar { display: none !important; }\n#ss-offer-page .ss-reviews__card {\n  flex: 0 0 100% !important;\n  scroll-snap-align: start !important;\n  background: #FFFFFF !important;\n  border: 1px solid #E5E7EB !important;\n  border-radius: 12px !important;\n  padding: 28px 24px !important;\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 16px !important;\n}\n#ss-offer-page .ss-reviews__stars {\n  display: flex !important;\n  gap: 3px !important;\n  color: #F59E0B !important;\n}\n#ss-offer-page .ss-reviews__stars svg { width: 16px !important; height: 16px !important; }\n#ss-offer-page .ss-reviews__quote {\n  font-size: 0.9375rem !important;\n  color: #1A1A1A !important;\n  line-height: 1.7 !important;\n  font-style: normal !important;\n}\n#ss-offer-page .ss-reviews__author {\n  display: flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n}\n#ss-offer-page .ss-reviews__name {\n  font-size: 0.875rem !important;\n  font-weight: 600 !important;\n  color: #1A1A1A !important;\n}\n#ss-offer-page .ss-reviews__verified {\n  font-size: 0.75rem !important;\n  color: #16A34A !important;\n  font-weight: 500 !important;\n}\n#ss-offer-page .ss-reviews__dots {\n  display: flex !important;\n  justify-content: center !important;\n  gap: 8px !important;\n  margin-top: 20px !important;\n}\n#ss-offer-page .ss-reviews__dot {\n  width: 8px !important;\n  height: 8px !important;\n  border-radius: 50% !important;\n  background: #D1D5DB !important;\n  border: none !important;\n  cursor: pointer !important;\n  transition: background 0.2s !important;\n  padding: 0 !important;\n}\n#ss-offer-page .ss-reviews__dot.ss-active { background: #1A1A1A !important; }\n\n@media (min-width: 768px) {\n  #ss-offer-page .ss-reviews__card { flex: 0 0 calc(33.333% - 14px) !important; }\n  #ss-offer-page .ss-reviews__track { overflow-x: visible !important; flex-wrap: wrap !important; }\n  #ss-offer-page .ss-reviews__dots { display: none !important; }\n}\n\n\n\/* --- SECTION: Trust Bar --- *\/\n#ss-offer-page .ss-tbar {\n  background: #1A1A1A !important;\n  padding: 20px 0 !important;\n  width: 100% !important;\n}\n\n#ss-offer-page .ss-tbar__inner {\n  max-width: 1200px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  display: flex !important;\n  justify-content: center !important;\n  align-items: center !important;\n  gap: 48px !important;\n}\n\n#ss-offer-page .ss-tbar__item {\n  display: flex !important;\n  align-items: center !important;\n  gap: 10px !important;\n}\n\n#ss-offer-page .ss-tbar__icon {\n  flex-shrink: 0 !important;\n  width: 20px !important;\n  height: 20px !important;\n  color: #FF1F2D !important;\n}\n\n#ss-offer-page .ss-tbar__icon svg { width: 20px !important; height: 20px !important; display: block !important; }\n\n#ss-offer-page .ss-tbar__label {\n  font-size: 0.875rem !important;\n  font-weight: 600 !important;\n  color: #FFFFFF !important;\n  white-space: nowrap !important;\n}\n\n\n\/* --- SECTION: Risk Reversal --- *\/\n#ss-offer-page .ss-risk {\n  position: relative !important;\n  padding: 80px 0 !important;\n  width: 100% !important;\n  overflow: hidden !important;\n}\n\n#ss-offer-page .ss-risk__bg {\n  position: absolute !important;\n  top: 0 !important;\n  left: 0 !important;\n  width: 100% !important;\n  height: 100% !important;\n  background-image: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/hf_20260520_211513_babf5f84-e9e3-4adc-ba44-c0403501c033.webp?v=1779313733') !important;\n  background-size: cover !important;\n  background-position: center !important;\n  z-index: 0 !important;\n}\n\n#ss-offer-page .ss-risk__overlay {\n  position: absolute !important;\n  top: 0 !important;\n  left: 0 !important;\n  width: 100% !important;\n  height: 100% !important;\n  background: rgba(0, 0, 0, 0.65) !important;\n  z-index: 1 !important;\n}\n\n#ss-offer-page .ss-risk__inner {\n  position: relative !important;\n  z-index: 2 !important;\n  max-width: 640px !important;\n  margin: 0 auto !important;\n  padding: 0 24px !important;\n  text-align: center !important;\n}\n\n#ss-offer-page .ss-risk__icon {\n  width: 52px !important;\n  height: 52px !important;\n  margin: 0 auto 24px !important;\n  color: #FFFFFF !important;\n}\n\n#ss-offer-page .ss-risk__icon svg { width: 52px !important; height: 52px !important; display: block !important; }\n\n#ss-offer-page .ss-risk__headline {\n  font-family: 'Graphik', -apple-system, BlinkMacSystemFont, sans-serif !important;\n  font-size: clamp(1.75rem, 3.5vw, 2.25rem) !important;\n  font-weight: 400 !important;\n  color: #FFFFFF !important;\n  margin-bottom: 16px !important;\n  letter-spacing: -0.01em !important;\n}\n\n#ss-offer-page .ss-risk__body {\n  font-size: 1.0625rem !important;\n  color: rgba(255, 255, 255, 0.85) !important;\n  line-height: 1.7 !important;\n  max-width: 520px !important;\n  margin: 0 auto !important;\n}\n\n\n\/* --- STICKY CTA BAR --- *\/\n\/* BJ-style floating glass pill panel (image + name + CTA) · capped width on desktop *\/\n#ss-offer-page .ss-sticky {\n  position: fixed !important;\n  bottom: 20px !important;\n  left: 50% !important;\n  right: auto !important;\n  transform: translate(-50%, 130%) !important;\n  width: calc(100% - 80px) !important;\n  max-width: 640px !important;\n  height: auto !important;\n  z-index: 9999 !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: stretch !important;\n  opacity: 0 !important;\n  pointer-events: none !important;\n  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease !important;\n}\n\n#ss-offer-page .ss-sticky.ss-sticky--visible {\n  transform: translate(-50%, 0) !important;\n  opacity: 1 !important;\n  pointer-events: auto !important;\n}\n\n\/* The pill PANEL itself *\/\n#ss-offer-page .ss-sticky__inner {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 14px !important;\n  width: 100% !important;\n  padding: 8px 8px 8px 14px !important;\n  background: rgba(255, 255, 255, 0.78) !important;\n  backdrop-filter: blur(20px) saturate(180%) !important;\n  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;\n  border: 1px solid rgba(255, 255, 255, 0.6) !important;\n  border-radius: 999px !important;\n  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.08) !important;\n}\n\n\/* Left group: image + name pushed left, button stays right via space-between *\/\n#ss-offer-page .ss-sticky__name {\n  margin-right: auto !important;\n}\n\n#ss-offer-page .ss-sticky__img {\n  width: 44px !important;\n  height: 44px !important;\n  border-radius: 50% !important;\n  object-fit: cover !important;\n  background: #F4F1EA !important;\n  flex-shrink: 0 !important;\n}\n\n#ss-offer-page .ss-sticky__name {\n  font-family: 'Instrument Sans', system-ui, sans-serif !important;\n  font-size: 16px !important;\n  font-weight: 500 !important;\n  color: #0F1419 !important;\n  letter-spacing: -0.01em !important;\n  white-space: nowrap !important;\n}\n\n#ss-offer-page .ss-sticky__price { display: none !important; }\n\n#ss-offer-page .ss-sticky__btn {\n  background: #0F1419 !important;\n  color: #FFFFFF !important;\n  font-size: 13px !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.06em !important;\n  text-transform: uppercase !important;\n  padding: 12px 22px !important;\n  border-radius: 999px !important;\n  border: none !important;\n  cursor: pointer !important;\n  white-space: nowrap !important;\n  transition: background 0.2s ease, transform 0.15s ease !important;\n  flex-shrink: 0 !important;\n}\n\n#ss-offer-page .ss-sticky__btn:hover {\n  background: #1A1A1A !important;\n}\n\n\n\/* ==========================================================================\n   MOBILE RESPONSIVE\n   ========================================================================== *\/\n\n@media (max-width: 900px) {\n  #ss-offer-page { margin-top: 0 !important; }\n  #ss-offer-page .ss-main {\n    flex-direction: column !important;\n    min-height: auto !important;\n    overflow: visible !important;\n  }\n  #ss-offer-page .ss-left {\n    width: 100% !important;\n    padding: 0 !important;\n    height: auto !important;\n    min-height: 0 !important;\n    position: relative !important;\n    overflow: visible !important;\n  }\n  #ss-offer-page .ss-stack { display: flex !important; flex-direction: column !important; gap: 16px !important; width: 100% !important; max-width: 440px !important; align-items: stretch !important; margin: 0 auto !important; }\n#ss-offer-page .ss-thumb-strip { display: flex !important; flex-direction: row !important; gap: 8px !important; justify-content: flex-start !important; align-items: stretch !important; padding: 0 !important; margin: 0 !important; width: 100% !important; }\n#ss-offer-page .ss-thumb { width: 64px !important; height: 64px !important; flex: 0 0 64px !important; padding: 0 !important; border: 2px solid #E5E5E5 !important; background: #FFFFFF !important; border-radius: 0 !important; cursor: pointer !important; overflow: hidden !important; transition: border-color 0.15s ease !important; touch-action: manipulation !important; -webkit-tap-highlight-color: rgba(191,36,23,0.3) !important; position: relative !important; z-index: 5 !important; }\n#ss-offer-page .ss-thumb img { width: 100% !important; height: 100% !important; object-fit: contain !important; display: block !important; pointer-events: none !important; }\n#ss-offer-page .ss-thumb.is-active { border-color: #FF1F2D !important; }\n#ss-offer-page .ss-thumb:hover { border-color: #FF1F2D !important; }\n@media (max-width: 768px) {\n  #ss-offer-page .ss-left { aspect-ratio: auto !important; overflow: visible !important; height: auto !important; }\n  #ss-offer-page .ss-product-hero { aspect-ratio: 1 \/ 1 !important; height: auto !important; width: 100% !important; }\n  #ss-offer-page .ss-stack { max-width: none !important; padding: 0 16px 0 !important; gap: 12px !important; }\n  #ss-offer-page .ss-thumb-strip { overflow-x: auto !important; scrollbar-width: none !important; -webkit-overflow-scrolling: touch !important; scroll-snap-type: x mandatory !important; padding-bottom: 4px !important; }\n  #ss-offer-page .ss-thumb-strip::-webkit-scrollbar { display: none !important; }\n  #ss-offer-page .ss-thumb { scroll-snap-align: start !important; }\n}\n#ss-offer-page .ss-product-hero { height: 100% !important; }\n  #ss-offer-page .ss-hero-img { width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: center center !important; background: #FFFFFF !important; }\n  #ss-offer-page .ss-right { width: 100% !important; padding: 28px 20px 40px !important; overflow-y: visible !important; align-items: flex-start !important; }\n  #ss-offer-page .ss-headline { font-size: 28px !important; }\n  #ss-offer-page .ss-step-label { text-align: left !important; }\n  #ss-offer-page .ss-cta-sub { text-align: left !important; }\n  #ss-offer-page .ss-trust-row { justify-content: flex-start !important; }\n}\n\n@media (max-width: 767px) {\n  \/* UGC mobile carousel *\/\n  #ss-offer-page .ss-ugc { padding: 24px 0 16px !important; }\n  #ss-offer-page .ss-ugc__inner { padding: 0 8px !important; }\n  #ss-offer-page .ss-ugc__headline { margin-bottom: 16px !important; font-size: 1.5rem !important; }\n  #ss-offer-page .ss-ugc__label { margin-bottom: 8px !important; font-size: 0.6875rem !important; }\n  #ss-offer-page .ss-ugc__grid {\n    display: flex !important;\n    overflow: hidden !important;\n    gap: 0 !important;\n  }\n  #ss-offer-page .ss-ugc__item {\n    min-width: 100% !important;\n    flex-shrink: 0 !important;\n    border-radius: 8px !important;\n    transition: transform 0.4s ease !important;\n    max-height: 70vh !important;\n  }\n  #ss-offer-page .ss-ugc__arrow {\n    display: flex !important;\n    width: 36px !important;\n    height: 36px !important;\n  }\n  #ss-offer-page .ss-ugc__arrow--prev { left: 4px !important; }\n  #ss-offer-page .ss-ugc__arrow--next { right: 4px !important; }\n  #ss-offer-page .ss-ugc__dots { display: flex !important; margin-top: 12px !important; }\n\n  \/* Ingredient Breakdown mobile *\/\n  #ss-offer-page .ss-ingr { padding: 56px 0 !important; }\n  #ss-offer-page .ss-ingr__headline { margin-bottom: 32px !important; }\n  #ss-offer-page .ss-ingr__grid { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; scroll-snap-type: x mandatory !important; gap: 12px !important; padding: 0 24px 8px !important; margin: 0 -24px !important; scrollbar-width: none !important; -webkit-overflow-scrolling: touch !important; }\n  #ss-offer-page .ss-ingr__grid::-webkit-scrollbar { display: none !important; }\n  #ss-offer-page .ss-ingr__card { flex: 0 0 78% !important; scroll-snap-align: start !important; }\n  #ss-offer-page .ss-ingr__card { padding: 20px 16px !important; }\n\n  \/* Badges mobile *\/\n  #ss-offer-page .ss-badges { padding: 36px 0 !important; }\n  #ss-offer-page .ss-badges__inner { gap: 8px !important; }\n  #ss-offer-page .ss-badges__pill { font-size: 0.8125rem !important; padding: 8px 14px !important; }\n\n  \/* Why section mobile *\/\n  #ss-offer-page .ss-why { padding: 56px 0 !important; }\n  #ss-offer-page .ss-why__headline { margin-bottom: 24px !important; }\n  #ss-offer-page .ss-why__grid { grid-template-columns: 1fr !important; gap: 12px !important; }\n  #ss-offer-page .ss-why__card { padding: 20px 16px !important; }\n\n  \/* Comparison mobile *\/\n  #ss-offer-page .ss-comp { padding: 56px 0 !important; }\n  #ss-offer-page .ss-comp__inner {\n    grid-template-columns: 1fr !important;\n    gap: 32px !important;\n    padding: 0 16px !important;\n  }\n  #ss-offer-page .ss-comp__content { text-align: left !important; }\n  #ss-offer-page .ss-comp__sub { text-align: left !important; }\n  #ss-offer-page .ss-comp__footnote { text-align: left !important; }\n  #ss-offer-page .ss-comp__image { order: -1 !important; }\n  #ss-offer-page .ss-comp__image img { max-width: 280px !important; margin: 0 auto !important; }\n  #ss-offer-page .ss-comp__table thead th { font-size: 0.6875rem !important; padding: 0 8px 10px !important; }\n  #ss-offer-page .ss-comp__table tbody td { font-size: 0.8125rem !important; padding: 10px 8px !important; }\n\n  \/* FAQ mobile *\/\n  #ss-offer-page .ss-faq { padding: 56px 0 !important; }\n  #ss-offer-page .ss-faq__headline { margin-bottom: 32px !important; }\n  #ss-offer-page .ss-faq__question { font-size: 0.875rem !important; padding: 16px !important; }\n  #ss-offer-page .ss-faq__answer { padding: 0 16px !important; }\n  #ss-offer-page .ss-faq__item.ss-faq--open .ss-faq__answer { padding: 0 16px 16px !important; }\n  #ss-offer-page .ss-faq__answer p { font-size: 0.8125rem !important; }\n\n  \/* Reviews mobile *\/\n  #ss-offer-page .ss-reviews { padding: 56px 0 !important; }\n  #ss-offer-page .ss-reviews__inner { padding: 0 16px !important; }\n  #ss-offer-page .ss-reviews__card { padding: 24px 20px !important; }\n\n  \/* Trust bar mobile *\/\n  #ss-offer-page .ss-tbar__inner {\n    flex-direction: column !important;\n    gap: 12px !important;\n    padding: 0 16px !important;\n  }\n  #ss-offer-page .ss-tbar__item { justify-content: center !important; }\n\n  \/* Risk reversal mobile *\/\n  #ss-offer-page .ss-risk { padding: 56px 0 !important; }\n\n  \/* Sticky CTA mobile -- full-width button only *\/\n  #ss-offer-page .ss-sticky { left: 50% !important; right: auto !important; transform: translate(-50%, 130%) !important; width: calc(100% - 32px) !important; max-width: none !important; bottom: 16px !important; }\n  #ss-offer-page .ss-sticky__name { font-size: 15px !important; }\n  #ss-offer-page .ss-sticky__btn { padding: 12px 22px !important; font-size: 12px !important; }\n\n  \/* Supplement facts modal -- full screen on mobile *\/\n  #ss-offer-page .ss-suppfacts-overlay {\n    padding: 0 !important;\n    align-items: flex-end !important;\n  }\n  #ss-offer-page .ss-suppfacts-panel {\n    max-width: 100% !important;\n    max-height: 90vh !important;\n    border-radius: 16px 16px 0 0 !important;\n    padding: 24px 20px !important;\n  }\n\n  \/* Flavour chips wrap *\/\n  #ss-offer-page .ss-flav-chips {\n    gap: 6px !important;\n  }\n  #ss-offer-page .ss-flav-chip {\n    padding: 7px 14px !important;\n    font-size: 12px !important;\n  }\n}\n\n@media (max-width: 480px) {\n  #ss-offer-page .ss-left { padding: 0 !important; }\n  #ss-offer-page .ss-hero-img { object-fit: contain !important; object-position: center center !important; background: #FFFFFF !important; }\n  #ss-offer-page .ss-right { padding: 24px 16px 36px !important; align-items: flex-start !important; }\n  #ss-offer-page .ss-headline { font-size: 26px !important; }\n  #ss-offer-page .ss-bundle-cards { gap: 14px !important; }\n  #ss-offer-page .ss-bundle-card { padding: 44px 14px 16px 42px !important; }\n  #ss-offer-page .ss-bundle-card.ss-bundle-otp { padding: 16px 14px 16px 42px !important; }\n  #ss-offer-page .ss-bundle-radio { left: 14px !important; top: 48px !important; }\n  #ss-offer-page .ss-bundle-card.ss-bundle-otp .ss-bundle-radio { top: 18px !important; }\n  #ss-offer-page .ss-trust-row { justify-content: flex-start !important; flex-wrap: wrap !important; }\n  #ss-offer-page .ss-cta { padding: 16px 24px !important; font-size: 15px !important; }\n}\n\n\/* === SmartSups unify standard 2026-05-19 === *\/\n#ss-app, #ss-app * { font-family: 'Inconsolata', ui-monospace, monospace !important; }\n#ss-app h1, #ss-app h2, #ss-app h3, #ss-app h4, #ss-app h5,\n#ss-app [class*=\"headline\"], #ss-app [class*=\"title\"], #ss-app [class*=\"heading\"],\n#ss-app [class*=\"__name\"], #ss-app [class*=\"btn\"], #ss-app [class*=\"cta\"],\n#ss-app button { font-family: 'Instrument Sans', system-ui, sans-serif !important; }\n\u003c\/style\u003e\n\n\u003cdiv id=\"ss-offer-page\"\u003e\u003cdiv id=\"ss-app\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\n\u003c!-- Meta Pixel (NEW account) --\u003e\n\u003cscript\u003e\n  !function(f,b,e,v,n,t,s){n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;\n  n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,\n  document,'script','https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n  fbq('init', '1265294538856011');\n  fbq('track', 'PageView');\n\u003c\/script\u003e\n\u003cnoscript\u003e\u003cimg height=\"1\" width=\"1\" style=\"display:none\" src=\"https:\/\/www.facebook.com\/tr?id=1265294538856011\u0026amp;ev=PageView\u0026amp;noscript=1\" loading=\"lazy\"\u003e\u003c\/noscript\u003e\n\n\u003cscript\u003e\n\/* ==========================================================================\n   RIPPLE STARTER KIT OFFER v1.0\n   Per-flavour hero images, reviews carousel, Ripple 14-active NIP\n   Script-injected HTML (bypasses Shopify sanitizer)\n   ========================================================================== *\/\n(function() {\n  'use strict';\n\n  \/* ---------- Config ---------- *\/\n  var flavours = [\n    { id: '62794388668575', title: 'Watermelon Yuzu', color: '#FF1F2D',\n      desc: 'Ripe watermelon up front. Yuzu citrus on the finish. The new flagship.',\n      image: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot1-wmy.webp?v=1779313751' },\n    { id: '62794388701343', title: 'Peach Mango', color: '#F59E0B',\n      desc: 'Stone-fruit forward. Mango on the front, peach on the back.',\n      image: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/hf_20260520_211513_babf5f84-e9e3-4adc-ba44-c0403501c033.webp?v=1779313733' }\n  ];\n\n  \/* Sub-first pricing · OTP exists as the anchor *\/\n  var PRICE_SUB = 49.95;        \/* 1 tub monthly · 20% off $69.95 OTP *\/\n  var PRICE_OTP = 69.95;        \/* 1 tub one-time · full retail anchor *\/\n  var SELLING_PLAN_MONTHLY = 3911352479;  \/* Shopify SellingPlan id · 1 Month Subscription · 20% off *\/\n  \/* Legacy names kept for compatibility *\/\n  var PRICE_1 = PRICE_SUB;\n  var PRICE_2 = PRICE_OTP;\n\n  \/* ---------- State ---------- *\/\n  var dealQty = 1;  \/* 1 = SUB (default, recommended) · 2 = OTP (anchor) *\/\n  var selectedFlavourIdx = 0;\n  var selectedTub2Idx = 0;\n\n  \/* ---------- UTM capture ---------- *\/\n  try {\n    var params = new URLSearchParams(window.location.search);\n    var utm = {};\n    var utmKeys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'ref'];\n    for (var u = 0; u \u003c utmKeys.length; u++) {\n      var v = params.get(utmKeys[u]);\n      if (v) utm[utmKeys[u]] = v;\n    }\n    if (Object.keys(utm).length) sessionStorage.setItem('ss_utm', JSON.stringify(utm));\n  } catch(e) {}\n\n  \/* ---------- SVG helpers ---------- *\/\n  var starSvg = '\u003csvg viewBox=\"0 0 20 20\" fill=\"#F59E0B\"\u003e\u003cpath d=\"M10 1.25l2.47 5.01 5.53.8-4 3.9.94 5.49L10 13.77l-4.94 2.68.94-5.49-4-3.9 5.53-.8z\"\/\u003e\u003c\/svg\u003e';\n  var stars5 = starSvg + starSvg + starSvg + starSvg + starSvg;\n\n  var compCheck = '\u003cspan class=\"ss-comp__check\"\u003e\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke=\"#FF1F2D\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"\/\u003e\u003c\/svg\u003e\u003c\/span\u003e';\n\n  var shieldSvg = '\u003csvg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"#1A1A1A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 18.5s-7-4.5-7-10V4.5L10 1.5l7 3v4c0 5.5-7 10-7 10z\"\/\u003e\u003cpath d=\"M7.5 10.5l2 2 3.5-4\" stroke=\"#FF1F2D\" stroke-width=\"1.8\"\/\u003e\u003c\/svg\u003e';\n  var lockSvg = '\u003csvg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"#1A1A1A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"2\" y=\"8\" width=\"16\" height=\"10\" rx=\"2\"\/\u003e\u003cpath d=\"M6 8V5a4 4 0 018 0v3\"\/\u003e\u003ccircle cx=\"10\" cy=\"13\" r=\"1.5\" fill=\"#FF1F2D\"\/\u003e\u003c\/svg\u003e';\n  var guaranteeSvg = '\u003csvg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"#1A1A1A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 18.5s-7-4.5-7-10V4.5L10 1.5l7 3v4c0 5.5-7 10-7 10z\"\/\u003e\u003ccircle cx=\"10\" cy=\"9\" r=\"2\" stroke=\"#FF1F2D\" stroke-width=\"1.8\"\/\u003e\u003cpath d=\"M10 11v2\" stroke=\"#FF1F2D\" stroke-width=\"1.8\"\/\u003e\u003c\/svg\u003e';\n\n  var shieldWhiteSvg = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z\"\/\u003e\u003c\/svg\u003e';\n  var truckSvg = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 18.75a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 01-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h1.125c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H18.75M3.375 14.25h1.5m0 0h12.75m-12.75 0V5.625c0-.621.504-1.125 1.125-1.125h7.5c.621 0 1.125.504 1.125 1.125v8.625m-8.25 0h8.25\"\/\u003e\u003c\/svg\u003e';\n  var pinSvg = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 10.5a3 3 0 11-6 0 3 3 0 016 0z\"\/\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z\"\/\u003e\u003c\/svg\u003e';\n\n  var arrowLeft = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5L8.25 12l7.5-7.5\"\/\u003e\u003c\/svg\u003e';\n  var arrowRight = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 4.5l7.5 7.5-7.5 7.5\"\/\u003e\u003c\/svg\u003e';\n\n  var badgeCheck = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke=\"#FF1F2D\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"\/\u003e\u003c\/svg\u003e';\n  var bundleCheck = '\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke=\"#16A34A\"\u003e\u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"\/\u003e\u003c\/svg\u003e';\n\n  \/* ---------- Flavour chip builders ---------- *\/\n  function buildFlavourChips(prefix, activeIdx) {\n    var h = '';\n    for (var i = 0; i \u003c flavours.length; i++) {\n      var cls = i === activeIdx ? ' ss-flav-chip--active' : '';\n      h += '\u003cbutton class=\"ss-flav-chip' + cls + '\" data-' + prefix + '-idx=\"' + i + '\"\u003e' +\n        '\u003cspan class=\"ss-flav-dot\" style=\"background:' + flavours[i].color + '\"\u003e\u003c\/span\u003e' +\n        flavours[i].title + '\u003c\/button\u003e';\n    }\n    return h;\n  }\n\n  function buildFlavourDesc(idx) {\n    return '\u003cdiv class=\"ss-flav-desc\"\u003e' + flavours[idx].desc + '\u003c\/div\u003e';\n  }\n\n  \/* ==========================================================================\n     BUILD HTML\n     ========================================================================== *\/\n\n  var html = '' +\n\n    \/* ============ ABOVE FOLD: 50\/50 SPLIT ============ *\/\n    '\u003cdiv class=\"ss-main\"\u003e' +\n\n      \/* LEFT PANEL *\/\n      '\u003cdiv class=\"ss-left\"\u003e' +\n        '\u003cdiv class=\"ss-stack\"\u003e' +\n          '\u003cdiv class=\"ss-product-hero\"\u003e' +\n            '\u003cimg id=\"ss-hero-image\" class=\"ss-hero-img\" ' +\n              'src=\"' + flavours[0].image + '\" ' +\n              'alt=\"Ripple - Watermelon Yuzu tub\" loading=\"lazy\"\u003e' +\n          '\u003c\/div\u003e' +\n          '\u003cdiv class=\"ss-thumb-strip\" data-thumb-strip style=\"display:flex !important;flex-direction:row !important;gap:8px !important;justify-content:flex-start !important;align-items:flex-start !important;margin-top:16px !important;width:100% !important;\"\u003e' +\n            '\u003cbutton type=\"button\" class=\"ss-thumb is-active\" style=\"width:64px !important;height:64px !important;min-width:64px !important;max-width:64px !important;flex:0 0 64px !important;padding:0 !important;display:inline-block !important;overflow:hidden !important;\" data-thumb-role=\"variant\" data-thumb-src=\"' + flavours[0].image + '\" aria-label=\"Tub\"\u003e' +\n              '\u003cimg src=\"' + flavours[0].image + '\" style=\"width:100% !important;height:100% !important;object-fit:contain !important;display:inline-block !important;pointer-events:none !important;\" alt=\"\" loading=\"lazy\"\u003e' +\n            '\u003c\/button\u003e' +\n            '\u003cbutton type=\"button\" class=\"ss-thumb\" style=\"width:64px !important;height:64px !important;min-width:64px !important;max-width:64px !important;flex:0 0 64px !important;padding:0 !important;display:inline-block !important;overflow:hidden !important;\" data-thumb-src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot2-v2.webp?v=1779313753\" aria-label=\"Sodium engine\"\u003e' +\n              '\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot2-v2.webp?v=1779313753\" alt=\"\" loading=\"lazy\"\u003e' +\n            '\u003c\/button\u003e' +\n            '\u003cbutton type=\"button\" class=\"ss-thumb\" style=\"width:64px !important;height:64px !important;min-width:64px !important;max-width:64px !important;flex:0 0 64px !important;padding:0 !important;display:inline-block !important;overflow:hidden !important;\" data-thumb-src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot4-v2.webp?v=1779313758\" aria-label=\"Dose density\"\u003e' +\n              '\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot4-v2.webp?v=1779313758\" alt=\"\" loading=\"lazy\"\u003e' +\n            '\u003c\/button\u003e' +\n            '\u003cbutton type=\"button\" class=\"ss-thumb\" style=\"width:64px !important;height:64px !important;min-width:64px !important;max-width:64px !important;flex:0 0 64px !important;padding:0 !important;display:inline-block !important;overflow:hidden !important;\" data-thumb-src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot5-v2.webp?v=1779313761\" aria-label=\"Cellular repair\"\u003e' +\n              '\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot5-v2.webp?v=1779313761\" alt=\"\" loading=\"lazy\"\u003e' +\n            '\u003c\/button\u003e' +\n            '\u003cbutton type=\"button\" class=\"ss-thumb\" style=\"width:64px !important;height:64px !important;min-width:64px !important;max-width:64px !important;flex:0 0 64px !important;padding:0 !important;display:inline-block !important;overflow:hidden !important;\" data-thumb-src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot6-v2.webp?v=1779313763\" aria-label=\"Cognitive layer\"\u003e' +\n              '\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot6-v2.webp?v=1779313763\" alt=\"\" loading=\"lazy\"\u003e' +\n            '\u003c\/button\u003e' +\n            '\u003cbutton type=\"button\" class=\"ss-thumb\" style=\"width:64px !important;height:64px !important;min-width:64px !important;max-width:64px !important;flex:0 0 64px !important;padding:0 !important;display:inline-block !important;overflow:hidden !important;\" data-thumb-src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot3-wmy.webp?v=1779313755\" aria-label=\"Activation pour\"\u003e' +\n              '\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot3-wmy.webp?v=1779313755\" alt=\"\" loading=\"lazy\"\u003e' +\n            '\u003c\/button\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* RIGHT PANEL *\/\n      '\u003cdiv class=\"ss-right\"\u003e' +\n        '\u003cdiv class=\"ss-form-container\"\u003e' +\n\n          \/* 0. Rating \\u00b7 STATIC PLACEHOLDER pending Air Reviews remap from flavour-split legacy products \\u00b7 swap back to AirReviews widget once 12 reviews land on product 10912534397087 *\/\n          '\u003cdiv class=\"ss-rating-static\"\u003e' +\n            '\u003cspan class=\"ss-rating-stars\" aria-hidden=\"true\"\u003e\\u2605\\u2605\\u2605\\u2605\\u2605\u003c\/span\u003e' +\n            '\u003cspan class=\"ss-rating-text\"\u003e5.0 based on 12 reviews\u003c\/span\u003e' +\n          '\u003c\/div\u003e' +\n\n          \/* 1. Title *\/\n          '\u003ch1 class=\"ss-headline\"\u003eRipple\u003c\/h1\u003e' +\n\n          \/* 2. Eyebrow benefits row (BJ pattern) *\/\n          '\u003cdiv class=\"ss-eyebrow-benefits\"\u003eRECOVERY \\u00b7 HYDRATION \\u00b7 FOCUS\u003c\/div\u003e' +\n\n          \/* 4. Hero separator (BJ pattern) *\/\n          '\u003cdiv class=\"ss-hero-sep\"\u003e\u003c\/div\u003e' +'\u003cdiv class=\"ss-vstack\"\u003e' +'\u003cdiv class=\"ss-vstack__hook\"\u003eThe whole recovery shelf, in one scoop.\u003c\/div\u003e' +'\u003cdiv class=\"ss-vstack__line\"\u003e13 actives, fully dosed, every milligram on the label.\u003c\/div\u003e' +'\u003cdiv class=\"ss-vstack__line\"\u003eElectrolytes to hydrate. Aminos to rebuild. Nootropics to focus.\u003c\/div\u003e' +'\u003cdiv class=\"ss-vstack__line\"\u003eMade in Brisbane. Formulated Sports Food. Zero proprietary blends.\u003c\/div\u003e' +'\u003cdiv class=\"ss-vstack__line\"\u003eReplaces a $170 shelf for \u003cspan class=\"ss-vstack__hl\"\u003e$1.66 a day\u003c\/span\u003e.\u003c\/div\u003e' +'\u003cdiv class=\"ss-vstack__line\"\u003e60-day money-back guarantee.\u003c\/div\u003e' +'\u003c\/div\u003e' +\n\n          \/* 5. Subheadline removed 2026-05-20 \\u00b7 ad-context buyers don't need a pushover description *\/\n\n          \/* 6. Size note (BJ pattern) *\/\n          '\u003cp class=\"ss-size-note\"\u003eSize: 30-day supply \\u00b7 30 serves per tub\u003c\/p\u003e' +\n\n          \/* 3. Flavour selector · color swatches + name *\/\n          '\u003cdiv class=\"ss-flav-section\"\u003e' +\n            '\u003cdiv class=\"ss-flav-chips\" id=\"ss-main-flav-chips\"\u003e' +\n              buildFlavourChips('flav', 0) +\n            '\u003c\/div\u003e' +\n            '\u003cdiv id=\"ss-flav-desc-container\"\u003e' + buildFlavourDesc(0) + '\u003c\/div\u003e' +\n          '\u003c\/div\u003e' +\n\n          \/* 4. Bundle selection cards *\/\n          '\u003cdiv class=\"ss-bundle-cards\" id=\"ss-bundle-cards\"\u003e' +\n\n            \/* SUB -- 1 tub monthly (DEFAULT, RECOMMENDED) *\/\n            '\u003cdiv class=\"ss-bundle-card ss-bundle-sel\" data-deal=\"1\" id=\"ss-deal-1\"\u003e' +\n              '\u003cdiv class=\"ss-bundle-badge\"\u003eBEST VALUE\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-bundle-radio\"\u003e\u003cdiv class=\"ss-bundle-dot\"\u003e\u003c\/div\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-bundle-title\"\u003eSubscribe \u0026amp; Save \u003cspan class=\"ss-bundle-save\"\u003eSave 29%\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"ss-bundle-hero\"\u003e\u003cspan class=\"ss-bundle-hprice\"\u003e$' + PRICE_SUB.toFixed(2) + '\u003c\/span\u003e\u003cspan class=\"ss-bundle-hsuf\"\u003e\/mo\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"ss-bundle-prow\"\u003e\u003cspan class=\"ss-bundle-pleft\"\u003e\u003cdel\u003e$' + PRICE_OTP.toFixed(2) + '\u003c\/del\u003e $' + PRICE_SUB.toFixed(2) + ' billed monthly\u003c\/span\u003e\u003cspan class=\"ss-bundle-pday\"\u003e$1.66 AUD \/ DAY\u003c\/span\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-bundle-checks\"\u003e' +\n                '\u003cdiv class=\"ss-bundle-check\"\u003e' + bundleCheck + '\u003cspan\u003e\u003cstrong\u003e29% off every order.\u003c\/strong\u003e Locked at $49.95\/mo for as long as your sub is active\u003c\/span\u003e\u003c\/div\u003e' +\n                '\u003cdiv class=\"ss-bundle-check\"\u003e' + bundleCheck + '\u003cspan\u003e\u003cstrong\u003eFree shipping on first order\u003c\/strong\u003e\u003c\/span\u003e\u003c\/div\u003e' +\n                '\u003cdiv class=\"ss-bundle-check\"\u003e' + bundleCheck + '\u003cspan\u003e60-Day Honest Trial on your first order\u003c\/span\u003e\u003c\/div\u003e' +\n                '\u003cdiv class=\"ss-bundle-check\"\u003e' + bundleCheck + '\u003cspan\u003eCancel anytime in one click\u003c\/span\u003e\u003c\/div\u003e' +\n              '\u003c\/div\u003e' +\n              '\u003cbutton class=\"ss-sub-terms-link\" id=\"ss-sub-terms-trigger\"\u003eSubscription Terms\u003c\/button\u003e' +\n            '\u003c\/div\u003e' +\n\n            \/* OTP · second card (demoted styling via ss-bundle-otp) *\/\n            '\u003cdiv class=\"ss-bundle-card ss-bundle-otp\" data-deal=\"2\" id=\"ss-deal-2\"\u003e' +\n              '\u003cdiv class=\"ss-bundle-radio\"\u003e\u003cdiv class=\"ss-bundle-dot\"\u003e\u003c\/div\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-bundle-title\"\u003eOne-Time Purchase\u003c\/div\u003e\u003cdiv class=\"ss-bundle-hero\"\u003e\u003cspan class=\"ss-bundle-hprice\"\u003e$' + PRICE_OTP.toFixed(2) + '\u003c\/span\u003e\u003cspan class=\"ss-bundle-hsuf\"\u003eone time\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"ss-bundle-prow\"\u003e\u003cspan class=\"ss-bundle-pleft\"\u003e30 serves · no subscription\u003c\/span\u003e\u003cspan class=\"ss-bundle-pday\"\u003e$2.33 AUD \/ DAY\u003c\/span\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-bundle-otp-note\"\u003eOne tub. Standard shipping. No subscription.\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n\n          '\u003c\/div\u003e' +\n\n          \/* CTA *\/\n          '\u003cbutton class=\"ss-cta\" id=\"ss-cta-btn\"\u003eAdd to Cart\u003c\/button\u003e' +\n\n          \/* 6. View Supplement Facts link *\/\n          '\u003cbutton class=\"ss-suppfacts-link\" id=\"ss-suppfacts-trigger\"\u003eView Supplement Facts \\u2192\u003c\/button\u003e' +\n\n          \/* Trust icons row (bottom of right panel) *\/\n          '\u003cdiv class=\"ss-trust-row\"\u003e' +\n            '\u003cdiv class=\"ss-trust-item\"\u003e' + shieldSvg + ' Australian Made\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-trust-item\"\u003e' + guaranteeSvg + ' 60-Day Honest Trial\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-trust-item\"\u003e' + lockSvg + ' Secure Checkout\u003c\/div\u003e' +\n          '\u003c\/div\u003e' +\n\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n    '\u003c\/div\u003e' +\n\n    \/* ============ STOCKED IN-STORE BAR ============ *\/\n    '\u003cdiv class=\"ss-stocked\"\u003e' +\n      '\u003cdiv class=\"ss-stocked__inner\"\u003e' +\n        '\u003cdiv class=\"ss-stocked__label\"\u003eStocked In-Store Across Australia\u003c\/div\u003e' +\n        '\u003cdiv class=\"ss-stocked__logos\"\u003e' +\n          '\u003cdiv class=\"ss-stocked__logo\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/worldgym-logo-hq.png?v=1772822500\" alt=\"World Gym\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n          '\u003cdiv class=\"ss-stocked__logo\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/fitstop-logo.webp?v=1772821743\" alt=\"Fitstop\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n          '\u003cdiv class=\"ss-stocked__logo\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/hos-logo.png?v=1772822178\" alt=\"House of Supplements\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n    '\u003c\/div\u003e' +\n\n    \/* ============ BELOW FOLD: PDP-STYLE SECTIONS ============ *\/\n    '\u003cdiv class=\"ss-bf\"\u003e' +\n\n      \/* --- 1. UGC Videos (WHITE) --- *\/\n      '\u003cdiv class=\"ss-ugc\"\u003e' +\n        '\u003cdiv class=\"ss-ugc__inner\"\u003e' +\n          '\u003cdiv class=\"ss-ugc__label\"\u003eReal People. Real Recovery.\u003c\/div\u003e' +\n          '\u003ch2 class=\"ss-ugc__headline\"\u003eSee It \u003cspan\u003eIn Action.\u003c\/span\u003e\u003c\/h2\u003e' +\n          '\u003cdiv class=\"ss-ugc__wrap\" data-ugc-carousel\u003e' +\n            '\u003cbutton class=\"ss-ugc__arrow ss-ugc__arrow--prev\" data-ugc-prev aria-label=\"Previous\"\u003e' + arrowLeft + '\u003c\/button\u003e' +\n            '\u003cdiv class=\"ss-ugc__grid\" data-ugc-track\u003e' +\n              '\u003cdiv class=\"ss-ugc__item\"\u003e\u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/dbc6bf5f74a54eb68f5ffdfc0fdc162f.mp4\" playsinline muted loop autoplay preload=\"auto\"\u003e\u003c\/video\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ugc__item\"\u003e\u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/730e1c28c50d4d4db79de791176bfbd4.mp4\" playsinline muted loop autoplay preload=\"auto\"\u003e\u003c\/video\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ugc__item\"\u003e\u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/8f30d7c131f94c4ead11d00fdd8749f7.mp4\" playsinline muted loop autoplay preload=\"auto\"\u003e\u003c\/video\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cbutton class=\"ss-ugc__arrow ss-ugc__arrow--next\" data-ugc-next aria-label=\"Next\"\u003e' + arrowRight + '\u003c\/button\u003e' +\n            '\u003cdiv class=\"ss-ugc__dots\"\u003e' +\n              '\u003cbutton class=\"ss-ugc__dot active\" data-ugc-dot=\"0\" aria-label=\"Video 1\"\u003e\u003c\/button\u003e' +\n              '\u003cbutton class=\"ss-ugc__dot\" data-ugc-dot=\"1\" aria-label=\"Video 2\"\u003e\u003c\/button\u003e' +\n              '\u003cbutton class=\"ss-ugc__dot\" data-ugc-dot=\"2\" aria-label=\"Video 3\"\u003e\u003c\/button\u003e' +\n            '\u003c\/div\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 2. Ingredient Breakdown (#F8F9FA) --- *\/\n      '\u003cdiv class=\"ss-ingr\"\u003e' +\n        '\u003cdiv class=\"ss-ingr__inner\"\u003e' +\n          '\u003cdiv class=\"ss-ingr__label\"\u003ePRECISION NUTRITION\u003c\/div\u003e' +\n          '\u003ch2 class=\"ss-ingr__headline\"\u003eClinically-backed ingredients\u003c\/h2\u003e' +\n          '\u003cp class=\"ss-ingr__sub\"\u003e13 actives. Every milligram disclosed. Zero proprietary blends.\u003c\/p\u003e' +\n          '\u003cdiv class=\"ss-ingr__grid\"\u003e' +\n            '\u003cdiv class=\"ss-ingr__card\"\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/ing-glutamine.webp?v=1779313738\" alt=\"L-Glutamine\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-name\"\u003eL-Glutamine\u003c\/div\u003e' +\n              '\u003cspan class=\"ss-ingr__card-dose\"\u003e1,200mg\u003c\/span\u003e' +\n              '\u003cp class=\"ss-ingr__card-desc\"\u003e\u003cstrong\u003eWhy we chose it:\u003c\/strong\u003eThe recovery amino. Floods muscle cells post-training to support glycogen replenishment and gut lining repair.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-ingr__card\"\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/ing-taurine.webp?v=1779313743\" alt=\"Taurine\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-name\"\u003eTaurine\u003c\/div\u003e' +\n              '\u003cspan class=\"ss-ingr__card-dose\"\u003e1,000mg\u003c\/span\u003e' +\n              '\u003cp class=\"ss-ingr__card-desc\"\u003e\u003cstrong\u003eWhy we chose it:\u003c\/strong\u003eMeta-analysis effective dose. Cellular hydration, endurance, and recovery rolled into one amino. Why athletes are stacking it daily.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-ingr__card\"\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/ing-senactiv.webp?v=1779313741\" alt=\"Senactiv\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-name\"\u003eSenactiv\\u00ae\u003c\/div\u003e' +\n              '\u003cspan class=\"ss-ingr__card-dose\"\u003e25mg\u003c\/span\u003e' +\n              '\u003cp class=\"ss-ingr__card-desc\"\u003e\u003cstrong\u003eWhy we chose it:\u003c\/strong\u003ePatented compound from NuLiv Science. Panax notoginseng plus Rosa roxburghii, the only daily drink shipping this for cellular recovery.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-ingr__card\"\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/ing-electrolytes.webp?v=1779313735\" alt=\"Electrolytes\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-name\"\u003eSodium + Potassium + Magnesium\u003c\/div\u003e' +\n              '\u003cspan class=\"ss-ingr__card-dose\"\u003e227 \/ 176 \/ 74mg\u003c\/span\u003e' +\n              '\u003cp class=\"ss-ingr__card-desc\"\u003e\u003cstrong\u003eWhy we chose it:\u003c\/strong\u003eReal electrolyte profile tuned for training-day sweat loss. Above AG1, below LMNT. Not a salt bomb, not a token sprinkle.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-ingr__card\"\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/ing-tyrosine.webp?v=1779313748\" alt=\"L-Tyrosine\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-name\"\u003eL-Tyrosine + Acetyl L-Tyrosine\u003c\/div\u003e' +\n              '\u003cspan class=\"ss-ingr__card-dose\"\u003e450 + 200mg\u003c\/span\u003e' +\n              '\u003cp class=\"ss-ingr__card-desc\"\u003e\u003cstrong\u003eWhy we chose it:\u003c\/strong\u003eDopamine precursor pair for clean cognition. Drink it morning or afternoon. No stim, no crash.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-ingr__card\"\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/ing-theanine.webp?v=1779313746\" alt=\"L-Theanine\" loading=\"lazy\"\u003e\u003c\/div\u003e' +\n              '\u003cdiv class=\"ss-ingr__card-name\"\u003eL-Theanine\u003c\/div\u003e' +\n              '\u003cspan class=\"ss-ingr__card-dose\"\u003e165mg\u003c\/span\u003e' +\n              '\u003cp class=\"ss-ingr__card-desc\"\u003e\u003cstrong\u003eWhy we chose it:\u003c\/strong\u003eThe calm-focus amino. Smooths whatever caffeine you already drink. Pairs with the tyrosine for steady cognition under load.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 3. Free-Of Badges (WHITE) --- *\/\n      '\u003cdiv class=\"ss-badges\"\u003e' +\n        '\u003cdiv class=\"ss-badges__inner\"\u003e' +\n          '\u003cspan class=\"ss-badges__pill\"\u003e' + badgeCheck + ' No Proprietary Blends\u003c\/span\u003e' +\n          '\u003cspan class=\"ss-badges__pill\"\u003e' + badgeCheck + ' No Artificial Colors\u003c\/span\u003e' +\n          '\u003cspan class=\"ss-badges__pill\"\u003e' + badgeCheck + ' Australian Made\u003c\/span\u003e' +\n          '\u003cspan class=\"ss-badges__pill\"\u003e' + badgeCheck + ' Full Open Label\u003c\/span\u003e' +\n          '\u003cspan class=\"ss-badges__pill\"\u003e' + badgeCheck + ' 13 Clinical-Layer Ingredients\u003c\/span\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 4. Why Ripple (WHITE bg) --- *\/\n      '\u003cdiv class=\"ss-why\"\u003e' +\n        '\u003cdiv class=\"ss-why__inner\"\u003e' +\n          '\u003ch2 class=\"ss-why__headline\"\u003eWhy Ripple?\u003c\/h2\u003e' +\n          '\u003cdiv class=\"ss-why__grid\"\u003e' +\n            '\u003cdiv class=\"ss-why__card\"\u003e' +\n              '\u003ch3 class=\"ss-why__card-title\"\u003eRecovery Layer.\u003c\/h3\u003e' +\n              '\u003cp class=\"ss-why__card-body\"\u003eSenactiv\\u00ae plus 1,200mg glutamine plus 1,000mg taurine. The recovery stack no other daily drink ships.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-why__card\"\u003e' +\n              '\u003ch3 class=\"ss-why__card-title\"\u003eReal Hydration.\u003c\/h3\u003e' +\n              '\u003cp class=\"ss-why__card-body\"\u003e227mg sodium, 176mg potassium, 74mg magnesium. Electrolyte profile tuned for training days. Above AG1, below LMNT.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-why__card\"\u003e' +\n              '\u003ch3 class=\"ss-why__card-title\"\u003eFocus Without Crash.\u003c\/h3\u003e' +\n              '\u003cp class=\"ss-why__card-body\"\u003eL-Tyrosine, Acetyl L-Tyrosine, L-Theanine. Clean cognition. No caffeine, no stim, no afternoon dip. Drink it at 7am or 3pm.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-why__card\"\u003e' +\n              '\u003ch3 class=\"ss-why__card-title\"\u003eDaily Cadence.\u003c\/h3\u003e' +\n              '\u003cp class=\"ss-why__card-body\"\u003e8 grams per serve, 30 serves per tub. Designed to be taken every day, not just gym days. Recovery is not a Tuesday thing.\u003c\/p\u003e' +\n            '\u003c\/div\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 5. Comparison Table (#F8F9FA) --- *\/\n      '\u003cdiv class=\"ss-comp\"\u003e' +\n        '\u003cdiv class=\"ss-comp__inner\"\u003e' +\n          '\u003cdiv class=\"ss-comp__content\"\u003e' +\n            '\u003cdiv class=\"ss-comp__label\"\u003eWhy Ripple\u003c\/div\u003e' +\n            '\u003ch2 class=\"ss-comp__headline\"\u003e\u003cspan\u003eOne Drink\u003c\/span\u003e Replaces The Stack.\u003c\/h2\u003e' +\n            '\u003cp class=\"ss-comp__sub\"\u003e13 layered ingredients in one daily drink . every milligram disclosed.\u003c\/p\u003e' +\n            '\u003ctable class=\"ss-comp__table\"\u003e' +\n              '\u003cthead\u003e\u003ctr\u003e' +\n                '\u003cth\u003eCategory\u003c\/th\u003e' +\n                '\u003cth\u003eRipple\u003c\/th\u003e' +\n                '\u003cth\u003eBuying Separately\u003c\/th\u003e' +\n              '\u003c\/tr\u003e\u003c\/thead\u003e' +\n              '\u003ctbody\u003e' +\n                '\u003ctr\u003e\u003ctd\u003eCellular Recovery\u003c\/td\u003e\u003ctd\u003e' + compCheck + '\u003c\/td\u003e\u003ctd\u003e\u003cspan class=\"ss-comp__cost\"\u003e$45\/mo\u003c\/span\u003e\u003c\/td\u003e\u003c\/tr\u003e' +\n                '\u003ctr\u003e\u003ctd\u003eReal Electrolytes\u003c\/td\u003e\u003ctd\u003e' + compCheck + '\u003c\/td\u003e\u003ctd\u003e\u003cspan class=\"ss-comp__cost\"\u003e$25\/mo\u003c\/span\u003e\u003c\/td\u003e\u003c\/tr\u003e' +\n                '\u003ctr\u003e\u003ctd\u003eGlutamine + BCAAs\u003c\/td\u003e\u003ctd\u003e' + compCheck + '\u003c\/td\u003e\u003ctd\u003e\u003cspan class=\"ss-comp__cost\"\u003e$30\/mo\u003c\/span\u003e\u003c\/td\u003e\u003c\/tr\u003e' +\n                '\u003ctr\u003e\u003ctd\u003eFocus Aminos\u003c\/td\u003e\u003ctd\u003e' + compCheck + '\u003c\/td\u003e\u003ctd\u003e\u003cspan class=\"ss-comp__cost\"\u003e$20\/mo\u003c\/span\u003e\u003c\/td\u003e\u003c\/tr\u003e' +\n                '\u003ctr\u003e\u003ctd\u003eDaily Greens \/ Gut\u003c\/td\u003e\u003ctd\u003e' + compCheck + '\u003c\/td\u003e\u003ctd\u003e\u003cspan class=\"ss-comp__cost\"\u003e$35\/mo\u003c\/span\u003e\u003c\/td\u003e\u003c\/tr\u003e' +\n                '\u003ctr\u003e\u003ctd\u003eTaurine Single\u003c\/td\u003e\u003ctd\u003e' + compCheck + '\u003c\/td\u003e\u003ctd\u003e\u003cspan class=\"ss-comp__cost\"\u003e$15\/mo\u003c\/span\u003e\u003c\/td\u003e\u003c\/tr\u003e' +\n                '\u003ctr class=\"ss-comp__total\"\u003e\u003ctd\u003eYour Cost\u003c\/td\u003e\u003ctd\u003e$49.95\/mo\u003c\/td\u003e\u003ctd\u003e$170+\u003c\/td\u003e\u003c\/tr\u003e' +\n              '\u003c\/tbody\u003e' +\n            '\u003c\/table\u003e' +\n            '\u003cp class=\"ss-comp__footnote\"\u003eBased on average AU retail of comparable single-active supplements (iHerb, Amazon AU, 2026)\u003c\/p\u003e' +\n          '\u003c\/div\u003e' +\n          '\u003cdiv class=\"ss-comp__image\"\u003e' +\n            '\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/hf_20260523_152522_e91e14be-9335-487b-b88c-fc954b02ade6.png?v=1779550313\" alt=\"Ripple tub\" loading=\"lazy\" width=\"600\" height=\"600\"\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 6. FAQ Accordion (WHITE) --- *\/\n      '\u003cdiv class=\"ss-faq\"\u003e' +\n        '\u003cdiv class=\"ss-faq__inner\"\u003e' +\n          '\u003ch2 class=\"ss-faq__headline\"\u003eFrequently Asked Questions\u003c\/h2\u003e' +\n          '\u003cdiv class=\"ss-faq__list\" id=\"ss-faq-list\"\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eWhy subscribe instead of buying once?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eRecovery is daily. The product works because the dose stacks night after night, not because you remember to re-order every 30 days. Subscribing locks 29% off every order, ships a fresh tub the moment you finish the last one, and lets you skip, pause, swap flavour, or cancel from your account in one click. The OTP path exists for buyers who want to test without commitment. We are honest that it is the worse deal.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eHow do I skip or cancel?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eLog in to your account. One click skips the next shipment, pauses indefinitely, swaps your flavour, or cancels the sub. No phone call, no chat queue, no retention dark patterns.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eHow should I take Ripple?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eOne 8g scoop in 700ml of cold water. Shake or stir for 10 seconds. Drink it whenever fits your day . post-training, with breakfast, or before bed. Daily is the point. The formula stacks over weeks.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eDoes Ripple have caffeine?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eNo. Ripple is a daily recovery and hydration formula. Zero caffeine, zero stim. Drink it post-training, with breakfast, or before bed. It does not interfere with sleep.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eWho is Ripple for?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eAnyone who trains regularly and wants their recovery and hydration solved in one daily drink. Whether you lift, run, fight, or do BJJ . Ripple replaces the BCAAs, electrolyte sticks, and glutamine scoops most athletes already keep on the shelf.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eCan I stack Ripple with other supplements?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eYes. Ripple is the recovery and daily-hydration layer. It pairs cleanly with creatine, protein, and any pre-workout you are already running. Keep the rest of your stack the same.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eWhat if I don\\'t like it?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eGive it an honest trial  .  at least 2 to 3 weeks of consistent use. If it\\'s still not working, email our team within 60 days with your order number and a note on what didn\\'t work. We\\'ll adjust your protocol, swap you to another flavour, or refund unused product. Real humans read every message.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eWhen will my order arrive?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eOrders are shipped within 1-2 business days from our Australian warehouse. Standard delivery takes 3-7 business days depending on your location.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n            '\u003cdiv class=\"ss-faq__item\"\u003e' +\n              '\u003cbutton class=\"ss-faq__question\"\u003eIs Ripple tested for banned substances?\u003cspan class=\"ss-faq__toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e' +\n              '\u003cdiv class=\"ss-faq__answer\"\u003e\u003cp\u003eRipple is made in Brisbane, Australia. It is a Formulated Supplementary Sports Food with every active and its exact dose printed on the pack.\u003c\/p\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 7. Reviews \\u00B7 Air Reviews widget (real reviews from Air Reviews app) --- *\/\n      '\u003cdiv class=\"ss-reviews\"\u003e' +\n        '\u003cdiv class=\"ss-reviews__inner\"\u003e' +\n          '\u003ch2 class=\"ss-reviews__headline\"\u003eWhat People Are Saying\u003c\/h2\u003e' +\n          '\u003cdiv class=\"AirReviews-Embed-BlockWrapper\"\u003e\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 8. Trust Bar (#1A1A1A) --- *\/\n      '\u003cdiv class=\"ss-tbar\"\u003e' +\n        '\u003cdiv class=\"ss-tbar__inner\"\u003e' +\n          '\u003cdiv class=\"ss-tbar__item\"\u003e' +\n            '\u003cspan class=\"ss-tbar__icon\"\u003e' + shieldWhiteSvg + '\u003c\/span\u003e' +\n            '\u003cspan class=\"ss-tbar__label\"\u003e60-Day Honest Trial\u003c\/span\u003e' +\n          '\u003c\/div\u003e' +\n          '\u003cdiv class=\"ss-tbar__item\"\u003e' +\n            '\u003cspan class=\"ss-tbar__icon\"\u003e' + truckSvg + '\u003c\/span\u003e' +\n            '\u003cspan class=\"ss-tbar__label\"\u003eFree Shipping Over $99 AUD\u003c\/span\u003e' +\n          '\u003c\/div\u003e' +\n          '\u003cdiv class=\"ss-tbar__item\"\u003e' +\n            '\u003cspan class=\"ss-tbar__icon\"\u003e' + pinSvg + '\u003c\/span\u003e' +\n            '\u003cspan class=\"ss-tbar__label\"\u003eAustralian Made \u0026amp; Owned\u003c\/span\u003e' +\n          '\u003c\/div\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n      \/* --- 9. Risk Reversal (editorial image) --- *\/\n      '\u003cdiv class=\"ss-risk\"\u003e' +\n        '\u003cdiv class=\"ss-risk__bg\"\u003e\u003c\/div\u003e' +\n        '\u003cdiv class=\"ss-risk__overlay\"\u003e\u003c\/div\u003e' +\n        '\u003cdiv class=\"ss-risk__inner\"\u003e' +\n          '\u003cdiv class=\"ss-risk__icon\"\u003e' + shieldWhiteSvg + '\u003c\/div\u003e' +\n          '\u003ch2 class=\"ss-risk__headline\"\u003eThe 60-Day Honest Trial\u003c\/h2\u003e' +\n          '\u003cp class=\"ss-risk__body\"\u003eGive Ripple an honest trial. If it\\u2019s not working for you, email our team within 60 days with your order number and what you\\u2019re noticing. We\\u2019ll adjust your protocol, swap you to another flavour, or refund unused product  .  whatever makes it right. Real humans. Honest trial.\u003c\/p\u003e' +\n        '\u003c\/div\u003e' +\n      '\u003c\/div\u003e' +\n\n    '\u003c\/div\u003e' +\n\n    \/* ============ SUPPLEMENT FACTS MODAL (full NIP from Ripple.pdf \\u00b7 R-01 canonical) ============ *\/\n    '\u003cdiv class=\"ss-suppfacts-overlay\" id=\"ss-suppfacts-overlay\"\u003e' +\n      '\u003cdiv class=\"ss-suppfacts-panel\"\u003e' +\n        '\u003cbutton class=\"ss-suppfacts-close\" id=\"ss-suppfacts-close\"\u003e\\u00d7\u003c\/button\u003e' +\n        '\u003cdiv class=\"ss-suppfacts-title\"\u003eSUPPLEMENT FACTS\u003c\/div\u003e' +\n        '\u003cdiv class=\"ss-suppfacts-serving\"\u003eServing Size: 1 Scoop (8g) in 700mL of water\u003cbr\u003eServings Per Container: 30\u003c\/div\u003e' +\n\n        '\u003cdiv class=\"ss-suppfacts-section\"\u003eACTIVE INGREDIENTS\u003c\/div\u003e' +\n        '\u003ctable class=\"ss-suppfacts-table\"\u003e' +\n          '\u003cthead\u003e\u003ctr\u003e\u003cth\u003eIngredient\u003c\/th\u003e\u003cth\u003ePer Serve\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e' +\n          '\u003ctbody\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eL-Glutamine\u003c\/td\u003e\u003ctd\u003e1,200mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eTaurine\u003c\/td\u003e\u003ctd\u003e1,000mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eSodium Chloride\u003c\/td\u003e\u003ctd\u003e575mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eFibre (Inulin)\u003c\/td\u003e\u003ctd\u003e500mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eMagnesium Citrate\u003c\/td\u003e\u003ctd\u003e475mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eCalcium Citrate\u003c\/td\u003e\u003ctd\u003e450mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eL-Tyrosine\u003c\/td\u003e\u003ctd\u003e450mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eiBCAA 2:1:1 (L-Leucine, L-Isoleucine, L-Valine)\u003c\/td\u003e\u003ctd\u003e300mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003ePotassium Chloride\u003c\/td\u003e\u003ctd\u003e260mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eAcetyl L-Tyrosine\u003c\/td\u003e\u003ctd\u003e200mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eL-Theanine\u003c\/td\u003e\u003ctd\u003e165mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eSenactiv\\u00ae (Panax Notoginseng Root + Rosa Roxburghii Tratt Fruit)\u003c\/td\u003e\u003ctd\u003e25mg\u003c\/td\u003e\u003c\/tr\u003e' +\n            '\u003ctr\u003e\u003ctd\u003eVitamin B12 (Methylcobalamin)\u003c\/td\u003e\u003ctd\u003e4\\u00b5g\u003c\/td\u003e\u003c\/tr\u003e' +\n          '\u003c\/tbody\u003e' +\n        '\u003c\/table\u003e' +\n\n        '\u003cdiv class=\"ss-suppfacts-section\"\u003eOTHER INGREDIENTS\u003c\/div\u003e' +\n        '\u003cp class=\"ss-suppfacts-other\"\u003eFood Acids (Citric Acid, Malic Acid), Flavour, Sweeteners (Sucralose, Acesulfame Potassium), Colour (Allura Red AC).\u003c\/p\u003e' +\n      '\u003c\/div\u003e' +\n    '\u003c\/div\u003e' +\n\n    \/* ============ STICKY CTA · glass pill panel (image + name + CTA) ============ *\/\n    '\u003cdiv class=\"ss-sticky\" id=\"ss-sticky-bar\"\u003e' +\n      '\u003cdiv class=\"ss-sticky__inner\"\u003e' +\n        '\u003cimg class=\"ss-sticky__img\" id=\"ss-sticky-img\" src=\"' + flavours[0].image + '\" alt=\"Ripple\" loading=\"lazy\"\u003e' +\n        '\u003cspan class=\"ss-sticky__name\"\u003eRipple\u003c\/span\u003e' +\n        '\u003cbutton class=\"ss-sticky__btn\" id=\"ss-sticky-cta\"\u003eAdd to Cart\u003c\/button\u003e' +\n      '\u003c\/div\u003e' +\n    '\u003c\/div\u003e';\n\n  \/* ---------- Inject HTML ---------- *\/\n  var app = document.getElementById('ss-app');\n   if (app) app.innerHTML = html; \/* air-reviews-list-trigger: offer HTML (incl .AirReviews-Embed-BlockWrapper) is injected via innerHTML AFTER the Air Reviews app init, so the app never auto-renders it. Trigger the documented render path once app + wrapper are both ready. *\/ (function(){ var tries = 0; function go(){ var w = document.querySelector('.AirReviews-Embed-BlockWrapper'); var dm = window.airReviewDisplayManager; if (w \u0026\u0026 dm \u0026\u0026 typeof dm.insertReviewBlocks === 'function') { try { dm.isRendered = false; dm.insertReviewBlocks(); } catch (e) {} return; } if (tries++ \u003c 60) setTimeout(go, 400); } go(); })();\n\n\n\n  \/* ==========================================================================\n     EVENT LISTENERS -- ABOVE FOLD\n     ========================================================================== *\/\n\n  \/* Deal selection (card for sub, inline link for OTP) *\/\n  function selectDeal(qty) {\n    dealQty = qty;\n    var cards = document.querySelectorAll('#ss-offer-page .ss-bundle-card');\n    for (var i = 0; i \u003c cards.length; i++) {\n      cards[i].className = cards[i].className.replace(\/\\bss-bundle-sel\\b\/g, '').trim();\n    }\n    if (qty === 1) {\n      var sub = document.getElementById('ss-deal-1');\n      if (sub) sub.className = sub.className + ' ss-bundle-sel';\n    } else if (qty === 2) {\n      var otp = document.getElementById('ss-deal-2');\n      if (otp) otp.className = otp.className + ' ss-bundle-sel';\n    }\n    updateCTAText();\n    updateStickyPrice();\n  }\n\n  \/* Update CTA button text *\/\n  function updateCTAText() {\n    var btn = document.getElementById('ss-cta-btn');\n    if (btn) {\n      btn.textContent = 'Add to Cart';\n    }\n  }\n\n  \/* Preload all flavour images for instant swap *\/\n  flavours.forEach(function(f) {\n    var preload = new Image();\n    preload.src = f.image;\n  });\n\n  \/* SS-THUMB delegated click handler · attached once at IIFE body, runs on page load *\/\n  function __ssSwap(target) {\n    var t = (target \u0026\u0026 target.closest) ? target.closest('.ss-thumb') : null;\n    if (!t) return;\n    var all = document.querySelectorAll('.ss-thumb');\n    for (var i = 0; i \u003c all.length; i++) all[i].classList.remove('is-active');\n    t.classList.add('is-active');\n    var src = t.getAttribute('data-thumb-src');\n    var hero = document.getElementById('ss-hero-image');\n    if (hero \u0026\u0026 src) hero.src = src;\n  }\n  document.addEventListener('click', function(e) { __ssSwap(e.target); }, true);\n  document.addEventListener('touchend', function(e) { __ssSwap(e.target); }, true);\n\n  \/* Preload thumb full-images on load so click swaps are instant *\/\n  setTimeout(function() {\n    var preloadTargets = document.querySelectorAll('.ss-thumb');\n    for (var p = 0; p \u003c preloadTargets.length; p++) {\n      var url = preloadTargets[p].getAttribute('data-thumb-src');\n      if (url) { var pre = new Image(); pre.src = url; }\n    }\n  }, 50);\n\n\n  \/* Hero image update *\/\n  function updateHeroImage() {\n    var idx = selectedFlavourIdx;\n    var img = document.getElementById('ss-hero-image');\n    if (img \u0026\u0026 flavours[idx]) {\n      img.className = img.className + ' ss-fading';\n      setTimeout(function() {\n        img.src = flavours[idx].image;\n        var __vt = document.querySelector('[data-thumb-role=\"variant\"]');\n        if (__vt) {\n          __vt.setAttribute('data-thumb-src', flavours[idx].image);\n          var __vti = __vt.querySelector('img'); if (__vti) __vti.src = flavours[idx].image;\n          var __allT = document.querySelectorAll('.ss-thumb');\n          for (var __i = 0; __i \u003c __allT.length; __i++) __allT[__i].classList.remove('is-active');\n          __vt.classList.add('is-active');\n        }\n        img.alt = 'Ripple - ' + flavours[idx].title;\n        img.className = img.className.replace(\/\\bss-fading\\b\/g, '').trim();\n      }, 150);\n    }\n    var sticky = document.getElementById('ss-sticky-img');\n    if (sticky \u0026\u0026 flavours[idx]) sticky.src = flavours[idx].image;\n  }\n\n  \/* Update sticky bar price *\/\n  function updateStickyPrice() {\n    var priceEl = document.getElementById('ss-sticky-price');\n    if (priceEl) {\n      priceEl.textContent = '$' + (dealQty === 1 ? PRICE_SUB.toFixed(2) + '\/mo' : PRICE_OTP.toFixed(2));\n    }\n    var nameEl = document.querySelector('#ss-offer-page .ss-sticky__name');\n    if (nameEl) {\n      nameEl.textContent = dealQty === 1 ? 'Ripple Monthly Sub' : 'Ripple One-time';\n    }\n  }\n\n  \/* Flavour chip selection -- main *\/\n  function selectMainFlavour(idx) {\n    selectedFlavourIdx = idx;\n    var chips = document.querySelectorAll('#ss-main-flav-chips .ss-flav-chip');\n    for (var i = 0; i \u003c chips.length; i++) {\n      chips[i].className = chips[i].className.replace(\/\\bss-flav-chip--active\\b\/g, '').trim();\n      if (i === idx) chips[i].className += ' ss-flav-chip--active';\n    }\n    \/* Update flavour description *\/\n    var descContainer = document.getElementById('ss-flav-desc-container');\n    if (descContainer) descContainer.innerHTML = buildFlavourDesc(idx);\n    updateHeroImage();\n  }\n\n  \/* Flavour chip selection -- tub2 *\/\n  function selectTub2Flavour(idx) {\n    selectedTub2Idx = idx;\n    var chips = document.querySelectorAll('#ss-tub2-flav-chips .ss-flav-chip');\n    for (var i = 0; i \u003c chips.length; i++) {\n      chips[i].className = chips[i].className.replace(\/\\bss-flav-chip--active\\b\/g, '').trim();\n      if (i === idx) chips[i].className += ' ss-flav-chip--active';\n    }\n  }\n\n  \/* Add to cart *\/\n  function addToCart() {\n    var items = [];\n    var totalValue = 0;\n    var contentIds = [];\n    var kitType = '';\n\n    var vid = flavours[selectedFlavourIdx].id;\n    contentIds.push(vid);\n    if (dealQty === 1) {\n      \/* SUB · 1 tub monthly with selling_plan *\/\n      items.push({\n        id: parseInt(vid),\n        quantity: 1,\n        selling_plan: SELLING_PLAN_MONTHLY,\n        properties: {\n          'Plan': 'Monthly subscription'\n        }\n      });\n      totalValue = PRICE_SUB;\n      kitType = 'Monthly Sub';\n    } else {\n      \/* OTP anchor · 1 tub one-time *\/\n      items.push({\n        id: parseInt(vid),\n        quantity: 1,\n        properties: { 'Plan': 'One-time purchase' }\n      });\n      totalValue = PRICE_OTP;\n      kitType = 'OTP';\n    }\n\n    \/* Meta Pixel -- AddToCart *\/\n    try {\n      if (typeof fbq === 'function') {\n        fbq('track', 'AddToCart', {\n          content_ids: contentIds,\n          content_type: 'product',\n          value: totalValue,\n          currency: 'AUD',\n          content_name: 'Ripple ' + kitType\n        });\n      }\n    } catch(e) {}\n\n    \/* Cart API *\/\n    var btn = document.getElementById('ss-cta-btn');\n    if (btn) {\n      btn.textContent = 'Adding...';\n      btn.style.opacity = '0.7';\n      btn.style.pointerEvents = 'none';\n    }\n\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ items: items })\n    })\n    .then(function(r) {\n      if (!r.ok) throw new Error('Cart add failed');\n      return r.json();\n    })\n    .then(function() {\n      \/* Reset button *\/\n      if (btn) {\n        btn.textContent = 'Add to Cart';\n        btn.style.opacity = '1';\n        btn.style.pointerEvents = 'auto';\n      }\n      \/* OTP goes straight to cart *\/\n      if (kitType === 'OTP') { window.location.href = '\/cart'; return; }\n      \/* Try cart drawer first, fall back to \/cart *\/\n      try {\n        document.dispatchEvent(new Event('cart:item-added'));\n        \/* If drawer doesn't exist, redirect after short delay *\/\n        var drawer = document.querySelector('cart-drawer') || document.querySelector('[data-cart-drawer]');\n        if (!drawer) { window.location.href = '\/cart'; }\n      } catch(e) { window.location.href = '\/cart'; }\n    })\n    .catch(function() { window.location.href = '\/cart'; });\n  }\n\n  \/* ---------- Attach above-fold listeners ---------- *\/\n\n  \/* Bundle card clicks *\/\n  var deal1 = document.getElementById('ss-deal-1');\n  var deal2 = document.getElementById('ss-deal-2');\n  if (deal1) deal1.addEventListener('click', function(e) {\n    if (e.target.classList.contains('ss-flav-chip')) return;\n    selectDeal(1);\n  });\n  if (deal2) deal2.addEventListener('click', function(e) {\n    if (e.target.classList.contains('ss-flav-chip')) return;\n    selectDeal(2);\n  });\n\n  \/* Main flavour chips *\/\n  var mainChipsContainer = document.getElementById('ss-main-flav-chips');\n  if (mainChipsContainer) {\n    mainChipsContainer.addEventListener('click', function(e) {\n      var chip = e.target.closest('.ss-flav-chip');\n      if (!chip) return;\n      var idx = parseInt(chip.getAttribute('data-flav-idx'));\n      if (!isNaN(idx)) selectMainFlavour(idx);\n    });\n  }\n\n  \/* Tub 2 flavour chips *\/\n  var tub2ChipsContainer = document.getElementById('ss-tub2-flav-chips');\n  if (tub2ChipsContainer) {\n    tub2ChipsContainer.addEventListener('click', function(e) {\n      var chip = e.target.closest('.ss-flav-chip');\n      if (!chip) return;\n      var idx = parseInt(chip.getAttribute('data-tub2-idx'));\n      if (!isNaN(idx)) selectTub2Flavour(idx);\n    });\n  }\n\n  \/* CTA buttons *\/\n  var ctaBtn = document.getElementById('ss-cta-btn');\n  if (ctaBtn) ctaBtn.addEventListener('click', addToCart);\n\n  var stickyCta = document.getElementById('ss-sticky-cta');\n  if (stickyCta) stickyCta.addEventListener('click', function() {\n    var target = document.getElementById('ss-bundle-cards');\n    if (target) {\n      target.scrollIntoView({ behavior: 'smooth', block: 'center' });\n    }\n  });\n\n\n  \/* ==========================================================================\n     SUPPLEMENT FACTS MODAL\n     ========================================================================== *\/\n  (function() {\n    var trigger = document.getElementById('ss-suppfacts-trigger');\n    var overlay = document.getElementById('ss-suppfacts-overlay');\n    var closeBtn = document.getElementById('ss-suppfacts-close');\n    if (!trigger || !overlay) return;\n\n    function openModal() {\n      overlay.classList.add('ss-suppfacts--open');\n      document.body.style.overflow = 'hidden';\n    }\n\n    function closeModal() {\n      overlay.classList.remove('ss-suppfacts--open');\n      document.body.style.overflow = '';\n    }\n\n    trigger.addEventListener('click', openModal);\n    if (closeBtn) closeBtn.addEventListener('click', closeModal);\n\n    overlay.addEventListener('click', function(e) {\n      if (e.target === overlay) closeModal();\n    });\n\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' \u0026\u0026 overlay.classList.contains('ss-suppfacts--open')) {\n        closeModal();\n      }\n    });\n  })();\n\n\n  \/* ==========================================================================\n     INFO ACCORDION (above fold)\n     ========================================================================== *\/\n  (function() {\n    var acc = document.getElementById('ss-info-acc');\n    if (!acc) return;\n    var items = acc.querySelectorAll('.ss-info-acc__item');\n    items.forEach(function(item) {\n      var btn = item.querySelector('.ss-info-acc__question');\n      if (!btn) return;\n      btn.addEventListener('click', function() {\n        var isOpen = item.classList.contains('ss-info-acc--open');\n        items.forEach(function(it) { it.classList.remove('ss-info-acc--open'); });\n        if (!isOpen) { item.classList.add('ss-info-acc--open'); }\n      });\n    });\n  })();\n\n\n  \/* ==========================================================================\n     BELOW FOLD -- FAQ Accordion\n     ========================================================================== *\/\n  (function() {\n    var faqList = document.getElementById('ss-faq-list');\n    if (!faqList) return;\n    var items = faqList.querySelectorAll('.ss-faq__item');\n    items.forEach(function(item) {\n      var btn = item.querySelector('.ss-faq__question');\n      if (!btn) return;\n      btn.addEventListener('click', function() {\n        var isOpen = item.classList.contains('ss-faq--open');\n        \/* Close all *\/\n        items.forEach(function(it) { it.classList.remove('ss-faq--open'); });\n        \/* Open clicked if it was closed *\/\n        if (!isOpen) { item.classList.add('ss-faq--open'); }\n      });\n    });\n  })();\n\n\n  \/* ==========================================================================\n     REVIEWS CAROUSEL -- mobile swipe + dots\n     ========================================================================== *\/\n  (function() {\n    var track = document.getElementById('ss-reviews-track');\n    var dotsWrap = document.getElementById('ss-reviews-dots');\n    if (!track || !dotsWrap) return;\n    var dots = dotsWrap.querySelectorAll('.ss-reviews__dot');\n    var cards = track.querySelectorAll('.ss-reviews__card');\n    if (!cards.length) return;\n\n    function updateDots() {\n      var scrollLeft = track.scrollLeft;\n      var cardWidth = cards[0].offsetWidth + 20; \/* gap *\/\n      var idx = Math.round(scrollLeft \/ cardWidth);\n      dots.forEach(function(d, i) {\n        d.classList.toggle('ss-active', i === idx);\n      });\n    }\n\n    track.addEventListener('scroll', updateDots);\n\n    dots.forEach(function(dot) {\n      dot.addEventListener('click', function() {\n        var idx = parseInt(dot.getAttribute('data-idx'), 10);\n        var cardWidth = cards[0].offsetWidth + 20;\n        track.scrollTo({ left: idx * cardWidth, behavior: 'smooth' });\n      });\n    });\n  })();\n\n\n  \/* ==========================================================================\n     STICKY CTA BAR -- show\/hide logic\n     ========================================================================== *\/\n  (function() {\n    var stickyBar = document.getElementById('ss-sticky-bar');\n    var mainCta = document.getElementById('ss-cta-btn');\n    if (!stickyBar || !mainCta) return;\n\n    var scrolledPast = false;\n    var ctaInView = true;\n\n    function updateSticky() {\n      if (scrolledPast \u0026\u0026 !ctaInView) {\n        stickyBar.classList.add('ss-sticky--visible');\n      } else {\n        stickyBar.classList.remove('ss-sticky--visible');\n      }\n    }\n\n    window.addEventListener('scroll', function() {\n      scrolledPast = window.scrollY \u003e 800;\n      updateSticky();\n    }, { passive: true });\n\n    var observer = new IntersectionObserver(function(entries) {\n      ctaInView = entries[0].isIntersecting;\n      updateSticky();\n    }, { threshold: 0 });\n    observer.observe(mainCta);\n  })();\n\n\n  \/* ==========================================================================\n     BELOW FOLD -- UGC carousel\n     ========================================================================== *\/\n  (function() {\n    var wrap = document.querySelector('[data-ugc-carousel]');\n    if (!wrap) return;\n    var track = wrap.querySelector('[data-ugc-track]');\n    var items = track.querySelectorAll('.ss-ugc__item');\n    var dots = wrap.querySelectorAll('[data-ugc-dot]');\n    var prev = wrap.querySelector('[data-ugc-prev]');\n    var next = wrap.querySelector('[data-ugc-next]');\n    var current = 0;\n    var total = items.length;\n\n    function isMobile() { return window.innerWidth \u003c= 767; }\n\n    function playVideo(idx) {\n      items.forEach(function(item, i) {\n        var vid = item.querySelector('video');\n        if (!vid) return;\n        if (i === idx) { vid.play().catch(function(){}); }\n        else { vid.pause(); }\n      });\n    }\n\n    function goTo(idx) {\n      current = ((idx % total) + total) % total;\n      if (isMobile()) {\n        items.forEach(function(item) {\n          item.style.transform = 'translateX(-' + (current * 100) + '%)';\n        });\n      }\n      dots.forEach(function(d, i) { d.classList.toggle('active', i === current); });\n      playVideo(current);\n    }\n\n    if (prev) prev.addEventListener('click', function() { goTo(current - 1); });\n    if (next) next.addEventListener('click', function() { goTo(current + 1); });\n    dots.forEach(function(d, i) { d.addEventListener('click', function() { goTo(i); }); });\n\n    var sx = 0;\n    track.addEventListener('touchstart', function(e) { sx = e.touches[0].clientX; }, {passive:true});\n    track.addEventListener('touchend', function(e) {\n      var dx = sx - e.changedTouches[0].clientX;\n      if (Math.abs(dx) \u003e 50) goTo(current + (dx \u003e 0 ? 1 : -1));\n    }, {passive:true});\n\n    items.forEach(function(item) {\n      var vid = item.querySelector('video');\n      if (!vid) return;\n      item.addEventListener('click', function() {\n        if (vid.paused) { vid.play(); } else { vid.pause(); }\n      });\n    });\n\n    goTo(0);\n\n    \/* Autoplay when section visible *\/\n    var section = document.querySelector('.ss-ugc');\n    if (section) {\n      var sectionObs = new IntersectionObserver(function(entries) {\n        if (entries[0].isIntersecting) { playVideo(current); }\n        else { items.forEach(function(item) { var v = item.querySelector('video'); if(v) v.pause(); }); }\n      }, { threshold: 0.3 });\n      sectionObs.observe(section);\n    }\n  })();\n\n\n  \/* ==========================================================================\n     BELOW FOLD -- Mobile video autoplay fix\n     ========================================================================== *\/\n  (function() {\n    function initVideoAutoplay() {\n      var videos = document.querySelectorAll('.ss-ugc__item video');\n      if (!videos.length) return;\n      videos.forEach(function(v) {\n        v.setAttribute('playsinline', '');\n        v.setAttribute('muted', '');\n        v.muted = true;\n        v.setAttribute('autoplay', '');\n        v.setAttribute('loop', '');\n      });\n      var observer = new IntersectionObserver(function(entries) {\n        entries.forEach(function(entry) {\n          var video = entry.target;\n          if (entry.isIntersecting \u0026\u0026 entry.intersectionRatio \u003e= 0.5) {\n            video.play().catch(function(){});\n          } else {\n            video.pause();\n          }\n        });\n      }, { threshold: [0, 0.5] });\n      videos.forEach(function(v) { observer.observe(v); });\n    }\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', initVideoAutoplay);\n    } else {\n      setTimeout(initVideoAutoplay, 1000);\n    }\n  })();\n\n})();\n\u003c\/script\u003e\n\n\u003c!-- Air Reviews: explicit init for Page template (theme app extension only auto-binds to Product templates) --\u003e\n\u003cscript src=\"https:\/\/cdn.shopify.com\/extensions\/019e1a1a-4764-7983-90ad-9053e7d12e09\/air-reviews-1-94\/assets\/air-reviews-block.js\" type=\"text\/javascript\" defer\u003e\u003c\/script\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003c!-- ── Subscription Terms · mirror of ss-suppfacts pattern · v6 ── --\u003e\n\u003cstyle\u003e\n.ss-subterms-overlay {\n  position: fixed !important;\n  top: 0 !important; left: 0 !important;\n  width: 100% !important; height: 100% !important;\n  background: rgba(0,0,0,0.5) !important;\n  z-index: 10001 !important;\n  display: none !important;\n  align-items: center !important;\n  justify-content: center !important;\n  padding: 20px !important;\n}\n.ss-subterms-overlay.ss-subterms--open { display: flex !important; }\n\n.ss-subterms-panel {\n  background: rgba(255, 255, 255, 0.55) !important;\n  backdrop-filter: blur(32px) saturate(200%) contrast(105%) !important;\n  -webkit-backdrop-filter: blur(32px) saturate(200%) contrast(105%) !important;\n  border: 1px solid rgba(255, 255, 255, 0.5) !important;\n  border-radius: 12px !important;\n  max-width: 440px !important;\n  width: 100% !important;\n  max-height: 85vh !important;\n  overflow-y: auto !important;\n  position: relative !important;\n  padding: 32px 28px !important;\n  box-shadow: 0 24px 64px rgba(0,0,0,0.32), 0 4px 12px rgba(0,0,0,0.08) !important;\n  font-family: 'Instrument Sans', system-ui, sans-serif !important;\n  color: #0F1419 !important;\n}\n.ss-subterms-close {\n  position: absolute !important;\n  top: 12px !important; right: 12px !important;\n  width: 32px !important; height: 32px !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  background: #F3F4F6 !important;\n  border: 0 !important;\n  border-radius: 999px !important;\n  font-size: 20px !important;\n  line-height: 1 !important;\n  color: #6B7280 !important;\n  cursor: pointer !important;\n  transition: background 0.2s ease !important;\n}\n.ss-subterms-close:hover { background: #E5E7EB !important; }\n.ss-subterms-title {\n  font-size: 18px !important;\n  font-weight: 800 !important;\n  color: #0F1419 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.5px !important;\n  margin: 0 0 18px !important;\n  font-family: 'Instrument Sans', sans-serif !important;\n}\n.ss-subterms-row { margin-bottom: 14px !important; }\n.ss-subterms-row:last-of-type { margin-bottom: 18px !important; }\n.ss-subterms-row h4 {\n  font-size: 13.5px !important;\n  font-weight: 700 !important;\n  margin: 0 0 4px !important;\n  color: #0F1419 !important;\n  font-family: 'Instrument Sans', sans-serif !important;\n}\n.ss-subterms-row p {\n  font-size: 13px !important;\n  line-height: 1.5 !important;\n  margin: 0 !important;\n  color: #2A332E !important;\n  font-weight: 400 !important;\n  font-family: 'Instrument Sans', sans-serif !important;\n}\n.ss-subterms-ok {\n  display: block !important;\n  width: 100% !important;\n  background: #FF1F2D !important;\n  color: #fff !important;\n  border: 0 !important;\n  border-radius: 999px !important;\n  padding: 12px 16px !important;\n  font-family: 'Instrument Sans', sans-serif !important;\n  font-size: 13.5px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  letter-spacing: 0.01em !important;\n}\n.ss-subterms-ok:hover { background: #D4101C !important; }\n.ss-subterms-powered {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: 6px !important;\n  margin: 10px 0 0 !important;\n  font-size: 11px !important;\n  color: #6B7280 !important;\n  font-family: 'Instrument Sans', sans-serif !important;\n  letter-spacing: 0.02em !important;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"ss-subterms-overlay\" id=\"ss-subterms-overlay\"\u003e\n  \u003cdiv class=\"ss-subterms-panel\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ss-subterms-title\"\u003e\n    \u003cbutton class=\"ss-subterms-close\" id=\"ss-subterms-close\" aria-label=\"Close\"\u003e×\u003c\/button\u003e\n    \u003ch3 id=\"ss-subterms-title\" class=\"ss-subterms-title\"\u003eGreat reasons to subscribe\u003c\/h3\u003e\n    \u003cdiv class=\"ss-subterms-row\"\u003e\n      \u003ch4\u003eFlexible frequency\u003c\/h4\u003e\n      \u003cp\u003eNot sure how much of something you need, or how often. Adjust quantities and frequencies any time.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ss-subterms-row\"\u003e\n      \u003ch4\u003eOrder reminders\u003c\/h4\u003e\n      \u003cp\u003eWe'll let you know before each shipment. Delay, reschedule or cancel if you need to. We'll only bill you when your order ships.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ss-subterms-row\"\u003e\n      \u003ch4\u003eYou're in control\u003c\/h4\u003e\n      \u003cp\u003eAdd or remove subscriptions, cancel orders, and edit frequencies and quantities through the customer portal.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cbutton class=\"ss-subterms-ok\" id=\"ss-subterms-ok\"\u003eGot it\u003c\/button\u003e\n    \u003cdiv class=\"ss-subterms-powered\"\u003e\n      \u003cspan\u003ePowered by\u003c\/span\u003e\n      \u003csvg width=\"78\" height=\"14\" viewbox=\"0 0 78 14\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-label=\"Recharge\" role=\"img\"\u003e\n        \u003ctext x=\"0\" y=\"11\" font-family=\"Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif\" font-size=\"13\" font-weight=\"700\" letter-spacing=\"-0.025em\" fill=\"#2D3748\"\u003erecharge\u003c\/text\u003e\n      \u003c\/svg\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  function open(){\n    var o=document.getElementById('ss-subterms-overlay');\n    if(o){ o.classList.add('ss-subterms--open'); document.body.style.overflow='hidden'; }\n  }\n  function close(){\n    var o=document.getElementById('ss-subterms-overlay');\n    if(o){ o.classList.remove('ss-subterms--open'); document.body.style.overflow=''; }\n  }\n  document.addEventListener('click', function(e){\n    var trig=e.target.closest('#ss-sub-terms-trigger');\n    if(trig){ e.preventDefault(); open(); return; }\n    if(e.target.closest('#ss-subterms-close, #ss-subterms-ok')){ close(); return; }\n    \/\/ click outside panel closes\n    var o=document.getElementById('ss-subterms-overlay');\n    if(o \u0026\u0026 o.classList.contains('ss-subterms--open') \u0026\u0026 e.target===o){ close(); }\n  });\n  document.addEventListener('keydown', function(e){\n    if(e.key==='Escape') close();\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- ── \/Subscription Terms v6 ── --\u003e\n\n\n\n\n\u003cstyle\u003e\n\/* Mobile: full-bleed -30px the Why Ripple \/ Comparison image *\/\n@media (max-width: 768px) {\n  #ss-offer-page .ss-comp__image {\n    width: calc(100% + 60px) !important;\n    margin-left: -30px !important;\n    margin-right: -30px !important;\n    max-width: none !important;\n  }\n  #ss-offer-page .ss-comp__image img {\n    width: 100% !important;\n    max-width: 100% !important;\n    height: auto !important;\n    display: block !important;\n  }\n}\n\u003c\/style\u003e\n\n\n\u003cstyle id=\"ripple-system-fix\"\u003e\n#ss-offer-page .ss-bundle-badge{background:#16140F !important;letter-spacing:.14em !important}\n#ss-offer-page .ss-bundle-title{font-family:'Instrument Sans',sans-serif !important;font-size:17px !important;font-weight:700 !important;color:#16140F !important;line-height:1.2 !important;display:flex !important;align-items:center !important;gap:10px !important;float:none !important}\n#ss-offer-page .ss-bundle-save{font-family:'Inconsolata',monospace !important;font-size:11px !important;font-weight:700 !important;letter-spacing:.05em !important;color:#FF1F2D !important;background:rgba(255,31,45,.09) !important;border:1px solid rgba(255,31,45,.28) !important;padding:2px 9px !important;border-radius:20px !important;text-transform:uppercase !important}\n#ss-offer-page .ss-bundle-hero{display:flex !important;align-items:baseline !important;gap:8px !important;margin:8px 0 6px !important}\n#ss-offer-page .ss-bundle-hprice{font-family:'Instrument Sans',sans-serif !important;font-size:40px !important;font-weight:800 !important;letter-spacing:-.025em !important;line-height:.95 !important;color:#16140F !important;font-variant-numeric:tabular-nums !important}\n#ss-offer-page .ss-bundle-hsuf{font-family:'Inconsolata',monospace !important;font-size:15px !important;font-weight:500 !important;color:#6F6A62 !important}\n#ss-offer-page .ss-bundle-prow{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important}\n#ss-offer-page .ss-bundle-pleft{font-family:'Inconsolata',monospace !important;font-size:12.5px !important;color:#6F6A62 !important}\n#ss-offer-page .ss-bundle-pleft del{opacity:.65 !important;margin-right:5px !important}\n#ss-offer-page .ss-bundle-pday{font-family:'Inconsolata',monospace !important;font-size:12.5px !important;font-weight:700 !important;color:#FF1F2D !important;letter-spacing:.06em !important;text-transform:uppercase !important;white-space:nowrap !important}\n#ss-offer-page .ss-bundle-card{padding-top:44px !important}\n#ss-offer-page .ss-bundle-radio{top:50px !important}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp{opacity:1 !important;border:2px solid #E7E1D8 !important;border-style:solid !important;background:#FFFFFF !important;padding-top:18px !important}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp .ss-bundle-radio{top:20px !important}\n#ss-offer-page .ss-bundle-card.ss-bundle-otp .ss-bundle-title{color:#16140F !important;font-weight:700 !important}\n\u003c\/style\u003e\n\u003cstyle id=\"ripple-vstack-fix\"\u003e\n#ss-offer-page .ss-vstack{margin:14px 0 16px !important}\n#ss-offer-page .ss-vstack__hook{font-family:'Instrument Sans',sans-serif !important;font-weight:700 !important;font-size:20px !important;line-height:1.25 !important;letter-spacing:-.02em !important;color:#0F1419 !important;margin-bottom:10px !important}\n#ss-offer-page .ss-vstack__line{font-family:'Inconsolata',monospace !important;font-size:13px !important;line-height:1.5 !important;color:#4B5563 !important;margin-top:5px !important}\n#ss-offer-page .ss-vstack__hl{color:#FF1F2D !important;font-weight:700 !important}\n\u003c\/style\u003e","brand":"The Smart Sups","offers":[{"title":"Watermelon Yuzu","offer_id":62794388668575,"sku":"RIPPLE-WMY","price":69.95,"currency_code":"AUD","in_stock":true},{"title":"Peach Mango","offer_id":62794388701343,"sku":"RIPPLE-PM","price":69.95,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0475\/7310\/6847\/files\/slot1-wmy.png?v=1779307536","url":"https:\/\/thesmartsups.com\/products\/ripple-1","provider":"The Smart Sups","version":"1.0","type":"link"}