{"product_id":"r-gummies","title":"Hormone Balance Gummies","description":"\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@400;500;600;700;800\u0026amp;family=Manrope:wght@400;500;600;700;800\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n  \/* =========================================================\n     ReformingLabs Hormone Balance+ \\002014  Women's Facial Hair Suppressor PDP\n     Embeddable Shopify product description block\n     Namespace: .rl-fh\n     ========================================================= *\/\n \n  \/* Hide Atlas theme chrome *\/\n  .main-page-title, .page-title, .page-title-base, .page-title--base,\n  h1.main-page-title, h1.page-title, main \u003e h1, main \u003e h1.main-page-title,\n  .page-width \u003e h1, .page-width--narrow \u003e h1 { display: none !important; }\n  .shopify-section-group-header-group, .shopify-section-group-footer-group,\n  [id*=\"header-group\"], [id*=\"footer-group\"], .announcement-bar, .announcement,\n  .site-header, header.header, header.section-header,\n  body \u003e header, body \u003e footer, footer.site-footer, footer.footer,\n  .site-footer { display: none !important; }\n  body { margin: 0 !important; padding: 0 !important; overflow-x: hidden !important; }\n  main.page-width, main.page-width--narrow, main.section-main-padding,\n  .page-width, .page-width--narrow, .section-main-padding {\n    max-width: none !important; width: 100% !important;\n    padding-left: 0 !important; padding-right: 0 !important;\n    margin-left: 0 !important; margin-right: 0 !important;\n  }\n \n  :root {\n    --rl-fh-pink: #ec3b8e;\n    --rl-fh-pink-deep: #d62b7c;\n    --rl-fh-pink-soft: #fce4f1;\n    --rl-fh-pink-bg: #fff5fa;\n    --rl-fh-pink-pale: #fef0f7;\n    --rl-fh-cream: #faf6f4;\n    --rl-fh-lavender: #f0e9fc;\n    --rl-fh-text: #1a1a1a;\n    --rl-fh-text-soft: #6b6b6b;\n    --rl-fh-line: #ececec;\n  }\n \n  .rl-fh, .rl-fh * { box-sizing: border-box; margin: 0; padding: 0; font-family: 'DM Sans', sans-serif; }\n  .rl-fh { color: var(--rl-fh-text); background: #fff; -webkit-font-smoothing: antialiased; max-width: 1180px; margin: 0 auto; }\n  .rl-fh img { max-width: 100%; display: block; }\n  .rl-fh a { color: inherit; text-decoration: none; }\n  .rl-fh button { font-family: inherit; cursor: pointer; border: none; background: none; }\n \n  \/* Full-bleed helpers *\/\n  .rl-fh-ship-banner, .rl-fh-logo-bar, .rl-fh-feel-banner, .rl-fh-press-bar {\n    width: 100vw !important; max-width: 100vw !important;\n    margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;\n    box-sizing: border-box !important; position: relative !important;\n  }\n  html, body { overflow-x: hidden !important; }\n \n  \/* ============ Reveal animations \\002014  premium scroll drop ============ *\/\n  \/* Upgraded easing: \"expo out\" cubic-bezier creates that high-end Apple\/Bloomin feel \\002014 \n     things start fast, decelerate gently into their final position. *\/\n  .rl-fh-reveal {\n    opacity: 0;\n    transform: translate3d(0, 56px, 0) scale(0.97);\n    filter: blur(6px);\n    transition:\n      opacity 1.15s cubic-bezier(0.16, 1, 0.3, 1),\n      transform 1.15s cubic-bezier(0.16, 1, 0.3, 1),\n      filter 1.15s cubic-bezier(0.16, 1, 0.3, 1);\n    will-change: opacity, transform, filter;\n  }\n  .rl-fh-reveal.in-view {\n    opacity: 1;\n    transform: translate3d(0, 0, 0) scale(1);\n    filter: blur(0);\n  }\n  .rl-fh-reveal.delay-1 { transition-delay: 0.10s; }\n  .rl-fh-reveal.delay-2 { transition-delay: 0.20s; }\n  .rl-fh-reveal.delay-3 { transition-delay: 0.30s; }\n  .rl-fh-reveal.delay-4 { transition-delay: 0.40s; }\n  .rl-fh-reveal.delay-5 { transition-delay: 0.50s; }\n  .rl-fh-reveal.delay-6 { transition-delay: 0.60s; }\n \n  \/* Drop-in: the \"popped down from above\" feel \\002014  perfect for hero-style cards\n     or anything you want to feel like it landed in place. *\/\n  .rl-fh-drop-in {\n    opacity: 0;\n    transform: translate3d(0, -64px, 0) scale(0.96);\n    filter: blur(8px);\n    transition:\n      opacity 1.25s cubic-bezier(0.16, 1, 0.3, 1),\n      transform 1.25s cubic-bezier(0.22, 1, 0.36, 1),\n      filter 1.25s cubic-bezier(0.16, 1, 0.3, 1);\n    will-change: opacity, transform, filter;\n  }\n  .rl-fh-drop-in.in-view {\n    opacity: 1;\n    transform: translate3d(0, 0, 0) scale(1);\n    filter: blur(0);\n  }\n \n  \/* Slide-from-side variants \\002014  pair with .rl-fh-reveal *\/\n  .rl-fh-reveal.from-left {\n    transform: translate3d(-72px, 24px, 0) scale(0.97);\n  }\n  .rl-fh-reveal.from-right {\n    transform: translate3d(72px, 24px, 0) scale(0.97);\n  }\n  .rl-fh-reveal.from-left.in-view,\n  .rl-fh-reveal.from-right.in-view {\n    transform: translate3d(0, 0, 0) scale(1);\n  }\n \n  \/* Auto-stagger: drop .rl-fh-stagger on a parent and every direct child\n     reveals one after another with no manual delay classes. *\/\n  .rl-fh-stagger \u003e * {\n    opacity: 0;\n    transform: translate3d(0, 32px, 0);\n    transition:\n      opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),\n      transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);\n    will-change: opacity, transform;\n  }\n  .rl-fh-stagger.in-view \u003e * { opacity: 1; transform: translate3d(0, 0, 0); }\n  .rl-fh-stagger.in-view \u003e *:nth-child(1) { transition-delay: 0.05s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(2) { transition-delay: 0.15s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(3) { transition-delay: 0.25s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(4) { transition-delay: 0.35s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(5) { transition-delay: 0.45s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(6) { transition-delay: 0.55s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(7) { transition-delay: 0.65s; }\n  .rl-fh-stagger.in-view \u003e *:nth-child(8) { transition-delay: 0.75s; }\n \n  \/* --- Staggered feature reveal (sections below lifestyle image) --- *\/\n  \/* Each child element fades + drops up after the parent section is in view *\/\n  .rl-fh-steps.rl-fh-reveal li,\n  .rl-fh-compare.rl-fh-reveal table tbody tr,\n  .rl-fh-survey.rl-fh-reveal .rl-fh-survey-row,\n  .rl-fh-ing.rl-fh-reveal .rl-fh-ing-item,\n  .rl-fh-reviews.rl-fh-reveal .rl-fh-rcard {\n    opacity: 0;\n    transform: translateY(36px);\n    transition: opacity 0.75s cubic-bezier(.2,.7,.2,1), transform 0.75s cubic-bezier(.2,.7,.2,1);\n    will-change: opacity, transform;\n  }\n  \/* Per-step drop-in: each step fires individually as it crosses the middle of the viewport. *\/\n  ul.rl-fh-steps \u003e li {\n    opacity: 0 !important;\n    transform: translateY(60px) !important;\n    transition: opacity 0.95s cubic-bezier(.2,.7,.2,1), transform 0.95s cubic-bezier(.2,.7,.2,1) !important;\n    will-change: opacity, transform;\n  }\n  ul.rl-fh-steps \u003e li.in-view {\n    opacity: 1 !important;\n    transform: translateY(0) !important;\n  }\n  .rl-fh-steps.rl-fh-reveal.in-view li,\n  .rl-fh-compare.rl-fh-reveal.in-view table tbody tr,\n  .rl-fh-survey.rl-fh-reveal.in-view .rl-fh-survey-row,\n  .rl-fh-ing.rl-fh-reveal.in-view .rl-fh-ing-item,\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard {\n    opacity: 1;\n    transform: translateY(0);\n  }\n  \/* Stagger delays \\002014  each feature drops in one after the other *\/\n  .rl-fh-steps.rl-fh-reveal.in-view li:nth-child(1),\n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(1),\n  .rl-fh-survey.rl-fh-reveal.in-view .rl-fh-survey-row:nth-child(1),\n  .rl-fh-ing.rl-fh-reveal.in-view .rl-fh-ing-item:nth-child(1),\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard:nth-child(1) { transition-delay: 0.10s; }\n \n  .rl-fh-steps.rl-fh-reveal.in-view li:nth-child(2),\n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(2),\n  .rl-fh-survey.rl-fh-reveal.in-view .rl-fh-survey-row:nth-child(2),\n  .rl-fh-ing.rl-fh-reveal.in-view .rl-fh-ing-item:nth-child(2),\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard:nth-child(2) { transition-delay: 0.22s; }\n \n  .rl-fh-steps.rl-fh-reveal.in-view li:nth-child(3),\n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(3),\n  .rl-fh-survey.rl-fh-reveal.in-view .rl-fh-survey-row:nth-child(3),\n  .rl-fh-ing.rl-fh-reveal.in-view .rl-fh-ing-item:nth-child(3),\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard:nth-child(3) { transition-delay: 0.34s; }\n \n  .rl-fh-steps.rl-fh-reveal.in-view li:nth-child(4),\n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(4),\n  .rl-fh-ing.rl-fh-reveal.in-view .rl-fh-ing-item:nth-child(4),\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard:nth-child(4) { transition-delay: 0.46s; }\n \n  .rl-fh-steps.rl-fh-reveal.in-view li:nth-child(5),\n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(5),\n  .rl-fh-ing.rl-fh-reveal.in-view .rl-fh-ing-item:nth-child(5),\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard:nth-child(5) { transition-delay: 0.58s; }\n \n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(6),\n  .rl-fh-reviews.rl-fh-reveal.in-view .rl-fh-rcard:nth-child(6) { transition-delay: 0.70s; }\n \n  .rl-fh-compare.rl-fh-reveal.in-view tbody tr:nth-child(7) { transition-delay: 0.82s; }\n \n  \/* Section-level reveal now inherits the upgraded premium .rl-fh-reveal base \\002014 \n     bigger drop, scale, blur, expo-out easing \\002014  so no override needed here. *\/\n \n  @media (prefers-reduced-motion: reduce) {\n    .rl-fh-reveal,\n    .rl-fh-drop-in,\n    .rl-fh-stagger,\n    .rl-fh-stagger \u003e *,\n    .rl-fh-steps.rl-fh-reveal li,\n    .rl-fh-compare.rl-fh-reveal table tbody tr,\n    .rl-fh-survey.rl-fh-reveal .rl-fh-survey-row,\n    .rl-fh-ing.rl-fh-reveal .rl-fh-ing-item,\n    .rl-fh-reviews.rl-fh-reveal .rl-fh-rcard {\n      opacity: 1 !important;\n      transform: none !important;\n      filter: none !important;\n      transition: none !important;\n    }\n  }\n  \/* Fallback for environments where JS is blocked \/ scripts stripped (Shopify preview, no-JS, etc.) *\/\n  .rl-fh-no-js .rl-fh-reveal,\n  .rl-fh-no-js .rl-fh-drop-in,\n  .rl-fh-no-js .rl-fh-stagger,\n  .rl-fh-no-js .rl-fh-stagger \u003e *,\n  .rl-fh-no-js ul.rl-fh-steps \u003e li,\n  .rl-fh-no-js .rl-fh-rcard,\n  .rl-fh-no-js .rl-fh-ing-item,\n  .rl-fh-no-js .rl-fh-survey-row {\n    opacity: 1 !important;\n    transform: none !important;\n    filter: none !important;\n  }\n \n  \/* ============ Side menu drawer ============ *\/\n  .rl-fh-menu-backdrop {\n    position: fixed; inset: 0;\n    background: rgba(20, 8, 14, 0.42);\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\n    opacity: 0; visibility: hidden;\n    transition: opacity 0.5s cubic-bezier(.16,1,.3,1), visibility 0s linear 0.5s;\n    z-index: 9998;\n  }\n  .rl-fh-menu-backdrop.open {\n    opacity: 1; visibility: visible;\n    transition: opacity 0.5s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s;\n  }\n  .rl-fh-menu {\n    position: fixed; top: 0; left: 0; bottom: 0;\n    width: 100vw; max-width: 100vw;\n    background: #fff;\n    z-index: 9999;\n    transform: translateX(-105%);\n    transition: transform 0.7s cubic-bezier(.16,1,.3,1);\n    display: flex; flex-direction: column;\n    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;\n    color: var(--rl-fh-text);\n    will-change: transform;\n  }\n  @media (min-width: 700px) {\n    .rl-fh-menu { width: 460px; box-shadow: 20px 0 60px rgba(0,0,0,0.18); }\n  }\n  .rl-fh-menu.open { transform: translateX(0); }\n \n  .rl-fh-menu-head {\n    display: flex; align-items: center; justify-content: space-between;\n    padding: 22px 22px 14px;\n  }\n  .rl-fh-menu-logo {\n    font-weight: 800; font-size: 24px; letter-spacing: -0.02em;\n    text-transform: lowercase;\n    color: var(--rl-fh-text);\n  }\n  .rl-fh-menu-logo .b {\n    display: inline-flex; width: 28px; height: 28px;\n    background: var(--rl-fh-pink);\n    color: #fff;\n    border-radius: 50%;\n    align-items: center; justify-content: center;\n    font-weight: 800;\n    margin-right: 4px;\n    vertical-align: middle;\n  }\n  .rl-fh-menu-close {\n    background: none; border: none;\n    font-size: 32px; line-height: 1;\n    color: #1a1a1a;\n    cursor: pointer; padding: 4px 8px;\n    transition: transform 0.2s ease;\n  }\n  .rl-fh-menu-close:hover { transform: scale(1.1); }\n \n  .rl-fh-menu-nav {\n    display: flex; flex-direction: column;\n    padding: 18px 0 0;\n    margin: 0 22px;\n  }\n  .rl-fh-menu-link {\n    display: block;\n    padding: 22px 0;\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 22px; font-weight: 600;\n    color: var(--rl-fh-text) !important;\n    text-decoration: none !important;\n    border-bottom: 1px solid var(--rl-fh-line);\n    transition: color 0.15s ease, padding-left 0.2s cubic-bezier(.16,1,.3,1);\n    opacity: 0;\n    transform: translateX(-12px);\n  }\n  .rl-fh-menu.open .rl-fh-menu-link {\n    opacity: 1; transform: translateX(0);\n    transition: color 0.15s ease, padding-left 0.2s cubic-bezier(.16,1,.3,1),\n                opacity 0.6s cubic-bezier(.16,1,.3,1), transform 0.6s cubic-bezier(.16,1,.3,1);\n  }\n  .rl-fh-menu.open .rl-fh-menu-link:nth-child(1) { transition-delay: 0.20s, 0s, 0.20s, 0.20s; }\n  .rl-fh-menu.open .rl-fh-menu-link:nth-child(2) { transition-delay: 0.30s, 0s, 0.30s, 0.30s; }\n  .rl-fh-menu-link:hover { color: var(--rl-fh-pink-deep) !important; padding-left: 6px; }\n \n  .rl-fh-menu-cta-wrap {\n    padding: 36px 22px 24px;\n    opacity: 0;\n    transform: translateY(10px);\n    transition: opacity 0.6s cubic-bezier(.16,1,.3,1), transform 0.6s cubic-bezier(.16,1,.3,1);\n  }\n  .rl-fh-menu.open .rl-fh-menu-cta-wrap {\n    opacity: 1; transform: translateY(0);\n    transition-delay: 0.42s;\n  }\n  .rl-fh-menu-cta {\n    display: block; width: 100%;\n    padding: 20px;\n    background: var(--rl-fh-pink);\n    color: #fff !important;\n    border: none; border-radius: 999px;\n    font-family: 'Manrope', sans-serif;\n    font-weight: 700; font-size: 16px;\n    letter-spacing: 1.4px;\n    cursor: pointer;\n    box-shadow: 0 8px 22px rgba(236,59,142,0.32);\n    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n  }\n  .rl-fh-menu-cta:hover {\n    background: var(--rl-fh-pink-deep);\n    transform: translateY(-1px);\n    box-shadow: 0 12px 28px rgba(236,59,142,0.4);\n  }\n \n  .rl-fh-menu-foot {\n    margin-top: auto;\n    padding: 20px 22px 24px;\n    border-top: 1px solid var(--rl-fh-line);\n    display: flex; align-items: center; justify-content: space-between;\n    opacity: 0;\n    transform: translateY(8px);\n    transition: opacity 0.5s cubic-bezier(.16,1,.3,1), transform 0.5s cubic-bezier(.16,1,.3,1);\n  }\n  .rl-fh-menu.open .rl-fh-menu-foot {\n    opacity: 1; transform: translateY(0);\n    transition-delay: 0.55s;\n  }\n \n  \/* Make the menu icon button styled *\/\n  .rl-fh-logo-bar .menu-icon {\n    background: none; border: none;\n    color: var(--rl-fh-text);\n    font-size: 22px; line-height: 1;\n    cursor: pointer; padding: 0;\n    display: inline-flex; align-items: center;\n  }\n \n  \/* ============ Cart slider ============ *\/\n  .rl-fh-cart-backdrop {\n    position: fixed; inset: 0;\n    background: rgba(20, 8, 14, 0.42);\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\n    opacity: 0;\n    visibility: hidden;\n    transition: opacity 0.5s cubic-bezier(.16,1,.3,1), visibility 0s linear 0.5s;\n    z-index: 9998;\n  }\n  .rl-fh-cart-backdrop.open {\n    opacity: 1;\n    visibility: visible;\n    transition: opacity 0.5s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s;\n  }\n  .rl-fh-cart {\n    position: fixed; top: 0; right: 0; bottom: 0;\n    width: 440px; max-width: 100vw;\n    background: #fff;\n    box-shadow: -20px 0 60px rgba(0,0,0,0.18);\n    z-index: 9999;\n    transform: translateX(105%);\n    transition: transform 0.7s cubic-bezier(.16,1,.3,1);\n    display: flex; flex-direction: column;\n    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;\n    color: var(--rl-fh-text);\n    will-change: transform;\n  }\n  .rl-fh-cart.open { transform: translateX(0); }\n \n  .rl-fh-cart-banner {\n    background: linear-gradient(90deg, #e09bab 0%, #e09bab 55%, #c98697 100%);\n    color: #fff;\n    padding: 13px 22px;\n    font-size: 14px; font-weight: 600;\n    display: flex; align-items: center; gap: 8px;\n  }\n  .rl-fh-cart-banner-dot { display: none; }\n \n  .rl-fh-cart-savings {\n    background: #c91e6a;\n    color: #fff;\n    padding: 14px 22px;\n    font-size: 14px; font-weight: 500;\n    display: flex; align-items: center; gap: 10px;\n  }\n  .rl-fh-cart-savings-mark {\n    width: 18px; height: 18px;\n    border-radius: 50%;\n    background: #fbf2dc;\n    border: none;\n    display: inline-block;\n    line-height: 0; color: transparent;\n    flex-shrink: 0;\n  }\n  .rl-fh-cart-savings strong { font-weight: 700; }\n \n  .rl-fh-cart-head {\n    display: flex; align-items: center; justify-content: space-between;\n    padding: 22px 22px 16px;\n  }\n  .rl-fh-cart-title {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 28px; font-weight: 700;\n    display: flex; align-items: center; gap: 10px;\n  }\n  .rl-fh-cart-count {\n    background: #1a1a1a; color: #fff;\n    width: 26px; height: 26px;\n    border-radius: 50%;\n    display: inline-flex; align-items: center; justify-content: center;\n    font-size: 13px; font-weight: 700;\n  }\n  .rl-fh-cart-close {\n    background: none; border: none;\n    font-size: 28px; line-height: 1;\n    color: #1a1a1a;\n    cursor: pointer; padding: 4px 8px;\n    transition: transform 0.2s ease;\n  }\n  .rl-fh-cart-close:hover { transform: scale(1.1); }\n \n  .rl-fh-cart-ship { padding: 0 22px 14px; }\n  .rl-fh-cart-ship-text {\n    font-size: 14px; color: #1a1a1a;\n    margin-bottom: 8px;\n  }\n  .rl-fh-cart-ship-bar {\n    height: 4px;\n    background: #f0e3eb;\n    border-radius: 2px;\n    overflow: hidden;\n  }\n  .rl-fh-cart-ship-fill {\n    height: 100%;\n    width: 100%;\n    background: var(--rl-fh-pink);\n    border-radius: 2px;\n    transform-origin: left;\n    transform: scaleX(0);\n    transition: transform 1s cubic-bezier(.16,1,.3,1) 0.3s;\n  }\n  .rl-fh-cart.open .rl-fh-cart-ship-fill { transform: scaleX(1); }\n \n  .rl-fh-cart-body {\n    flex: 1;\n    overflow-y: auto;\n    padding: 8px 22px;\n  }\n  .rl-fh-cart-item {\n    display: flex; gap: 16px;\n    padding: 18px 0;\n    align-items: flex-start;\n    min-height: 130px;\n    border-bottom: 1px solid #f5e9ef;\n    opacity: 0;\n    transform: translateY(14px);\n    transition: opacity 0.6s cubic-bezier(.16,1,.3,1) 0.25s, transform 0.6s cubic-bezier(.16,1,.3,1) 0.25s;\n  }\n  .rl-fh-cart-item:last-child { border-bottom: none; }\n  .rl-fh-cart.open .rl-fh-cart-item { opacity: 1; transform: translateY(0); }\n  .rl-fh-cart-empty {\n    text-align: center;\n    padding: 60px 22px 40px;\n    color: #6a6a6a;\n    font-size: 16px;\n    font-weight: 600;\n    line-height: 1.5;\n  }\n  .rl-fh-cart-empty span {\n    display: block;\n    margin-top: 6px;\n    font-size: 13px;\n    font-weight: 500;\n    color: #9a9a9a;\n  }\n  .rl-fh-cart-line-foot {\n    display: flex; align-items: center; justify-content: space-between;\n    margin-top: 6px;\n  }\n  .rl-fh-cart-item-img {\n    flex: 0 0 110px;\n    width: 110px; height: 130px;\n    background: linear-gradient(160deg, var(--rl-fh-pink-soft) 0%, #fff 60%, var(--rl-fh-pink-soft) 100%);\n    border-radius: 14px;\n    padding: 8px;\n    box-sizing: border-box;\n    overflow: hidden;\n    box-shadow: inset 0 0 0 1px rgba(236,59,142,0.1);\n  }\n  .rl-fh-cart-item-img img {\n    width: 100%; height: 100%;\n    object-fit: contain;\n    display: block;\n  }\n  .rl-fh-cart-item-main { flex: 1; min-width: 0; }\n  .rl-fh-cart-item-top {\n    display: flex; justify-content: space-between; gap: 12px;\n    margin-bottom: 6px;\n  }\n  .rl-fh-cart-item-name {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 17px; font-weight: 700;\n    line-height: 1.25;\n  }\n  .rl-fh-cart-item-sub {\n    font-size: 13px; color: #6a6a6a;\n    margin-top: 3px;\n  }\n  .rl-fh-cart-remove {\n    background: none; border: none;\n    font-size: 13px; color: #6a6a6a;\n    text-decoration: underline;\n    cursor: pointer; padding: 0;\n    flex-shrink: 0;\n    transition: color 0.15s ease;\n  }\n  .rl-fh-cart-remove:hover { color: var(--rl-fh-pink-deep); }\n  .rl-fh-cart-item-prices {\n    display: flex; align-items: baseline; gap: 8px;\n    margin-bottom: 8px;\n  }\n  .rl-fh-cart-item-prices .now {\n    font-family: 'Manrope', sans-serif;\n    font-size: 17px; font-weight: 700;\n    color: #1a1a1a;\n  }\n  .rl-fh-cart-item-prices .was {\n    font-size: 14px; color: #b94e4e;\n    text-decoration: line-through;\n  }\n  .rl-fh-cart-benefits {\n    list-style: none !important;\n    padding: 0 !important; margin: 0 0 12px !important;\n    font-size: 13.5px;\n  }\n  .rl-fh-cart-benefits li {\n    display: flex; align-items: center; gap: 6px;\n    padding: 2px 0;\n    color: #2a2a2a;\n  }\n  .rl-fh-cart-benefits .check {\n    color: #20a070; font-weight: 700;\n  }\n  .rl-fh-cart-qty {\n    display: inline-flex; align-items: center;\n    border: 1px solid #e2e2e2;\n    border-radius: 10px;\n    padding: 4px 10px;\n    margin-top: 4px;\n  }\n  .rl-fh-cart-qty-btn {\n    background: none; border: none;\n    width: 28px; height: 28px;\n    font-size: 18px; line-height: 1;\n    color: #1a1a1a; cursor: pointer;\n    transition: color 0.15s ease;\n  }\n  .rl-fh-cart-qty-btn:hover { color: var(--rl-fh-pink-deep); }\n  .rl-fh-cart-qty-val {\n    width: 36px; text-align: center;\n    font-weight: 700; font-size: 15px;\n  }\n \n  .rl-fh-cart-foot {\n    border-top: 1px solid #f0e3eb;\n    padding: 18px 22px 22px;\n    background: #fff;\n  }\n  .rl-fh-cart-row {\n    display: flex; justify-content: space-between; align-items: baseline;\n    font-size: 15px; padding: 4px 0;\n  }\n  .rl-fh-cart-row.total {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 18px; font-weight: 700;\n    margin-top: 4px;\n  }\n  .rl-fh-cart-discount { color: var(--rl-fh-pink-deep); font-weight: 600; }\n  .rl-fh-cart-ccy { font-size: 14px; color: #6a6a6a; font-weight: 500; }\n  \/* ============ Shipping protection toggle ============ *\/\n  .rl-fh-cart-protect {\n    display: flex; align-items: center; gap: 12px;\n    padding: 12px 14px;\n    margin: 12px 0 14px;\n    background: #fff5fa;\n    border: 1px solid #f7d7e7;\n    border-radius: 12px;\n    cursor: pointer;\n    transition: background 0.2s ease, border-color 0.2s ease;\n  }\n  .rl-fh-cart-protect:hover { background: #ffeaf3; }\n  .rl-fh-protect-icon {\n    flex-shrink: 0;\n    width: 36px; height: 36px;\n    border-radius: 50%;\n    background: #fff;\n    color: var(--rl-fh-pink);\n    display: flex; align-items: center; justify-content: center;\n    box-shadow: 0 2px 6px rgba(236,59,142,0.15);\n  }\n  .rl-fh-protect-info { flex: 1; min-width: 0; }\n  .rl-fh-protect-title {\n    font-weight: 700; font-size: 14px;\n    color: var(--rl-fh-text);\n    line-height: 1.2;\n  }\n  .rl-fh-protect-sub {\n    font-size: 12px; color: #6a6a6a;\n    margin-top: 2px; line-height: 1.35;\n  }\n  .rl-fh-protect-sub strong { color: var(--rl-fh-pink-deep); font-weight: 700; }\n  .rl-fh-protect-switch {\n    position: relative; flex-shrink: 0;\n    width: 44px; height: 26px;\n  }\n  .rl-fh-protect-switch input {\n    opacity: 0; width: 0; height: 0;\n    position: absolute;\n  }\n  .rl-fh-protect-slider {\n    position: absolute; inset: 0;\n    background: #d8c2cd;\n    border-radius: 999px;\n    transition: background 0.25s cubic-bezier(.4,0,.2,1);\n    cursor: pointer;\n  }\n  .rl-fh-protect-slider::before {\n    content: '';\n    position: absolute;\n    top: 3px; left: 3px;\n    width: 20px; height: 20px;\n    background: #fff;\n    border-radius: 50%;\n    transition: transform 0.25s cubic-bezier(.4,0,.2,1);\n    box-shadow: 0 2px 4px rgba(0,0,0,0.18);\n  }\n  .rl-fh-protect-switch input:checked + .rl-fh-protect-slider {\n    background: var(--rl-fh-pink);\n  }\n  .rl-fh-protect-switch input:checked + .rl-fh-protect-slider::before {\n    transform: translateX(18px);\n  }\n \n  .rl-fh-cart-checkout {\n    display: block; width: 100%;\n    margin: 16px 0 14px;\n    padding: 18px;\n    background: var(--rl-fh-pink);\n    color: #fff;\n    border: none; border-radius: 14px;\n    font-family: 'Manrope', sans-serif;\n    font-weight: 700; font-size: 16px;\n    letter-spacing: 1.4px;\n    cursor: pointer;\n    box-shadow: 0 8px 22px rgba(236,59,142,0.32);\n    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n  }\n  .rl-fh-cart-checkout:hover {\n    background: var(--rl-fh-pink-deep);\n    transform: translateY(-1px);\n    box-shadow: 0 12px 28px rgba(236,59,142,0.4);\n  }\n  .rl-fh-cart-pays {\n    display: flex; flex-wrap: wrap; gap: 6px;\n    justify-content: center;\n  }\n  .rl-fh-cart-pays span {\n    font-size: 9px; font-weight: 700;\n    background: #f5f5f5;\n    padding: 4px 6px;\n    border-radius: 4px;\n    color: #2a2a2a;\n    letter-spacing: 0.4px;\n  }\n  @media (max-width: 480px) {\n    .rl-fh-cart { width: 100vw; }\n    .rl-fh-cart-item-img { flex: 0 0 92px; width: 92px; height: 110px; }\n    .rl-fh-cart-title { font-size: 24px; }\n    .rl-fh-cart-checkout { padding: 16px; font-size: 15px; }\n  }\n \n  \/* ============ Header currency selector ============ *\/\n  .rl-fh-currency {\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    line-height: 1;\n    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;\n    z-index: 50;\n  }\n  .rl-fh-currency-btn {\n    display: inline-flex; align-items: center; gap: 6px;\n    padding: 0;\n    margin: 0;\n    background: transparent;\n    border: none;\n    font-family: inherit;\n    font-size: 14px; font-weight: 700;\n    line-height: 1;\n    color: #1a1a1a;\n    cursor: pointer;\n    transition: opacity 0.15s ease;\n    vertical-align: middle;\n  }\n  .rl-fh-currency-btn:hover { opacity: 0.7; }\n  .rl-fh-currency-flag { font-size: 18px; line-height: 1; display: inline-flex; align-items: center; }\n  .rl-fh-currency-code { letter-spacing: 0.3px; line-height: 1; }\n  .rl-fh-currency-arrow { font-size: 9px; opacity: 0.6; margin-left: 1px; line-height: 1; }\n  .rl-fh-nav-ico { font-size: 18px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; }\n  .rl-fh-currency-menu {\n    position: absolute;\n    top: calc(100% + 10px); right: -8px;\n    background: #fff;\n    border-radius: 14px;\n    box-shadow: 0 12px 36px rgba(0,0,0,0.16);\n    min-width: 230px;\n    max-height: 380px; overflow-y: auto;\n    padding: 6px 0;\n    border: 1px solid rgba(0,0,0,0.06);\n    animation: rlFhFadeMenu 0.18s ease-out;\n    z-index: 100;\n  }\n  @keyframes rlFhFadeMenu {\n    from { opacity: 0; transform: translateY(-6px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n  .rl-fh-currency-item {\n    display: flex; align-items: center; gap: 10px;\n    padding: 9px 14px;\n    font-size: 13.5px; font-weight: 500;\n    cursor: pointer;\n    color: #1a1a1a;\n    transition: background 0.12s ease;\n  }\n  .rl-fh-currency-item:hover { background: var(--rl-fh-pink-soft); }\n  .rl-fh-currency-item.active {\n    background: var(--rl-fh-pink-soft);\n    color: var(--rl-fh-pink-deep);\n    font-weight: 700;\n  }\n  .rl-fh-currency-item .flag { font-size: 16px; line-height: 1; }\n  .rl-fh-currency-item .code { font-weight: 700; letter-spacing: 0.4px; min-width: 38px; }\n  .rl-fh-currency-item .name { color: #6a6a6a; font-size: 12.5px; flex: 1; }\n  @media (max-width: 600px) {\n    .rl-fh-currency { top: 10px; right: 10px; }\n    .rl-fh-currency-btn { padding: 7px 10px; font-size: 12.5px; }\n    .rl-fh-currency-menu { max-height: 320px; min-width: 200px; }\n  }\n \n  \/* ============ Top shipping banner ============ *\/\n  .rl-fh-ship-banner {\n    background: var(--rl-fh-pink-soft) !important;\n    color: var(--rl-fh-text) !important;\n    padding: 11px 16px !important;\n    overflow: hidden;\n    white-space: nowrap;\n    font-weight: 500; font-size: 13px;\n  }\n  .rl-fh-ship-track {\n    display: inline-flex; gap: 36px;\n    animation: rl-fh-scroll 35s linear infinite;\n    padding-left: 36px; will-change: transform;\n  }\n  .rl-fh-ship-track span { flex-shrink: 0; }\n  .rl-fh-ship-track .dot { color: var(--rl-fh-pink); }\n  @keyframes rl-fh-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }\n \n  \/* ============ Logo bar ============ *\/\n  .rl-fh-logo-bar {\n    background: #fff !important;\n    padding: 18px 16px !important;\n    border-bottom: 1px solid var(--rl-fh-line) !important;\n    display: flex !important; align-items: center !important; justify-content: space-between !important;\n  }\n  .rl-fh-logo-bar .menu-icon, .rl-fh-logo-bar .nav-icons {\n    display: flex; gap: 12px; color: var(--rl-fh-text); font-size: 18px;\n    align-items: center;\n  }\n  .rl-fh-logo-bar .logo {\n    font-weight: 800; font-size: 24px; letter-spacing: -0.02em;\n    text-transform: lowercase; color: var(--rl-fh-text);\n  }\n  .rl-fh-logo-bar .logo .b {\n    display: inline-flex; width: 28px; height: 28px;\n    background: var(--rl-fh-pink); color: #fff; border-radius: 50%;\n    align-items: center; justify-content: center; font-size: 16px;\n    font-weight: 800; margin-right: 6px; vertical-align: middle;\n    transform: translateY(-2px);\n  }\n \n  \/* ============ Product hero ============ *\/\n  .rl-fh-product-wrap {\n    padding: 28px 24px;\n    display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: start;\n  }\n  .rl-fh-gallery {\n    position: relative;\n    background: linear-gradient(160deg, var(--rl-fh-pink-bg) 0%, var(--rl-fh-pink-soft) 100%);\n    border-radius: 18px; padding: 0;\n    aspect-ratio: 1\/1;\n    display: flex; align-items: center; justify-content: center;\n    overflow: hidden;\n  }\n  .rl-fh-gallery-side {\n    position: absolute; left: 22px; top: 50%; transform: translateY(-50%);\n    display: flex; flex-direction: column; gap: 28px; z-index: 2;\n  }\n  .rl-fh-feature {\n    display: flex; flex-direction: column; align-items: center; text-align: center;\n    width: 110px;\n  }\n  .rl-fh-feature-circle {\n    width: 70px; height: 70px; border-radius: 50%;\n    background: var(--rl-fh-pink);\n    display: flex; align-items: center; justify-content: center;\n    color: #fff; font-size: 28px; margin-bottom: 10px;\n    box-shadow: 0 8px 22px rgba(236, 59, 142, 0.25);\n  }\n  .rl-fh-feature-label {\n    font-size: 13px; font-weight: 600; line-height: 1.25; color: var(--rl-fh-text);\n  }\n  .rl-fh-product-img {\n    max-width: 80%; max-height: 85%; object-fit: contain;\n    filter: drop-shadow(0 18px 40px rgba(214, 43, 124, 0.18));\n    z-index: 1;\n  }\n  \/* Product mock \\002014  now displays a real product image *\/\n  .rl-fh-product-mock {\n    width: 100%; max-width: 100%; aspect-ratio: 1\/1;\n    position: relative; z-index: 1;\n    display: flex; align-items: center; justify-content: center;\n    padding: 0;\n    background: transparent;\n    overflow: visible;\n  }\n  .rl-fh-product-mock img {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: opacity 0.35s cubic-bezier(.16,1,.3,1);\n  }\n  .rl-fh-product-mock.swapping img { opacity: 0.4; }\n  \/* Fallback if image 404s *\/\n  .rl-fh-product-mock img.broken {\n    background: linear-gradient(165deg, #ffeef6 0%, #ffd2e6 60%, #ff9bc6 100%);\n    border-radius: 24px;\n    object-fit: cover;\n    position: relative;\n  }\n  .rl-fh-product-mock.broken::after {\n    content: \"Image not loaded\";\n    position: absolute; inset: 0;\n    display: flex; align-items: center; justify-content: center;\n    color: #fff; font-weight: 700; font-size: 14px;\n    background: linear-gradient(165deg, #ffeef6 0%, #ffd2e6 60%, #ff9bc6 100%);\n    border-radius: 24px;\n    box-shadow: 0 18px 50px rgba(214, 43, 124, 0.22);\n  }\n  .rl-fh-strip-item.broken {\n    background: linear-gradient(135deg, #fff5fa, #ffe0ee);\n    display: flex; align-items: center; justify-content: center;\n    color: #d12a7a; font-weight: 700; font-size: 10px;\n  }\n  .rl-fh-strip-item.broken img { display: none; }\n  .rl-fh-strip-item.broken::before { content: \"no img\"; }\n  .rl-fh-mock-logo {\n    color: var(--rl-fh-pink-deep); font-weight: 800; font-size: 20px; letter-spacing: -0.02em;\n    text-transform: lowercase; margin-top: 22px;\n  }\n  .rl-fh-mock-name {\n    margin-top: 14px; font-weight: 800; font-size: 18px; line-height: 1.1;\n    text-transform: uppercase; color: #fff; text-align: center; letter-spacing: 0.02em;\n    background: var(--rl-fh-pink); padding: 10px 14px; border-radius: 999px;\n  }\n  .rl-fh-mock-tag {\n    margin-top: 10px; background: #fff; color: var(--rl-fh-pink-deep);\n    font-style: italic; padding: 4px 12px; border-radius: 999px;\n    font-size: 12px; font-weight: 600;\n  }\n  .rl-fh-mock-flavor {\n    margin-top: auto; background: var(--rl-fh-pink); color: #fff;\n    padding: 6px 14px; border-radius: 999px;\n    font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;\n  }\n  .rl-fh-zoom {\n    position: absolute; top: 18px; right: 18px;\n    width: 34px; height: 34px; border-radius: 50%;\n    background: #fff; display: flex; align-items: center; justify-content: center;\n    color: var(--rl-fh-pink-deep); font-size: 14px;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n  }\n \n  \/* ============ Feel difference banner ============ *\/\n  .rl-fh-feel-banner {\n    background: var(--rl-fh-pink) !important;\n    color: #fff !important;\n    padding: 16px 16px !important;\n    text-align: center !important;\n    font-weight: 700 !important; font-size: 13px !important;\n    \/* Full-bleed edge-to-edge regardless of parent padding *\/\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(50% - 50vw) !important;\n    margin-right: calc(50% - 50vw) !important;\n    box-sizing: border-box !important;\n    border-radius: 0 !important;\n    letter-spacing: 0.06em !important;\n    text-transform: uppercase !important;\n    margin-top: 24px !important;\n    margin-bottom: 24px !important;\n  }\n  .rl-fh-feel-banner span { margin: 0 18px; opacity: 0.9; }\n \n  \/* ============ Image strip ============ *\/\n  .rl-fh-strip {\n    display: flex; gap: 8px; overflow-x: auto; padding: 0 24px 22px;\n    scrollbar-width: none;\n  }\n  .rl-fh-strip::-webkit-scrollbar { display: none; }\n  \/* Hero variant \\002014  sits flush under the main product image *\/\n  .rl-fh-strip-hero {\n    padding: 14px 24px 6px;\n    margin-top: -6px;\n  }\n  .rl-fh-strip-hero .rl-fh-strip-item {\n    flex: 0 0 72px; height: 72px;\n  }\n  .rl-fh-strip-item {\n    flex: 0 0 90px; height: 90px; border-radius: 12px;\n    background: var(--rl-fh-pink-bg);\n    overflow: hidden; cursor: pointer;\n    border: 2px solid transparent; transition: border-color 0.2s;\n  }\n  .rl-fh-strip-item.active { border-color: var(--rl-fh-pink); }\n  .rl-fh-strip-item img { width: 100%; height: 100%; object-fit: cover; }\n  .rl-fh-strip-item.placeholder {\n    background: linear-gradient(135deg, var(--rl-fh-pink-soft), var(--rl-fh-pink-bg));\n    display: flex; align-items: center; justify-content: center;\n    color: var(--rl-fh-pink-deep); font-size: 11px; font-weight: 600; text-align: center;\n    padding: 6px;\n  }\n \n  \/* ============ Product info ============ *\/\n  .rl-fh-info { padding: 0 24px 30px; }\n  .rl-fh-stars-row {\n    display: flex; align-items: center; gap: 10px; margin-bottom: 10px;\n    color: var(--rl-fh-text); font-size: 13px; font-weight: 500;\n  }\n  .rl-fh-stars { color: #1a1a1a; letter-spacing: 0.02em; }\n  .rl-fh-title {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 38px !important; font-weight: 800 !important;\n    line-height: 1.1 !important; letter-spacing: -0.02em !important;\n    margin-bottom: 14px !important;\n  }\n  .rl-fh-title em {\n    color: var(--rl-fh-pink); font-style: normal;\n  }\n  .rl-fh-subtitle {\n    font-size: 16px; color: var(--rl-fh-text); line-height: 1.5;\n    font-weight: 500; margin-bottom: 20px;\n  }\n  .rl-fh-checks {\n    list-style: none !important;\n    margin-bottom: 18px;\n  }\n  .rl-fh-checks li {\n    display: flex; align-items: center; gap: 10px;\n    font-size: 14px; font-weight: 500; padding: 6px 0;\n    color: var(--rl-fh-text);\n  }\n  .rl-fh-checks li::before {\n    content: \"\\002713 \"; color: #1a8e3f; font-weight: 800; font-size: 14px;\n    flex-shrink: 0;\n  }\n  .rl-fh-supp-link {\n    display: inline-block !important;\n    font-size: 13px !important;\n    font-weight: 600 !important;\n    color: var(--rl-fh-text, #1a1a1a) !important;\n    text-decoration: underline !important;\n    text-decoration-thickness: 1.5px !important;\n    text-underline-offset: 3px !important;\n    padding: 8px 0 18px !important;\n  }\n  .rl-fh-supp-link:hover { color: var(--rl-fh-pink, #ec3b8e) !important; }\n \n  \/* Limited time offer *\/\n  .rl-fh-lto {\n    background: var(--rl-fh-pink-pale);\n    border-radius: 12px; padding: 14px 18px;\n    margin: 12px 0 20px;\n    font-size: 14px; font-weight: 500;\n  }\n  .rl-fh-lto strong { color: var(--rl-fh-pink-deep); font-weight: 700; margin-right: 6px; }\n \n  \/* Choose your offer *\/\n  .rl-fh-choose {\n    font-size: 18px; font-weight: 700; margin-bottom: 14px;\n  }\n  .rl-fh-offers {\n    display: grid; grid-template-columns: 1fr 1fr; gap: 12px;\n    margin-bottom: 14px;\n  }\n  .rl-fh-offer {\n    border: 2px solid var(--rl-fh-line); border-radius: 14px;\n    padding: 14px; cursor: pointer; position: relative;\n    background: #fff; transition: all 0.2s;\n    display: flex; align-items: center; gap: 10px;\n  }\n  .rl-fh-offer:hover { border-color: var(--rl-fh-pink-deep); }\n  .rl-fh-offer.active {\n    background: var(--rl-fh-pink); color: #fff;\n    border-color: var(--rl-fh-pink);\n  }\n  .rl-fh-offer-thumb {\n    width: 46px; height: 46px; border-radius: 10px;\n    background: var(--rl-fh-pink-bg); flex-shrink: 0;\n    display: flex; align-items: center; justify-content: center;\n    font-size: 18px; color: var(--rl-fh-pink-deep); font-weight: 800;\n    overflow: hidden;\n  }\n  .rl-fh-offer-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }\n  .rl-fh-offer.active .rl-fh-offer-thumb {\n    background: rgba(255,255,255,0.18); color: #fff;\n  }\n  .rl-fh-offer-info { flex: 1; min-width: 0; }\n  .rl-fh-offer-name { font-weight: 700; font-size: 14px; margin-top: 2px; }\n  .rl-fh-offer-tag {\n    display: inline-block; font-size: 9px; font-weight: 800;\n    padding: 2px 8px; border-radius: 999px;\n    background: var(--rl-fh-pink); color: #fff;\n    text-transform: uppercase; letter-spacing: 0.05em;\n  }\n  .rl-fh-offer.active .rl-fh-offer-tag { background: #fff; color: var(--rl-fh-pink); }\n  .rl-fh-offer-tag.alt { background: var(--rl-fh-text); color: #fff; }\n  .rl-fh-offer.active .rl-fh-offer-tag.alt { background: #fff; color: var(--rl-fh-pink); }\n  .rl-fh-offer-sub { font-size: 11px; opacity: 0.7; margin-top: 2px; }\n  .rl-fh-offer-price {\n    margin-top: 8px;\n    display: flex; align-items: baseline; gap: 8px;\n    flex-wrap: wrap;\n  }\n  .rl-fh-offer-price .now {\n    font-weight: 800; font-size: 17px;\n    color: var(--rl-fh-pink-deep);\n    letter-spacing: -0.01em;\n  }\n  .rl-fh-offer-price .was {\n    font-size: 12px; font-weight: 600;\n    color: var(--rl-fh-text-soft);\n    text-decoration: line-through;\n    text-decoration-thickness: 1.5px;\n  }\n  .rl-fh-offer.active .rl-fh-offer-price .now { color: #fff; }\n  .rl-fh-offer.active .rl-fh-offer-price .was { color: rgba(255,255,255,0.75); }\n \n  \/* Subscription block *\/\n  .rl-fh-sub-block {\n    background: var(--rl-fh-pink-pale);\n    border-radius: 14px; overflow: hidden;\n    margin-bottom: 12px;\n  }\n  .rl-fh-sub-banner {\n    background: var(--rl-fh-pink); color: #fff;\n    padding: 10px 16px; font-size: 13px; font-weight: 700;\n    display: flex; align-items: center; gap: 8px;\n  }\n  .rl-fh-sub-banner::before { content: \"\\002713 \"; }\n  .rl-fh-sub-row {\n    padding: 14px 18px;\n    display: flex; justify-content: space-between; align-items: center;\n    cursor: pointer;\n  }\n  .rl-fh-sub-row .left { display: flex; align-items: center; gap: 10px; }\n  .rl-fh-sub-radio {\n    width: 18px; height: 18px; border-radius: 50%;\n    border: 2px solid var(--rl-fh-pink); flex-shrink: 0;\n    position: relative;\n  }\n  .rl-fh-sub-active .rl-fh-sub-radio::after {\n    content: \"\"; position: absolute; inset: 3px;\n    background: var(--rl-fh-pink); border-radius: 50%;\n  }\n  .rl-fh-sub-name { font-weight: 700; font-size: 15px; }\n  .rl-fh-sub-prices { text-align: right; }\n  .rl-fh-sub-prices .now { font-weight: 800; font-size: 16px; }\n  .rl-fh-sub-prices .was { font-size: 12px; color: var(--rl-fh-text-soft); text-decoration: line-through; margin-left: 6px; }\n  .rl-fh-sub-prices .day { font-size: 11px; color: var(--rl-fh-text-soft); display: block; }\n  .rl-fh-sub-perks {\n    list-style: none !important; padding: 4px 18px 16px;\n  }\n  .rl-fh-sub-perks li {\n    display: flex; align-items: center; gap: 8px;\n    font-size: 13px; padding: 4px 0;\n  }\n  .rl-fh-sub-perks li::before {\n    content: \"\\002713 \"; color: #1a8e3f; font-weight: 800; flex-shrink: 0;\n  }\n \n  \/* One time row *\/\n  .rl-fh-onetime {\n    border: 1.5px solid var(--rl-fh-line);\n    border-radius: 14px; padding: 14px 18px; margin-bottom: 14px;\n    display: flex; justify-content: space-between; align-items: center;\n    cursor: pointer; transition: border-color 0.2s;\n  }\n  .rl-fh-onetime:hover { border-color: var(--rl-fh-pink-deep); }\n  .rl-fh-onetime.active { border-color: var(--rl-fh-pink); border-width: 2px; padding: 13px 17px; }\n  .rl-fh-onetime .left { display: flex; align-items: center; gap: 10px; }\n  .rl-fh-onetime .radio {\n    width: 18px; height: 18px; border-radius: 50%;\n    border: 2px solid #ccc; flex-shrink: 0; position: relative;\n  }\n  .rl-fh-onetime.active .radio { border-color: var(--rl-fh-pink); }\n  .rl-fh-onetime.active .radio::after {\n    content: \"\"; position: absolute; inset: 3px;\n    background: var(--rl-fh-pink); border-radius: 50%;\n  }\n  .rl-fh-onetime-name { font-weight: 700; font-size: 15px; }\n \n  \/* Stock alert *\/\n  .rl-fh-stock {\n    display: flex; align-items: center; gap: 8px;\n    font-size: 13px; padding: 10px 0; color: var(--rl-fh-text);\n  }\n  .rl-fh-stock-dot {\n    width: 8px; height: 8px; border-radius: 50%;\n    background: var(--rl-fh-pink); flex-shrink: 0;\n    box-shadow: 0 0 0 4px rgba(236, 59, 142, 0.18);\n  }\n  .rl-fh-stock strong { color: var(--rl-fh-pink-deep); }\n \n  \/* ATC button *\/\n  .rl-fh-atc {\n    display: block !important; width: 100% !important;\n    background: var(--rl-fh-pink, #ec3b8e) !important;\n    color: #fff !important;\n    padding: 18px !important;\n    font-size: 15px !important; font-weight: 800 !important;\n    text-transform: uppercase !important; letter-spacing: 0.08em !important;\n    border-radius: 999px !important; border: none !important;\n    transition: transform 0.15s, background 0.15s !important;\n    cursor: pointer !important;\n    margin: 8px 0 !important;\n    font-family: 'DM Sans', sans-serif !important;\n  }\n  .rl-fh-atc:hover { background: var(--rl-fh-pink-deep) !important; transform: translateY(-1px); }\n  .rl-fh-atc-meta {\n    display: flex; justify-content: space-between; align-items: center;\n    font-size: 12px; padding: 6px 4px; color: var(--rl-fh-text);\n  }\n  .rl-fh-atc-meta .green { color: #1a8e3f; font-weight: 600; display: flex; align-items: center; gap: 6px; }\n  .rl-fh-atc-meta .green::before { content: \"\"; width: 8px; height: 8px; border-radius: 50%; background: #1a8e3f; }\n \n  \/* Customer rating row *\/\n  .rl-fh-rating-row {\n    text-align: center; padding: 18px 0;\n    font-size: 14px; font-weight: 600;\n  }\n  .rl-fh-rating-row .stars { color: #1a1a1a; font-size: 16px; display: block; margin-bottom: 4px; }\n \n  \/* Customer mini photos *\/\n  .rl-fh-customer-strip {\n    display: flex; gap: 6px; overflow-x: auto; padding-bottom: 14px;\n    scrollbar-width: none;\n  }\n  .rl-fh-customer-strip::-webkit-scrollbar { display: none; }\n  .rl-fh-customer-strip \u003e div {\n    flex: 0 0 90px; height: 100px; border-radius: 10px;\n    background: linear-gradient(135deg, var(--rl-fh-pink-soft), var(--rl-fh-pink-bg));\n    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;\n    color: var(--rl-fh-pink-deep); font-size: 11px; font-weight: 600;\n  }\n  .rl-fh-ugc span {\n    width: 44px; height: 44px; border-radius: 50%;\n    background: var(--rl-fh-pink); color: #fff;\n    display: flex; align-items: center; justify-content: center;\n    font-weight: 800; font-size: 18px;\n    box-shadow: 0 4px 12px rgba(236,59,142,0.25);\n  }\n  .rl-fh-ugc em { font-style: normal; font-size: 11px; color: var(--rl-fh-text);\n  }\n \n  \/* Accordion *\/\n  .rl-fh-acc { margin: 14px 0; }\n  .rl-fh-acc details {\n    border: 1px solid var(--rl-fh-line);\n    border-radius: 12px; margin-bottom: 8px; overflow: hidden;\n  }\n  .rl-fh-acc summary {\n    list-style: none; cursor: pointer;\n    padding: 16px 18px; font-weight: 700; font-size: 15px;\n    display: flex; justify-content: space-between; align-items: center;\n  }\n  .rl-fh-acc summary::-webkit-details-marker { display: none; }\n  .rl-fh-acc summary::after {\n    content: \"+\"; font-size: 20px; font-weight: 400;\n    transition: transform 0.2s;\n  }\n  .rl-fh-acc details.open summary::after { transform: rotate(45deg); }\n  .rl-fh-acc-body {\n    max-height: 0; overflow: hidden;\n    transition: max-height 0.3s ease;\n    padding: 0 18px;\n    font-size: 14px; line-height: 1.6;\n  }\n  .rl-fh-acc details.open .rl-fh-acc-body {\n    max-height: 1000px; padding: 0 18px 16px;\n  }\n \n  \/* ============ Feedback bars ============ *\/\n  .rl-fh-feedback {\n    background: var(--rl-fh-pink-pale);\n    border-radius: 14px; padding: 26px;\n    margin: 24px 24px;\n  }\n  .rl-fh-feedback-title {\n    text-align: center; font-size: 22px; font-weight: 700;\n    margin-bottom: 22px;\n    font-family: 'Manrope', sans-serif;\n  }\n  .rl-fh-fb-item { margin-bottom: 18px; }\n  .rl-fh-fb-item:last-child { margin-bottom: 0; }\n  .rl-fh-fb-label { font-size: 14px; font-weight: 600; margin-bottom: 8px; }\n  .rl-fh-fb-bar {\n    position: relative; height: 8px; background: var(--rl-fh-pink-soft);\n    border-radius: 999px; overflow: visible;\n  }\n  .rl-fh-fb-fill {\n    height: 100%; background: var(--rl-fh-pink); border-radius: 999px;\n    width: 0;\n    transition: width 1.4s cubic-bezier(.2,.7,.2,1);\n    position: relative;\n  }\n  .rl-fh-fb-fill::after {\n    content: \"\"; position: absolute; right: -7px; top: 50%; transform: translateY(-50%);\n    width: 16px; height: 16px; background: var(--rl-fh-pink);\n    border-radius: 50%; border: 3px solid #fff;\n    box-shadow: 0 2px 6px rgba(0,0,0,0.1);\n  }\n  .rl-fh-fb-ends {\n    display: flex; justify-content: space-between;\n    font-size: 11px; color: var(--rl-fh-text-soft);\n    margin-top: 6px;\n  }\n \n  \/* ============ Doctor quote ============ *\/\n  .rl-fh-doc {\n    border: 1px solid var(--rl-fh-line);\n    border-radius: 14px;\n    padding: 22px;\n    margin: 0 24px 24px;\n    display: flex; gap: 18px; align-items: flex-start;\n  }\n  .rl-fh-doc-avatar {\n    width: 72px; height: 72px; border-radius: 50%;\n    background: linear-gradient(135deg, var(--rl-fh-pink-soft), var(--rl-fh-pink-bg));\n    display: flex; align-items: center; justify-content: center;\n    color: var(--rl-fh-pink-deep); font-size: 28px;\n    flex-shrink: 0; overflow: hidden;\n  }\n  .rl-fh-doc-avatar img {\n    width: 100%; height: 100%; object-fit: cover; display: block;\n  }\n  .rl-fh-doc p {\n    font-size: 14px; line-height: 1.55; font-style: italic; margin-bottom: 12px;\n  }\n  .rl-fh-doc .name { font-weight: 700; font-size: 14px; font-style: normal; margin-bottom: 2px; }\n  .rl-fh-doc .title { font-size: 12px; color: var(--rl-fh-text-soft); font-style: normal; }\n \n  \/* ============ \"We don't do\" ============ *\/\n  .rl-fh-dont {\n    background: var(--rl-fh-lavender);\n    border-radius: 18px;\n    padding: 36px 24px;\n    margin: 0 24px 32px;\n    text-align: center;\n  }\n  .rl-fh-dont h2 {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 30px !important; font-weight: 800 !important;\n    margin-bottom: 14px !important;\n  }\n  .rl-fh-dont p {\n    font-size: 14px; line-height: 1.5;\n    max-width: 460px; margin: 0 auto 26px;\n  }\n  .rl-fh-dont-grid {\n    display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;\n    max-width: 460px; margin: 0 auto;\n  }\n  .rl-fh-dont-item {\n    display: flex; flex-direction: column; align-items: center; gap: 10px;\n  }\n  .rl-fh-dont-icon {\n    width: 56px; height: 56px; border-radius: 50%;\n    border: 2px solid var(--rl-fh-pink);\n    color: var(--rl-fh-pink); display: flex; align-items: center; justify-content: center;\n    font-size: 22px; position: relative;\n  }\n  .rl-fh-dont-icon::after {\n    content: \"\"; position: absolute; inset: 0;\n    border-radius: 50%;\n    background: linear-gradient(45deg, transparent calc(50% - 1.5px), var(--rl-fh-pink) calc(50% - 1.5px), var(--rl-fh-pink) calc(50% + 1.5px), transparent calc(50% + 1.5px));\n  }\n  .rl-fh-dont-label { font-size: 13px; font-weight: 600; text-align: center; }\n \n  \/* ============ How it works ============ *\/\n  .rl-fh-how {\n    padding: 16px 24px 28px;\n    text-align: center;\n  }\n  .rl-fh-how h2 {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 32px !important; font-weight: 800 !important;\n    margin-bottom: 14px !important;\n  }\n  .rl-fh-how h2 em { color: var(--rl-fh-pink); font-style: normal; }\n  .rl-fh-how-sub {\n    font-size: 14px; line-height: 1.55;\n    max-width: 460px; margin: 0 auto 26px;\n  }\n  .rl-fh-how-img {\n    width: 100%; max-width: 520px; margin: 0 auto;\n    border-radius: 18px; overflow: hidden;\n    background: var(--rl-fh-pink-bg);\n    display: block;\n  }\n  .rl-fh-how-img img { width: 100%; height: auto; max-width: 100%; object-fit: contain; display: block; }\n \n  \/* ============ Steps ============ *\/\n  .rl-fh-steps {\n    padding: 28px 24px;\n    list-style: none !important;\n    max-width: 540px; margin: 0 auto;\n  }\n  .rl-fh-steps li {\n    display: flex; align-items: center; gap: 14px;\n    padding: 12px 0; font-size: 17px; font-weight: 500;\n  }\n  .rl-fh-steps li::before {\n    content: \"\"; flex-shrink: 0;\n    width: 6px; height: 24px; background: var(--rl-fh-pink); border-radius: 3px;\n  }\n \n  \/* ============ Steps V2 (premium Bloomin-style reveal) ============ *\/\n  .rl-fh-stepsv2 {\n    max-width: 720px;\n    margin: 8px auto 28px;\n    padding: 28px 24px;\n    display: flex; flex-direction: column; gap: 28px;\n  }\n  .rl-fh-stepv2-row {\n    display: flex; gap: 18px;\n    align-items: flex-start;\n  }\n  .rl-fh-stepv2-bar {\n    flex-shrink: 0;\n    width: 4px; min-height: 56px;\n    background: linear-gradient(180deg, var(--rl-fh-pink, #ec3b8e) 0%, var(--rl-fh-pink-deep, #d12a7a) 100%);\n    border-radius: 4px;\n    align-self: stretch;\n  }\n  .rl-fh-stepv2-content {\n    flex: 1; min-width: 0;\n    padding-top: 2px;\n  }\n  .rl-fh-stepv2-title {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 19px; font-weight: 700;\n    line-height: 1.35;\n    color: var(--rl-fh-text, #1a0e15);\n    margin: 0 0 8px;\n    letter-spacing: -0.01em;\n  }\n  .rl-fh-stepv2-body {\n    font-size: 14.5px; line-height: 1.6;\n    color: var(--rl-fh-text-soft, #6a5a64);\n    margin: 0;\n    \/* Body fades in slightly after the title for the premium \"reveal\" effect *\/\n    opacity: 0;\n    transform: translateY(10px);\n    transition:\n      opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.18s,\n      transform 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.18s;\n  }\n  \/* Body becomes visible once the parent stagger row is .in-view *\/\n  .rl-fh-stepsv2.in-view .rl-fh-stepv2-row .rl-fh-stepv2-body,\n  .rl-fh-stepv2-row.in-view .rl-fh-stepv2-body {\n    opacity: 1; transform: translateY(0);\n  }\n  @media (max-width: 600px) {\n    .rl-fh-stepsv2 { padding: 22px 18px; gap: 22px; }\n    .rl-fh-stepv2-title { font-size: 16.5px; }\n    .rl-fh-stepv2-body { font-size: 13.5px; }\n    .rl-fh-stepv2-bar { width: 3px; }\n  }\n \n  \/* ============ Inline Video Strip (replaces customer avatars) ============ *\/\n  .rl-fh-vidstrip {\n    display: flex;\n    gap: 8px;\n    padding: 4px 0 14px;\n    overflow-x: auto;\n    scrollbar-width: none;\n    -ms-overflow-style: none;\n    -webkit-overflow-scrolling: touch;\n    scroll-snap-type: x mandatory;\n  }\n  .rl-fh-vidstrip::-webkit-scrollbar { display: none; }\n  .rl-fh-vidstrip-card {\n    flex: 0 0 64px;\n    height: 110px;\n    border-radius: 12px;\n    overflow: hidden;\n    position: relative;\n    background: #1a0e15;\n    cursor: pointer;\n    box-shadow: 0 4px 12px rgba(20, 8, 14, 0.12);\n    transition: transform 0.25s cubic-bezier(.16,1,.3,1), box-shadow 0.25s;\n    scroll-snap-align: start;\n  }\n  .rl-fh-vidstrip-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 8px 18px rgba(20, 8, 14, 0.18);\n  }\n  .rl-fh-vidstrip-card video {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n  .rl-fh-vidstrip-play {\n    display: none !important;\n  }\n  @media (max-width: 600px) {\n    .rl-fh-vidstrip-card { flex: 0 0 60px; height: 100px; }\n  }\n \n  \/* ============ Video Lightbox ============ *\/\n  .rl-fh-vidlb-backdrop {\n    position: fixed; inset: 0;\n    background: rgba(15, 5, 10, 0.85);\n    backdrop-filter: blur(12px);\n    -webkit-backdrop-filter: blur(12px);\n    opacity: 0; visibility: hidden;\n    transition: opacity 0.35s cubic-bezier(.16,1,.3,1), visibility 0s linear 0.35s;\n    z-index: 9997;\n    display: flex; align-items: center; justify-content: center;\n    padding: 24px;\n  }\n  .rl-fh-vidlb-backdrop.open {\n    opacity: 1; visibility: visible;\n    transition: opacity 0.35s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s;\n  }\n  .rl-fh-vidlb-card {\n    width: 100%; max-width: 380px;\n    aspect-ratio: 9\/16;\n    background: #000;\n    border-radius: 18px;\n    overflow: hidden;\n    position: relative;\n    box-shadow: 0 24px 60px rgba(0,0,0,0.5);\n    transform: scale(0.92);\n    transition: transform 0.4s cubic-bezier(.16,1,.3,1);\n  }\n  .rl-fh-vidlb-backdrop.open .rl-fh-vidlb-card {\n    transform: scale(1);\n  }\n  .rl-fh-vidlb-card video {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n  .rl-fh-vidlb-close {\n    position: absolute;\n    top: 12px; right: 12px;\n    width: 36px; height: 36px;\n    border-radius: 50%;\n    background: rgba(255,255,255,0.95);\n    color: #1a0e15;\n    border: none;\n    cursor: pointer;\n    font-size: 22px; line-height: 1;\n    display: flex; align-items: center; justify-content: center;\n    z-index: 5;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.25);\n  }\n  .rl-fh-vidlb-nav {\n    position: absolute;\n    top: 50%; transform: translateY(-50%);\n    width: 40px; height: 40px;\n    border-radius: 50%;\n    background: rgba(255,255,255,0.92);\n    color: #1a0e15;\n    border: none;\n    cursor: pointer;\n    font-size: 18px;\n    display: flex; align-items: center; justify-content: center;\n    z-index: 4;\n    box-shadow: 0 4px 14px rgba(0,0,0,0.3);\n    transition: transform 0.2s, background 0.2s;\n  }\n  .rl-fh-vidlb-nav:hover {\n    background: var(--rl-fh-pink, #ec3b8e); color: #fff;\n    transform: translateY(-50%) scale(1.05);\n  }\n  .rl-fh-vidlb-nav.prev { left: -52px; }\n  .rl-fh-vidlb-nav.next { right: -52px; }\n  @media (max-width: 600px) {\n    .rl-fh-vidlb-nav.prev { left: 8px; }\n    .rl-fh-vidlb-nav.next { right: 8px; }\n    .rl-fh-vidlb-nav { background: rgba(255,255,255,0.85); }\n  }\n \n  \/* ============ Video Carousel (legacy \\002014  kept for any orphan refs) ============ *\/\n  .rl-fh-vidcar {\n    padding: 36px 0 40px;\n    background: linear-gradient(180deg, #fff 0%, #fff5fa 100%);\n  }\n  .rl-fh-vidcar-head {\n    text-align: center; padding: 0 24px;\n    max-width: 720px; margin: 0 auto 24px;\n  }\n  .rl-fh-vidcar-head h2 {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 30px; font-weight: 800;\n    line-height: 1.15; margin: 0 0 10px;\n    letter-spacing: -0.02em;\n  }\n  .rl-fh-vidcar-head h2 em { color: var(--rl-fh-pink, #ec3b8e); font-style: normal; }\n  .rl-fh-vidcar-head p {\n    font-size: 14.5px; line-height: 1.55;\n    color: var(--rl-fh-text-soft, #6a5a64);\n    margin: 0;\n  }\n  .rl-fh-vidcar-wrap {\n    position: relative;\n    padding: 0 56px;\n  }\n  .rl-fh-vidcar-track {\n    display: flex;\n    gap: 14px;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    scroll-behavior: smooth;\n    -webkit-overflow-scrolling: touch;\n    padding: 6px 6px 18px;\n    scrollbar-width: none;\n    -ms-overflow-style: none;\n  }\n  .rl-fh-vidcar-track::-webkit-scrollbar { display: none; }\n  .rl-fh-vidcar-card {\n    flex: 0 0 calc((100% - 14px * 3) \/ 4 - 12px);\n    \/* Show ~4 cards with peek of 5th: subtract a sliver *\/\n    min-width: 180px;\n    aspect-ratio: 9 \/ 16;\n    border-radius: 18px;\n    overflow: hidden;\n    position: relative;\n    background: #1a0e15;\n    scroll-snap-align: start;\n    box-shadow: 0 6px 18px rgba(20, 8, 14, 0.12);\n    cursor: pointer;\n    transition: transform 0.3s cubic-bezier(.16,1,.3,1), box-shadow 0.3s;\n  }\n  .rl-fh-vidcar-card:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 12px 28px rgba(20, 8, 14, 0.18);\n  }\n  .rl-fh-vidcar-card video {\n    width: 100%; height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n  .rl-fh-vidcar-card-fallback {\n    position: absolute; inset: 0;\n    background: linear-gradient(135deg, #ec3b8e 0%, #d12a7a 100%);\n    display: flex; align-items: center; justify-content: center;\n    color: #fff; font-family: 'Manrope', sans-serif;\n    font-weight: 800; font-size: 13px;\n    text-align: center; padding: 18px;\n    letter-spacing: 0.02em;\n    z-index: 1;\n  }\n  .rl-fh-vidcar-card-label {\n    position: absolute; left: 12px; bottom: 12px;\n    background: rgba(0,0,0,0.55);\n    color: #fff;\n    font-size: 11px; font-weight: 700;\n    padding: 5px 10px; border-radius: 999px;\n    backdrop-filter: blur(6px);\n    -webkit-backdrop-filter: blur(6px);\n    z-index: 2;\n    letter-spacing: 0.02em;\n  }\n  .rl-fh-vidcar-arrow {\n    position: absolute;\n    top: 50%; transform: translateY(-50%);\n    width: 44px; height: 44px;\n    border-radius: 50%;\n    background: #fff;\n    border: 1.5px solid var(--rl-fh-line, #f0e0e9);\n    color: var(--rl-fh-text, #1a0e15);\n    font-size: 18px;\n    display: flex; align-items: center; justify-content: center;\n    cursor: pointer;\n    box-shadow: 0 4px 14px rgba(20, 8, 14, 0.10);\n    z-index: 5;\n    transition: all 0.2s;\n  }\n  .rl-fh-vidcar-arrow:hover {\n    background: var(--rl-fh-pink, #ec3b8e); color: #fff;\n    border-color: var(--rl-fh-pink, #ec3b8e);\n    transform: translateY(-50%) scale(1.05);\n  }\n  .rl-fh-vidcar-arrow.prev { left: 8px; }\n  .rl-fh-vidcar-arrow.next { right: 8px; }\n  .rl-fh-vidcar-arrow:disabled,\n  .rl-fh-vidcar-arrow.disabled {\n    opacity: 0.35; cursor: not-allowed;\n  }\n  .rl-fh-vidcar-arrow:disabled:hover,\n  .rl-fh-vidcar-arrow.disabled:hover {\n    background: #fff; color: var(--rl-fh-text, #1a0e15);\n    border-color: var(--rl-fh-line, #f0e0e9);\n    transform: translateY(-50%);\n  }\n  .rl-fh-vidcar-dots {\n    display: flex; justify-content: center; gap: 6px;\n    margin-top: 10px;\n  }\n  .rl-fh-vidcar-dot {\n    width: 6px; height: 6px; border-radius: 50%;\n    background: rgba(20,8,14,0.18);\n    transition: all 0.3s;\n    cursor: pointer; border: none; padding: 0;\n  }\n  .rl-fh-vidcar-dot.active {\n    width: 22px; border-radius: 4px;\n    background: var(--rl-fh-pink, #ec3b8e);\n  }\n  @media (max-width: 900px) {\n    .rl-fh-vidcar { padding: 28px 0 32px; }\n    .rl-fh-vidcar-head h2 { font-size: 24px; }\n    .rl-fh-vidcar-wrap { padding: 0 12px; }\n    .rl-fh-vidcar-card {\n      flex: 0 0 calc(50% - 16px);\n      min-width: 160px;\n    }\n    .rl-fh-vidcar-arrow { width: 38px; height: 38px; font-size: 16px; }\n    .rl-fh-vidcar-arrow.prev { left: -2px; }\n    .rl-fh-vidcar-arrow.next { right: -2px; }\n  }\n  @media (max-width: 480px) {\n    .rl-fh-vidcar-card {\n      flex: 0 0 70%;\n      min-width: 0;\n    }\n    .rl-fh-vidcar-arrow { width: 34px; height: 34px; font-size: 14px; }\n  }\n \n  \/* ============ Comparison ============ *\/\n  .rl-fh-compare {\n    padding: 32px 24px;\n    text-align: center;\n    overflow: hidden;\n  }\n  .rl-fh-compare-wrap {\n    width: 100%;\n    overflow-x: hidden;\n  }\n  .rl-fh-compare h2 {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 30px !important; font-weight: 800 !important;\n    line-height: 1.15 !important; margin-bottom: 14px !important;\n  }\n  .rl-fh-compare h2 em { color: var(--rl-fh-pink); font-style: normal; }\n  .rl-fh-compare p { font-size: 14px; line-height: 1.55; max-width: 480px; margin: 0 auto 24px; }\n  .rl-fh-compare table {\n    width: 100%; max-width: 640px; margin: 0 auto;\n    border-collapse: separate; border-spacing: 0;\n    table-layout: fixed;\n  }\n  .rl-fh-compare colgroup col.col-feat { width: 44%; }\n  .rl-fh-compare colgroup col.col-rl { width: 28%; }\n  .rl-fh-compare colgroup col.col-other { width: 28%; }\n  .rl-fh-compare th {\n    padding: 16px 12px;\n    font-size: 13px; font-weight: 800; text-align: center;\n    vertical-align: middle;\n  }\n  .rl-fh-compare th.rl-col {\n    background: var(--rl-fh-pink); color: #fff;\n    border-radius: 14px 14px 0 0;\n    font-size: 18px;\n  }\n  .rl-fh-compare th.other { color: var(--rl-fh-text); font-size: 11px; line-height: 1.3; }\n  .rl-fh-compare th.other small { display: block; font-weight: 500; color: var(--rl-fh-text-soft); margin-top: 4px; }\n  .rl-fh-compare td {\n    padding: 14px 12px;\n    font-size: 13px;\n    border: none;\n  }\n  .rl-fh-compare td.feat {\n    text-align: left; font-weight: 500; padding-left: 14px;\n  }\n  .rl-fh-compare td.rl-col {\n    background: var(--rl-fh-pink); text-align: center;\n  }\n  \/* Zebra stripes \\002014  remove outline, alternate row color on outer columns *\/\n  .rl-fh-compare tbody tr:nth-child(odd) td.feat,\n  .rl-fh-compare tbody tr:nth-child(odd) td.other-col {\n    background: #faf3f6;\n  }\n  .rl-fh-compare tbody tr:nth-child(even) td.feat,\n  .rl-fh-compare tbody tr:nth-child(even) td.other-col {\n    background: #f3e7ec;\n  }\n  .rl-fh-compare tbody tr:first-child td.feat { border-top-left-radius: 14px; }\n  .rl-fh-compare tbody tr:last-child td.feat { border-bottom-left-radius: 14px; }\n  .rl-fh-compare tbody tr:first-child td.other-col { border-top-right-radius: 14px; }\n  .rl-fh-compare tbody tr:last-child td.other-col { border-bottom-right-radius: 14px; }\n  .rl-fh-compare td.rl-col .check {\n    display: inline-flex; width: 26px; height: 26px; border-radius: 50%;\n    background: #fff; color: var(--rl-fh-pink);\n    align-items: center; justify-content: center; font-weight: 800;\n  }\n  .rl-fh-compare td.other-col { text-align: center; }\n  .rl-fh-compare td.other-col .x {\n    display: inline-flex; width: 26px; height: 26px; border-radius: 50%;\n    background: #f3f3f3; color: #999;\n    align-items: center; justify-content: center; font-weight: 800;\n  }\n  .rl-fh-compare tr:last-child td.rl-col { border-radius: 0 0 14px 14px; }\n \n  \/* ============ Survey (animated counters) ============ *\/\n  .rl-fh-survey {\n    background: var(--rl-fh-pink-pale);\n    border-radius: 18px;\n    padding: 36px 24px;\n    margin: 0 24px 24px;\n    text-align: center;\n  }\n  .rl-fh-survey h2 {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 30px !important; font-weight: 800 !important;\n    line-height: 1.15 !important; margin-bottom: 12px !important;\n  }\n  .rl-fh-survey h2 em { color: var(--rl-fh-pink); font-style: normal; }\n  .rl-fh-survey \u003e p {\n    font-size: 14px; line-height: 1.55;\n    max-width: 460px; margin: 0 auto 30px;\n  }\n  .rl-fh-survey-grid {\n    display: grid; gap: 26px;\n    max-width: 560px; margin: 0 auto 30px;\n    text-align: left;\n  }\n  .rl-fh-survey-row {\n    display: grid; grid-template-columns: 130px 1fr; gap: 20px; align-items: center;\n  }\n  .rl-fh-survey-num {\n    font-family: 'Manrope', sans-serif;\n    font-size: 56px; font-weight: 800;\n    color: var(--rl-fh-text);\n    line-height: 1; letter-spacing: -0.04em;\n  }\n  .rl-fh-survey-row .body {\n    display: flex; flex-direction: column; gap: 6px;\n  }\n  .rl-fh-survey-row .body strong { font-size: 14px; font-weight: 700; line-height: 1.3; }\n  .rl-fh-survey-row .body span { font-size: 13px; line-height: 1.5; color: var(--rl-fh-text-soft); }\n  .rl-fh-survey-bar {\n    grid-column: 2; height: 4px; background: var(--rl-fh-pink-soft);\n    border-radius: 999px; margin-top: 8px; overflow: hidden;\n  }\n  .rl-fh-survey-bar-fill {\n    height: 100%; background: var(--rl-fh-pink); border-radius: 999px;\n    width: 0; transition: width 1.4s cubic-bezier(.2,.7,.2,1);\n  }\n  .rl-fh-survey-cta {\n    display: inline-flex; align-items: center; gap: 8px;\n    background: #fff; padding: 14px 22px; border-radius: 999px;\n    font-size: 14px; font-weight: 600; border: 1px solid var(--rl-fh-line);\n  }\n  .rl-fh-survey-cta::before { content: \"\\002713 \"; color: var(--rl-fh-pink); font-weight: 800; }\n  .rl-fh-survey-bottom {\n    margin-top: 26px; font-size: 16px; line-height: 1.5; font-weight: 500;\n    max-width: 560px; margin-left: auto; margin-right: auto;\n    text-align: center;\n  }\n  .rl-fh-survey-bottom em { color: var(--rl-fh-pink); font-style: normal; font-weight: 700; }\n \n  \/* ============ Ingredients ============ *\/\n  .rl-fh-ing {\n    padding: 0 24px 32px;\n  }\n  .rl-fh-ing-card {\n    background: var(--rl-fh-cream);\n    border-radius: 18px; padding: 28px 22px;\n  }\n  .rl-fh-ing-img {\n    width: 100%; aspect-ratio: 16\/9;\n    background: linear-gradient(135deg, var(--rl-fh-pink-bg), var(--rl-fh-pink-soft));\n    border-radius: 12px; margin-bottom: 18px;\n    display: flex; align-items: center; justify-content: center;\n    color: var(--rl-fh-pink-deep); font-size: 13px;\n  }\n  .rl-fh-ing-list { }\n  .rl-fh-ing-item {\n    border-top: 1px solid var(--rl-fh-line);\n    padding: 18px 0;\n  }\n  .rl-fh-ing-item:first-child { border-top: none; }\n  .rl-fh-ing-head {\n    display: flex; justify-content: space-between; align-items: center;\n    cursor: pointer;\n  }\n  .rl-fh-ing-name { font-size: 19px; font-weight: 700; }\n  .rl-fh-ing-arrow { font-size: 16px; transition: transform 0.2s; }\n  .rl-fh-ing-item.open .rl-fh-ing-arrow { transform: rotate(180deg); }\n  .rl-fh-ing-tag {\n    display: inline-block;\n    background: var(--rl-fh-pink); color: #fff;\n    padding: 4px 12px; border-radius: 999px;\n    font-size: 11px; font-weight: 600;\n    margin-top: 6px;\n  }\n  .rl-fh-ing-support {\n    font-size: 13px; margin-top: 14px;\n  }\n  .rl-fh-ing-support strong { font-weight: 700; }\n  .rl-fh-ing-body {\n    max-height: 0; overflow: hidden;\n    transition: max-height 0.3s ease;\n    font-size: 13px; line-height: 1.6;\n  }\n  .rl-fh-ing-item.open .rl-fh-ing-body {\n    max-height: 600px; margin-top: 12px;\n  }\n \n  \/* ============ Final CTA ============ *\/\n  .rl-fh-final-cta {\n    display: block !important; width: 100% !important;\n    background: var(--rl-fh-pink, #ec3b8e) !important; color: #fff !important;\n    padding: 18px !important; border: none !important; border-radius: 999px !important;\n    font-size: 14px !important; font-weight: 800 !important;\n    text-transform: uppercase !important; letter-spacing: 0.08em !important;\n    cursor: pointer !important; transition: background 0.15s !important;\n    margin-top: 16px !important;\n    font-family: 'Manrope', sans-serif !important;\n    box-shadow: 0 8px 24px rgba(236,59,142,0.28) !important;\n  }\n  .rl-fh-final-cta:hover { background: var(--rl-fh-pink-deep, #c91e6a) !important; }\n  .rl-fh-final-meta {\n    display: flex; justify-content: center; gap: 30px;\n    font-size: 12px; color: var(--rl-fh-text-soft);\n    padding: 14px 0 28px;\n  }\n \n  \/* ============ Reviews ============ *\/\n  .rl-fh-reviews {\n    padding: 32px 24px;\n  }\n  .rl-fh-reviews-top {\n    display: grid; grid-template-columns: auto 1fr auto; gap: 32px;\n    align-items: center; margin-bottom: 28px;\n    padding-bottom: 28px; border-bottom: 1px solid var(--rl-fh-line);\n  }\n  .rl-fh-reviews-score {\n    text-align: center;\n  }\n  .rl-fh-reviews-score .num {\n    font-family: 'Manrope', sans-serif;\n    font-size: 44px; font-weight: 800; line-height: 1;\n  }\n  .rl-fh-reviews-score .stars {\n    color: #1a1a1a; margin-top: 6px; font-size: 14px;\n  }\n  .rl-fh-reviews-score .count {\n    font-size: 13px; color: var(--rl-fh-text-soft); margin-top: 4px;\n  }\n  .rl-fh-reviews-bars { }\n  .rl-fh-reviews-bar {\n    display: grid; grid-template-columns: 24px 1fr 50px; gap: 8px;\n    align-items: center; margin-bottom: 4px; font-size: 12px;\n  }\n  .rl-fh-reviews-bar .star { color: #1a1a1a; }\n  .rl-fh-reviews-bar .track {\n    height: 8px; background: #f0f0f0; border-radius: 999px; overflow: hidden;\n  }\n  .rl-fh-reviews-bar .fill { height: 100%; background: #1a1a1a; }\n  .rl-fh-reviews-bar .ct { color: var(--rl-fh-text-soft); text-align: right; }\n  .rl-fh-write-btn {\n    background: #1a1a1a !important;\n    color: #fff !important;\n    padding: 12px 22px !important;\n    border-radius: 999px !important;\n    font-size: 13px !important;\n    font-weight: 700 !important;\n    border: none !important;\n    cursor: pointer !important;\n    font-family: 'Manrope', sans-serif !important;\n    letter-spacing: 0.04em !important;\n    transition: background 0.15s, transform 0.15s !important;\n  }\n  .rl-fh-write-btn:hover {\n    background: var(--rl-fh-pink, #ec3b8e) !important;\n    transform: translateY(-1px) !important;\n  }\n \n  .rl-fh-reviews-grid {\n    display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;\n  }\n  .rl-fh-rcard {\n    background: #fff;\n    border: 1px solid var(--rl-fh-line);\n    border-radius: 14px; padding: 18px;\n    display: flex; flex-direction: column; gap: 10px;\n  }\n  .rl-fh-rcard-img {\n    display: flex; align-items: center; gap: 12px;\n    color: var(--rl-fh-pink-deep); font-size: 13px; font-weight: 700;\n    margin-bottom: 4px;\n  }\n  .rl-fh-rcard-img::before {\n    content: attr(data-initial);\n    flex-shrink: 0;\n    width: 44px; height: 44px; border-radius: 50%;\n    background: linear-gradient(135deg, #ec3b8e, #ff6fa8);\n    color: #fff;\n    display: flex; align-items: center; justify-content: center;\n    font-weight: 800; font-size: 18px;\n    box-shadow: 0 4px 10px rgba(236,59,142,0.25);\n  }\n  .rl-fh-rcard-byline {\n    font-weight: 800; font-size: 15px;\n    color: #1a1a1a; letter-spacing: -0.01em;\n  }\n  .rl-fh-rcard-verified {\n    margin-left: auto;\n    font-size: 10px; font-weight: 700;\n    color: #2a8c5e;\n    background: #e7f6ed;\n    padding: 4px 8px; border-radius: 6px;\n    display: inline-flex; align-items: center; gap: 4px;\n    white-space: nowrap;\n  }\n  .rl-fh-rcard-name { font-weight: 700; font-size: 14px; }\n  .rl-fh-rcard-stars { color: #1a1a1a; font-size: 13px; }\n  .rl-fh-rcard-date { font-size: 11px; color: var(--rl-fh-text-soft); }\n  .rl-fh-rcard-text { font-size: 13px; line-height: 1.55; }\n  .rl-fh-rcard-title { font-size: 14px; font-weight: 800; color: var(--rl-fh-text); margin-top: 2px; }\n \n  \/* Review photos *\/\n  .rl-fh-rcard-photos {\n    display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px;\n  }\n  .rl-fh-rcard-photo {\n    width: 64px; height: 64px;\n    border-radius: 8px;\n    object-fit: cover;\n    cursor: pointer;\n    border: 1px solid var(--rl-fh-line);\n    background: var(--rl-fh-pink-pale);\n    transition: transform 0.15s, box-shadow 0.15s;\n    display: block;\n  }\n  .rl-fh-rcard-photo:hover {\n    transform: scale(1.04);\n    box-shadow: 0 6px 14px rgba(236,59,142,0.18);\n  }\n \n  \/* Photo lightbox *\/\n  .rl-fh-lightbox {\n    position: fixed; inset: 0;\n    background: rgba(15,8,12,0.92);\n    display: none;\n    align-items: center; justify-content: center;\n    z-index: 9999;\n    padding: 24px;\n    cursor: zoom-out;\n  }\n  .rl-fh-lightbox.open { display: flex; }\n  .rl-fh-lightbox img {\n    max-width: 92vw; max-height: 88vh;\n    border-radius: 12px;\n    box-shadow: 0 20px 60px rgba(0,0,0,0.6);\n  }\n \n  \/* See More Reviews button *\/\n  .rl-fh-reviews-loadwrap {\n    text-align: center;\n    margin-top: 24px;\n  }\n  .rl-fh-reviews-load {\n    display: inline-flex; align-items: center; gap: 10px;\n    background: #fff;\n    color: var(--rl-fh-text, #1a1a1a);\n    border: 2px solid var(--rl-fh-text, #1a1a1a);\n    padding: 14px 28px;\n    border-radius: 999px;\n    font-family: 'Manrope', sans-serif;\n    font-size: 13px;\n    font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n    cursor: pointer;\n    transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.15s;\n  }\n  .rl-fh-reviews-load:hover {\n    background: var(--rl-fh-pink, #ec3b8e);\n    color: #fff;\n    border-color: var(--rl-fh-pink, #ec3b8e);\n    transform: translateY(-1px);\n  }\n  .rl-fh-reviews-load-count {\n    background: rgba(0,0,0,0.06);\n    padding: 3px 10px;\n    border-radius: 999px;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: 0;\n  }\n  .rl-fh-reviews-load:hover .rl-fh-reviews-load-count {\n    background: rgba(255,255,255,0.22);\n  }\n  .rl-fh-reviews-load[disabled] {\n    opacity: 0.6; cursor: default;\n    background: var(--rl-fh-pink-pale);\n    border-color: var(--rl-fh-line);\n    color: var(--rl-fh-text-soft);\n  }\n  .rl-fh-reviews-load[disabled]:hover {\n    background: var(--rl-fh-pink-pale);\n    color: var(--rl-fh-text-soft);\n    border-color: var(--rl-fh-line);\n    transform: none;\n  }\n \n  \/* ============ Write a Review modal ============ *\/\n  .rl-fh-modal-backdrop {\n    position: fixed; inset: 0;\n    background: rgba(15,8,12,0.6);\n    backdrop-filter: blur(4px);\n    z-index: 10000;\n    opacity: 0; pointer-events: none;\n    transition: opacity 0.25s;\n  }\n  .rl-fh-modal-backdrop.open { opacity: 1; pointer-events: auto; }\n  .rl-fh-modal {\n    position: fixed;\n    top: 50%; left: 50%;\n    transform: translate(-50%, -42%);\n    width: min(92vw, 520px);\n    max-height: 92vh;\n    overflow-y: auto;\n    background: #fff;\n    border-radius: 18px;\n    z-index: 10001;\n    padding: 32px 28px 28px;\n    box-shadow: 0 30px 80px rgba(0,0,0,0.35);\n    opacity: 0; pointer-events: none;\n    transition: opacity 0.25s, transform 0.3s cubic-bezier(.2,.9,.3,1.4);\n    font-family: 'DM Sans', sans-serif;\n  }\n  .rl-fh-modal.open {\n    opacity: 1;\n    pointer-events: auto;\n    transform: translate(-50%, -50%);\n  }\n  .rl-fh-modal-close {\n    position: absolute;\n    top: 12px; right: 14px;\n    width: 36px; height: 36px;\n    border: none; background: transparent;\n    font-size: 28px; line-height: 1;\n    color: var(--rl-fh-text-soft);\n    cursor: pointer;\n    border-radius: 50%;\n    transition: background 0.15s, color 0.15s;\n  }\n  .rl-fh-modal-close:hover {\n    background: var(--rl-fh-pink-pale);\n    color: var(--rl-fh-pink, #ec3b8e);\n  }\n  .rl-fh-modal-head {\n    text-align: center;\n    margin-bottom: 22px;\n  }\n  .rl-fh-modal-eyebrow {\n    font-size: 11px;\n    font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 0.16em;\n    color: var(--rl-fh-pink, #ec3b8e);\n    margin-bottom: 6px;\n  }\n  .rl-fh-modal-title {\n    font-family: 'Manrope', sans-serif;\n    font-size: 24px; font-weight: 800;\n    color: var(--rl-fh-text);\n    line-height: 1.15;\n    letter-spacing: -0.02em;\n    margin: 0 0 6px;\n  }\n  .rl-fh-modal-sub {\n    font-size: 13px;\n    color: var(--rl-fh-text-soft);\n    margin: 0;\n  }\n  .rl-fh-modal-form {\n    display: flex; flex-direction: column; gap: 16px;\n  }\n  .rl-fh-field { display: flex; flex-direction: column; gap: 6px; }\n  .rl-fh-field-label {\n    font-family: 'Manrope', sans-serif;\n    font-size: 12px; font-weight: 700;\n    color: var(--rl-fh-text);\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n  }\n  .rl-fh-field-label .opt {\n    text-transform: none;\n    font-weight: 500;\n    font-size: 11px;\n    color: var(--rl-fh-text-soft);\n    letter-spacing: 0;\n    margin-left: 4px;\n  }\n  .rl-fh-input, .rl-fh-textarea {\n    width: 100%;\n    padding: 14px 16px;\n    font-size: 14px;\n    font-family: 'DM Sans', sans-serif;\n    color: var(--rl-fh-text);\n    background: #fafafa;\n    border: 1.5px solid var(--rl-fh-line);\n    border-radius: 12px;\n    outline: none;\n    transition: border-color 0.15s, background 0.15s;\n  }\n  .rl-fh-input:focus, .rl-fh-textarea:focus {\n    border-color: var(--rl-fh-pink, #ec3b8e);\n    background: #fff;\n  }\n  .rl-fh-textarea { resize: vertical; min-height: 110px; line-height: 1.55; }\n \n  .rl-fh-stars-input {\n    display: flex; gap: 6px;\n    font-size: 30px;\n    color: var(--rl-fh-line);\n    user-select: none;\n    cursor: pointer;\n  }\n  .rl-fh-stars-input span {\n    transition: color 0.15s, transform 0.15s;\n    line-height: 1;\n  }\n  .rl-fh-stars-input span:hover { transform: scale(1.15); }\n  .rl-fh-stars-input span.active { color: var(--rl-fh-pink, #ec3b8e); }\n \n  .rl-fh-photo-drop {\n    display: flex; align-items: center; gap: 14px;\n    padding: 16px 18px;\n    border: 1.5px dashed var(--rl-fh-pink, #ec3b8e);\n    border-radius: 12px;\n    background: var(--rl-fh-pink-pale);\n    cursor: pointer;\n    transition: background 0.15s;\n  }\n  .rl-fh-photo-drop:hover { background: #fde6ee; }\n  .rl-fh-photo-drop-icon { font-size: 26px; }\n  .rl-fh-photo-drop-text { font-size: 13px; color: var(--rl-fh-text); line-height: 1.4; }\n  .rl-fh-photo-drop-text small { color: var(--rl-fh-text-soft); font-size: 11px; }\n  .rl-fh-photo-preview {\n    display: flex; flex-wrap: wrap; gap: 8px;\n    margin-top: 4px;\n  }\n  .rl-fh-photo-preview-item {\n    position: relative;\n    width: 72px; height: 72px;\n    border-radius: 10px;\n    overflow: hidden;\n    border: 1px solid var(--rl-fh-line);\n  }\n  .rl-fh-photo-preview-item img {\n    width: 100%; height: 100%; object-fit: cover; display: block;\n  }\n  .rl-fh-photo-preview-rm {\n    position: absolute;\n    top: 4px; right: 4px;\n    width: 22px; height: 22px;\n    border-radius: 50%;\n    background: rgba(15,8,12,0.7);\n    color: #fff;\n    border: none;\n    font-size: 14px;\n    line-height: 1;\n    cursor: pointer;\n    display: flex; align-items: center; justify-content: center;\n  }\n \n  .rl-fh-modal-submit {\n    background: var(--rl-fh-pink, #ec3b8e);\n    color: #fff;\n    border: none;\n    border-radius: 999px;\n    padding: 16px;\n    font-size: 14px;\n    font-weight: 800;\n    font-family: 'Manrope', sans-serif;\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n    cursor: pointer;\n    transition: background 0.15s, transform 0.15s;\n    box-shadow: 0 8px 22px rgba(236,59,142,0.28);\n    margin-top: 6px;\n  }\n  .rl-fh-modal-submit:hover {\n    background: var(--rl-fh-pink-deep, #c91e6a);\n    transform: translateY(-1px);\n  }\n  .rl-fh-modal-foot {\n    font-size: 11px;\n    color: var(--rl-fh-text-soft);\n    text-align: center;\n    margin: 4px 0 0;\n    line-height: 1.5;\n  }\n \n  .rl-fh-modal-success {\n    text-align: center;\n    padding: 20px 0;\n  }\n  .rl-fh-modal-success-icon {\n    width: 64px; height: 64px;\n    border-radius: 50%;\n    background: linear-gradient(135deg, #36c97a, #1fa15a);\n    color: #fff;\n    display: inline-flex; align-items: center; justify-content: center;\n    font-size: 34px; font-weight: 800;\n    margin-bottom: 16px;\n  }\n  .rl-fh-modal-success h4 {\n    font-family: 'Manrope', sans-serif;\n    font-size: 22px; font-weight: 800;\n    color: var(--rl-fh-text);\n    margin: 0 0 8px;\n  }\n  .rl-fh-modal-success p {\n    font-size: 14px;\n    color: var(--rl-fh-text-soft);\n    margin: 0 0 20px;\n  }\n  .rl-fh-modal-success-close {\n    background: var(--rl-fh-text);\n    color: #fff;\n    border: none;\n    padding: 12px 28px;\n    border-radius: 999px;\n    font-family: 'Manrope', sans-serif;\n    font-size: 12px; font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n    cursor: pointer;\n  }\n \n  \/* ============ FAQ ============ *\/\n  .rl-fh-faq {\n    background: var(--rl-fh-pink-pale);\n    padding: 56px 24px 48px;\n    margin: 0;\n    text-align: center;\n  }\n  .rl-fh-faq h2 {\n    font-family: 'Manrope', sans-serif !important;\n    font-size: 36px !important; font-weight: 800 !important;\n    line-height: 1.1 !important; margin-bottom: 14px !important;\n    color: var(--rl-fh-text);\n    letter-spacing: -0.02em;\n  }\n  .rl-fh-faq h2 em {\n    color: var(--rl-fh-pink); font-style: normal;\n  }\n  .rl-fh-faq-rating {\n    display: inline-flex; align-items: center; gap: 8px;\n    margin: 0 auto 36px;\n    font-size: 14px; color: var(--rl-fh-text);\n    font-weight: 600;\n  }\n  .rl-fh-faq-hearts {\n    color: var(--rl-fh-pink);\n    font-size: 16px; letter-spacing: 1px;\n  }\n  .rl-fh-faq-list {\n    max-width: 760px; margin: 0 auto;\n    text-align: left;\n  }\n  .rl-fh-faq-item {\n    border-bottom: 1px solid rgba(26,26,26,0.12);\n  }\n  .rl-fh-faq-item summary {\n    list-style: none;\n    padding: 22px 4px;\n    cursor: pointer;\n    display: flex; align-items: center; justify-content: space-between;\n    font-size: 17px; font-weight: 700;\n    color: var(--rl-fh-text);\n    font-family: 'Manrope', sans-serif;\n    letter-spacing: -0.01em;\n    transition: color 0.15s;\n  }\n  .rl-fh-faq-item summary::-webkit-details-marker { display: none; }\n  .rl-fh-faq-item summary:hover { color: var(--rl-fh-pink); }\n  .rl-fh-faq-icon {\n    flex-shrink: 0;\n    width: 22px; height: 22px;\n    display: inline-flex; align-items: center; justify-content: center;\n    font-size: 22px; font-weight: 400;\n    color: var(--rl-fh-text);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    line-height: 1;\n  }\n  .rl-fh-faq-item[open] .rl-fh-faq-icon { transform: rotate(45deg); color: var(--rl-fh-pink); }\n  .rl-fh-faq-body {\n    padding: 0 4px 22px;\n    font-size: 14.5px; line-height: 1.65;\n    color: var(--rl-fh-text-soft);\n  }\n  .rl-fh-faq-body strong { color: var(--rl-fh-text); font-weight: 700; }\n  .rl-fh-faq-cta-wrap {\n    max-width: 560px; margin: 36px auto 0;\n  }\n  .rl-fh-faq-cta {\n    display: block !important; width: 100% !important;\n    background: var(--rl-fh-pink, #ec3b8e) !important;\n    color: #fff !important;\n    padding: 20px !important;\n    font-size: 15px !important; font-weight: 800 !important;\n    text-transform: uppercase !important; letter-spacing: 0.1em !important;\n    border-radius: 999px !important; border: none !important;\n    cursor: pointer !important;\n    transition: background 0.15s, transform 0.15s !important;\n    font-family: 'Manrope', sans-serif !important;\n    box-shadow: 0 10px 28px rgba(236,59,142,0.32) !important;\n  }\n  .rl-fh-faq-cta:hover {\n    background: var(--rl-fh-pink-deep, #c91e6a) !important;\n    transform: translateY(-1px) !important;\n  }\n  .rl-fh-faq-meta {\n    display: flex; justify-content: center; align-items: center;\n    gap: 28px;\n    font-size: 13px; color: var(--rl-fh-text);\n    margin-top: 18px;\n    font-weight: 500;\n  }\n  .rl-fh-faq-meta span {\n    display: inline-flex; align-items: center; gap: 6px;\n  }\n  .rl-fh-faq-meta span::before {\n    content: '\\002713 ';\n    color: var(--rl-fh-pink);\n    font-weight: 800;\n  }\n \n  \/* ============ FOOTER ============ *\/\n  .rl-fh-footer {\n    background: var(--rl-fh-pink, #ec3b8e);\n    color: #fff;\n    padding: 56px 32px 40px;\n    margin-top: 0;\n    font-family: 'DM Sans', sans-serif;\n  }\n  .rl-fh-footer-inner {\n    max-width: 1180px; margin: 0 auto;\n  }\n  .rl-fh-footer-top {\n    display: grid;\n    grid-template-columns: 1fr 1.1fr;\n    gap: 48px;\n    align-items: center;\n    padding-bottom: 36px;\n    border-bottom: 1px solid rgba(255,255,255,0.22);\n  }\n  .rl-fh-footer-pitch {\n    font-family: 'Manrope', sans-serif;\n    font-size: 26px; font-weight: 800;\n    line-height: 1.2;\n    letter-spacing: -0.02em;\n    color: #fff;\n  }\n  .rl-fh-footer-pitch span { display: block; opacity: 0.85; font-weight: 600; font-size: 15px; margin-top: 8px; letter-spacing: 0; font-family: 'DM Sans', sans-serif; }\n  .rl-fh-footer-form {\n    display: flex; flex-direction: column; gap: 12px;\n  }\n  .rl-fh-footer-input {\n    width: 100%;\n    padding: 18px 22px;\n    border: 1.5px solid rgba(255,255,255,0.5);\n    border-radius: 999px;\n    background: transparent;\n    color: #fff;\n    font-size: 14px;\n    font-family: 'DM Sans', sans-serif;\n    outline: none;\n    transition: border-color 0.15s;\n  }\n  .rl-fh-footer-input::placeholder { color: rgba(255,255,255,0.85); }\n  .rl-fh-footer-input:focus { border-color: #fff; }\n  .rl-fh-footer-submit {\n    width: 100%;\n    padding: 18px 22px;\n    border-radius: 999px;\n    border: none;\n    background: #fff;\n    color: var(--rl-fh-text, #1a1a1a);\n    font-size: 13px; font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 0.12em;\n    cursor: pointer;\n    font-family: 'Manrope', sans-serif;\n    transition: transform 0.15s, background 0.15s;\n  }\n  .rl-fh-footer-submit:hover { transform: translateY(-1px); background: #fff5fa; }\n  .rl-fh-footer-disclaimer {\n    font-size: 11px; line-height: 1.55;\n    color: rgba(255,255,255,0.78);\n    margin-top: 4px;\n  }\n  .rl-fh-footer-mid {\n    display: grid;\n    grid-template-columns: 1.4fr 1fr 1fr 1fr;\n    gap: 40px;\n    padding: 44px 0 36px;\n    border-bottom: 1px solid rgba(255,255,255,0.22);\n  }\n  .rl-fh-footer-brand-logo {\n    font-family: 'Manrope', sans-serif;\n    font-size: 32px; font-weight: 800;\n    color: #fff;\n    letter-spacing: -0.02em;\n    display: flex; align-items: center; gap: 6px;\n    margin-bottom: 14px;\n  }\n  .rl-fh-footer-brand-logo .b {\n    background: #fff; color: var(--rl-fh-pink, #ec3b8e);\n    width: 32px; height: 32px; border-radius: 50%;\n    display: inline-flex; align-items: center; justify-content: center;\n    font-weight: 800; font-size: 18px;\n    line-height: 1;\n  }\n  .rl-fh-footer-blurb {\n    font-size: 14px; line-height: 1.6;\n    color: rgba(255,255,255,0.92);\n    max-width: 280px;\n    margin-bottom: 18px;\n  }\n  .rl-fh-footer-shop {\n    display: inline-flex; align-items: center; gap: 8px;\n    background: #5a31f4;\n    color: #fff;\n    padding: 10px 16px;\n    border-radius: 999px;\n    font-size: 13px; font-weight: 700;\n    text-decoration: none;\n    transition: opacity 0.15s;\n  }\n  .rl-fh-footer-shop:hover { opacity: 0.9; }\n  .rl-fh-footer-shop::before { content: '\\002661 '; font-size: 16px; }\n  .rl-fh-footer-col h4 {\n    font-family: 'Manrope', sans-serif;\n    font-size: 12px; font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 0.12em;\n    margin-bottom: 18px;\n    color: #fff;\n  }\n  .rl-fh-footer-col ul {\n    list-style: none; padding: 0; margin: 0;\n    display: flex; flex-direction: column; gap: 12px;\n  }\n  .rl-fh-footer-col a {\n    color: #fff;\n    text-decoration: none;\n    font-size: 14px;\n    transition: opacity 0.15s;\n    opacity: 0.92;\n  }\n  .rl-fh-footer-col a:hover { opacity: 1; text-decoration: underline; }\n  .rl-fh-footer-bottom {\n    display: grid;\n    grid-template-columns: auto 1fr;\n    gap: 32px;\n    align-items: end;\n    padding-top: 28px;\n  }\n  .rl-fh-footer-meta {\n    font-size: 12px;\n    color: rgba(255,255,255,0.92);\n    line-height: 1.6;\n  }\n  .rl-fh-footer-meta strong { font-weight: 700; }\n  .rl-fh-footer-fda {\n    border: 1px solid rgba(255,255,255,0.45);\n    border-radius: 10px;\n    padding: 14px 18px;\n    font-size: 11px;\n    line-height: 1.55;\n    color: #fff;\n    max-width: 480px;\n    margin-left: auto;\n  }\n \n  \/* ============ RESPONSIVE ============ *\/\n  @media (max-width: 900px) {\n    .rl-fh-product-wrap {\n      grid-template-columns: 1fr; gap: 24px; padding: 18px;\n    }\n    .rl-fh-gallery-side {\n      position: static; transform: none;\n      flex-direction: row; justify-content: center; gap: 16px;\n      margin-top: 18px;\n    }\n    .rl-fh-feature { width: 92px; }\n    .rl-fh-feature-circle { width: 56px; height: 56px; font-size: 22px; }\n    .rl-fh-feature-label { font-size: 11px; }\n    .rl-fh-gallery { padding: 0; }\n    .rl-fh-product-mock { width: 100%; }\n    .rl-fh-info { padding: 0 18px 24px; }\n    .rl-fh-title { font-size: 30px !important; }\n    .rl-fh-offers { grid-template-columns: 1fr; }\n    .rl-fh-feedback, .rl-fh-doc, .rl-fh-dont, .rl-fh-survey { margin-left: 16px; margin-right: 16px; }\n    .rl-fh-dont-grid { gap: 12px; }\n    .rl-fh-dont-icon { width: 48px; height: 48px; font-size: 18px; }\n    .rl-fh-survey-row { grid-template-columns: 90px 1fr; gap: 14px; }\n    .rl-fh-survey-num { font-size: 44px; }\n    .rl-fh-reviews-top { grid-template-columns: 1fr; gap: 18px; text-align: center; }\n    .rl-fh-reviews-grid { grid-template-columns: 1fr; }\n    .rl-fh-compare h2, .rl-fh-survey h2, .rl-fh-dont h2, .rl-fh-how h2 { font-size: 24px !important; }\n    .rl-fh-compare { padding: 28px 14px; }\n    .rl-fh-compare table { width: 100%; max-width: 100%; }\n    .rl-fh-compare th { padding: 12px 6px; font-size: 11px; }\n    .rl-fh-compare th.rl-col { font-size: 14px; padding: 12px 4px; }\n    .rl-fh-compare th.other { font-size: 10px; line-height: 1.25; }\n    .rl-fh-compare th.other small { font-size: 9px; margin-top: 2px; }\n    .rl-fh-compare td { padding: 11px 6px; font-size: 11.5px; }\n    .rl-fh-compare td.feat { padding-left: 4px; font-size: 12px; line-height: 1.3; }\n    .rl-fh-compare td.rl-col .check,\n    .rl-fh-compare td.other-col .x { width: 22px; height: 22px; font-size: 12px; }\n    .rl-fh-feel-banner { font-size: 11px !important; padding: 12px !important; }\n    .rl-fh-feel-banner span { margin: 0 8px; }\n  }\n \n  @media (max-width: 900px) {\n    .rl-fh-faq { padding: 44px 18px 38px; }\n    .rl-fh-faq h2 { font-size: 28px !important; }\n    .rl-fh-faq-rating { margin-bottom: 28px; font-size: 13px; }\n    .rl-fh-faq-item summary { font-size: 15px; padding: 18px 4px; }\n    .rl-fh-faq-body { font-size: 14px; padding-bottom: 18px; }\n    .rl-fh-footer { padding: 44px 20px 32px; }\n    .rl-fh-footer-top {\n      grid-template-columns: 1fr; gap: 28px;\n      padding-bottom: 28px;\n      text-align: left;\n    }\n    .rl-fh-footer-pitch { font-size: 22px; }\n    .rl-fh-footer-mid {\n      grid-template-columns: 1fr 1fr;\n      gap: 32px 24px;\n      padding: 32px 0 28px;\n    }\n    .rl-fh-footer-mid \u003e .rl-fh-footer-brand { grid-column: 1 \/ -1; }\n    .rl-fh-footer-bottom { grid-template-columns: 1fr; gap: 18px; }\n    .rl-fh-footer-fda { margin-left: 0; max-width: 100%; }\n  }\n  @media (max-width: 480px) {\n    .rl-fh-survey-row { grid-template-columns: 70px 1fr; }\n    .rl-fh-survey-num { font-size: 36px; }\n    .rl-fh-product-mock { width: 100%; }\n    .rl-fh-mock-name { font-size: 14px; padding: 8px 10px; }\n    .rl-fh-feedback, .rl-fh-survey { padding: 22px 18px; }\n    .rl-fh-faq h2 { font-size: 24px !important; }\n    .rl-fh-faq-meta { gap: 18px; font-size: 12px; }\n    .rl-fh-footer-mid { grid-template-columns: 1fr; }\n  }\n \n  \/* ============ MOBILE POLISH (added) ============ *\/\n  \/* Stop horizontal overflow no matter what *\/\n  html, body { overflow-x: hidden; max-width: 100%; }\n  .rl-fh, .rl-fh-footer { max-width: 100%; overflow-x: hidden; }\n  img, svg, video { max-width: 100%; height: auto; }\n \n  \/* Tablet \u0026 small laptop polish *\/\n  @media (max-width: 1024px) {\n    .rl-fh { padding-left: 14px; padding-right: 14px; }\n    .rl-fh-how-sub, .rl-fh-survey-bottom { font-size: 15px; line-height: 1.55; }\n  }\n \n  \/* Phones: side drawer + cart drawer must never exceed viewport *\/\n  @media (max-width: 600px) {\n    .rl-fh-menu { width: 88vw; max-width: 380px; }\n    .rl-fh-cart { width: 92vw; max-width: 400px; }\n    .rl-fh-currency-menu { width: min(220px, 80vw); }\n \n    \/* Header tighter *\/\n    .rl-fh-header { padding: 12px 14px; }\n    .rl-fh-logo { font-size: 18px; }\n    .nav-icons { gap: 10px; }\n    .nav-icons button, .nav-icons a { padding: 6px; }\n \n    \/* Steps + ingredients comfortable padding *\/\n    ul.rl-fh-steps { padding: 0 18px; margin: 24px auto; }\n    .rl-fh-steps li { font-size: 15px; padding-left: 38px; }\n    .rl-fh-steps li::before { width: 26px; height: 26px; font-size: 13px; }\n \n    .rl-fh-ing { padding: 24px 14px; }\n    .rl-fh-ing-card { border-radius: 18px; }\n    .rl-fh-ing-img { height: 220px; }\n    .rl-fh-ing-grid { gap: 14px; }\n \n    \/* Reviews engine *\/\n    .rl-fh-reviews { padding: 28px 14px; }\n    .rl-fh-rcard { padding: 16px; }\n    .rl-fh-rcard-name { font-size: 14px; }\n    .rl-fh-rcard-text { font-size: 13.5px; line-height: 1.55; }\n    .rl-fh-reviews-bar { grid-template-columns: 22px 1fr 44px; gap: 8px; }\n \n    \/* Modals \\002014  reviewer + photo lightbox *\/\n    .rl-fh-modal-card { width: 92vw; max-width: 460px; padding: 22px; max-height: 88vh; }\n    .rl-fh-modal-form { gap: 12px; }\n    .rl-fh-modal-form input, .rl-fh-modal-form textarea { font-size: 16px; } \/* prevents iOS zoom *\/\n    .rl-fh-photo-drop { padding: 14px; }\n \n    \/* Sticky buy bar \/ CTAs full-width feel *\/\n    .rl-fh-cta, .rl-fh-buy-btn, .rl-fh-add-to-cart { width: 100%; font-size: 15px; padding: 14px 18px; }\n \n    \/* Offers: tighter price stack *\/\n    .rl-fh-offer { padding: 14px; min-width: 0; }\n    .rl-fh-offer-info { min-width: 0; overflow: hidden; }\n    .rl-fh-offer-name, .rl-fh-offer-sub { word-break: break-word; }\n    .rl-fh-offer-price { font-size: 18px; flex-wrap: wrap; }\n    .rl-fh-offer-price .now { font-size: 18px; }\n    .rl-fh-offer-price .was { font-size: 12px; }\n \n    \/* Subscription block: prevent right-column overflow *\/\n    .rl-fh-sub-row { padding: 14px; gap: 12px; }\n    .rl-fh-sub-row .left { min-width: 0; flex: 1 1 auto; }\n    .rl-fh-sub-name { font-size: 14px; line-height: 1.3; }\n    .rl-fh-sub-prices { text-align: right; flex-shrink: 0; }\n    .rl-fh-sub-prices .now { font-size: 15px; }\n    .rl-fh-sub-prices .was { font-size: 11px; margin-left: 4px; }\n    .rl-fh-sub-prices .day { font-size: 10px; }\n    .rl-fh-sub-banner { font-size: 12px; padding: 10px 14px; }\n    .rl-fh-sub-perks { padding: 0 14px 14px; }\n    .rl-fh-sub-perks li { font-size: 13px; }\n \n    \/* FAQ *\/\n    .rl-fh-faq-list { padding: 0; }\n    .rl-fh-faq-item summary { font-size: 14.5px; padding: 16px 8px; }\n    .rl-fh-faq-icon { font-size: 22px; }\n \n    \/* Footer email signup wraps cleanly *\/\n    .rl-fh-footer-form { flex-direction: column; align-items: stretch; }\n    .rl-fh-footer-form input { width: 100%; font-size: 16px; }\n    .rl-fh-footer-form button { width: 100%; }\n    .rl-fh-footer-mid { gap: 24px 18px; }\n  }\n \n  \/* Small phones (iPhone SE, older Androids) *\/\n  @media (max-width: 380px) {\n    .rl-fh-title { font-size: 26px !important; }\n    .rl-fh-info { padding: 0 14px 22px; }\n    .rl-fh-product-mock { width: 100%; }\n    .rl-fh-feature { width: 80px; }\n    .rl-fh-feature-circle { width: 48px; height: 48px; font-size: 18px; }\n    .rl-fh-feature-label { font-size: 10px; }\n    .rl-fh-faq h2 { font-size: 22px !important; }\n    .rl-fh-compare th { font-size: 10px; padding: 10px 4px; }\n    .rl-fh-compare td { font-size: 11px; padding: 9px 4px; }\n    .rl-fh-compare th.other { font-size: 9px; }\n    .rl-fh-rcard { padding: 14px; }\n    .rl-fh-survey-row { grid-template-columns: 60px 1fr; gap: 10px; }\n    .rl-fh-survey-num { font-size: 30px; }\n  }\n\u003c\/style\u003e\n \n \n\u003c!-- No-JS \/ script-stripped fallback: page renders fully even if observer never fires --\u003e\n\u003cnoscript\u003e\u003cstyle\u003e.rl-fh-reveal,.rl-fh-drop-in,.rl-fh-stagger,.rl-fh-stagger\u003e*,ul.rl-fh-steps\u003eli,.rl-fh-rcard,.rl-fh-ing-item,.rl-fh-survey-row{opacity:1 !important;transform:none !important;filter:none !important;}\u003c\/style\u003e\u003c\/noscript\u003e\n \n\u003c!-- Side menu drawer --\u003e\n\u003cdiv class=\"rl-fh-menu-backdrop\" id=\"rlFhMenuBackdrop\"\u003e\u003c\/div\u003e\n\u003caside class=\"rl-fh-menu\" id=\"rlFhMenu\" aria-hidden=\"true\" role=\"dialog\" aria-label=\"Site menu\"\u003e\n  \u003cdiv class=\"rl-fh-menu-head\"\u003e\n    \u003cdiv class=\"rl-fh-menu-logo\"\u003e\n\u003cspan class=\"b\"\u003er\u003c\/span\u003ereforminglabs\u003c\/div\u003e\n    \u003cbutton type=\"button\" class=\"rl-fh-menu-close\" id=\"rlFhMenuClose\" aria-label=\"Close menu\"\u003e×\u003c\/button\u003e\n  \u003c\/div\u003e\n \n  \u003cnav class=\"rl-fh-menu-nav\"\u003e\n    \u003ca href=\"#rlFhBuy\" class=\"rl-fh-menu-link\" data-action=\"scroll-buy\"\u003eTry Now\u003c\/a\u003e\n    \u003ca href=\"mailto:support@reforminglabs.com?subject=Smooth%2B%20Inquiry\" class=\"rl-fh-menu-link\"\u003eContact Us\u003c\/a\u003e\n  \u003c\/nav\u003e\n \n  \u003cdiv class=\"rl-fh-menu-cta-wrap\"\u003e\n    \u003cbutton type=\"button\" class=\"rl-fh-menu-cta\" data-action=\"scroll-buy\"\u003eSHOP NOW\u003c\/button\u003e\n  \u003c\/div\u003e\n \n  \u003cdiv class=\"rl-fh-menu-foot\"\u003e\n    \u003cdiv class=\"rl-fh-currency\" id=\"rlFhCurrency\"\u003e\n      \u003cbutton type=\"button\" class=\"rl-fh-currency-btn\" id=\"rlFhCurrencyBtn\" aria-label=\"Change currency\"\u003e\n        \u003cspan class=\"rl-fh-currency-flag\" id=\"rlFhCurrencyFlag\"\u003e🇺🇸\u003c\/span\u003e\n        \u003cspan class=\"rl-fh-currency-code\" id=\"rlFhCurrencyCode\"\u003eUSD $\u003c\/span\u003e\n        \u003cspan class=\"rl-fh-currency-arrow\"\u003e▾\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"rl-fh-currency-menu\" id=\"rlFhCurrencyMenu\" hidden\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/aside\u003e\n \n\u003c!-- Cart slider backdrop + drawer --\u003e\n\u003cdiv class=\"rl-fh-cart-backdrop\" id=\"rlFhCartBackdrop\"\u003e\u003c\/div\u003e\n\u003caside class=\"rl-fh-cart\" id=\"rlFhCart\" aria-hidden=\"true\" role=\"dialog\" aria-label=\"Shopping cart\"\u003e\n  \u003cdiv class=\"rl-fh-cart-banner\"\u003e\n    \u003cspan class=\"rl-fh-cart-banner-dot\"\u003e\u003c\/span\u003e\n    Great Choice! We have reserved your order for you.\n  \u003c\/div\u003e\n  \u003cdiv class=\"rl-fh-cart-savings\"\u003e\n    \u003cspan class=\"rl-fh-cart-savings-mark\"\u003e○\u003c\/span\u003e\n    You're saving \u003cstrong id=\"rlFhCartSavings\"\u003e$20.00\u003c\/strong\u003e on your order\n  \u003c\/div\u003e\n \n  \u003cdiv class=\"rl-fh-cart-head\"\u003e\n    \u003cdiv class=\"rl-fh-cart-title\"\u003e\n      Cart \u003cspan class=\"rl-fh-cart-count\" id=\"rlFhCartCount\"\u003e1\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cbutton type=\"button\" class=\"rl-fh-cart-close\" id=\"rlFhCartClose\" aria-label=\"Close cart\"\u003e×\u003c\/button\u003e\n  \u003c\/div\u003e\n \n  \u003cdiv class=\"rl-fh-cart-ship\"\u003e\n    \u003cdiv class=\"rl-fh-cart-ship-text\"\u003eYou are eligible for free shipping.\u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-cart-ship-bar\"\u003e\u003cdiv class=\"rl-fh-cart-ship-fill\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n \n  \u003cdiv class=\"rl-fh-cart-body\"\u003e\n    \u003cdiv id=\"rlFhCartLines\"\u003e\n      \u003cdiv class=\"rl-fh-cart-empty\"\u003eYour cart is empty.\u003cbr\u003e\u003cspan\u003eAdd a product to get started.\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n \n  \u003cdiv class=\"rl-fh-cart-foot\"\u003e\n    \u003cdiv class=\"rl-fh-cart-row\"\u003e\n      \u003cspan\u003eDiscounts\u003c\/span\u003e\n      \u003cspan class=\"rl-fh-cart-discount\"\u003e- \u003cspan class=\"rl-fh-price\" id=\"rlFhCartDiscount\" data-usd=\"94.98\"\u003e$94.98\u003c\/span\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003c!-- Shipping protection toggle - hidden for now (direct checkout links don't support add-ons).\n         Re-enable by removing display:none if\/when you wire it through Shopify cart. --\u003e\n    \u003clabel class=\"rl-fh-cart-protect\" for=\"rlFhProtectToggle\" style=\"display:none;\"\u003e\n      \u003cinput type=\"checkbox\" id=\"rlFhProtectToggle\"\u003e\n    \u003c\/label\u003e\n \n    \u003cdiv class=\"rl-fh-cart-row total\"\u003e\n      \u003cspan\u003eTotal\u003c\/span\u003e\n      \u003cspan\u003e\u003cspan class=\"rl-fh-price\" id=\"rlFhCartTotal\" data-usd=\"74.99\"\u003e$74.99\u003c\/span\u003e \u003cspan class=\"rl-fh-cart-ccy\" id=\"rlFhCartCcy\"\u003eUSD\u003c\/span\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cbutton type=\"button\" class=\"rl-fh-cart-checkout\" id=\"rlFhCheckoutBtn\"\u003eCHECKOUT\u003c\/button\u003e\n    \u003cdiv class=\"rl-fh-cart-pays\"\u003e\n      \u003cspan\u003eKlarna\u003c\/span\u003e\u003cspan\u003eAMEX\u003c\/span\u003e\u003cspan\u003ePay\u003c\/span\u003e\u003cspan\u003eGPay\u003c\/span\u003e\u003cspan\u003eiD\u003c\/span\u003e\u003cspan\u003eMaestro\u003c\/span\u003e\u003cspan\u003eMaster\u003c\/span\u003e\u003cspan\u003ePayPal\u003c\/span\u003e\u003cspan\u003eShop\u003c\/span\u003e\u003cspan\u003eUnionPay\u003c\/span\u003e\u003cspan\u003eVISA\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/aside\u003e\n \n\u003c!-- Write a Review modal --\u003e\n\u003cdiv class=\"rl-fh-modal-backdrop\" id=\"rlFhReviewBackdrop\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"rl-fh-modal\" id=\"rlFhReviewModal\" aria-hidden=\"true\" role=\"dialog\" aria-label=\"Write a review\"\u003e\n  \u003cbutton type=\"button\" class=\"rl-fh-modal-close\" id=\"rlFhReviewClose\" aria-label=\"Close\"\u003e×\u003c\/button\u003e\n  \u003cdiv class=\"rl-fh-modal-head\"\u003e\n    \u003cdiv class=\"rl-fh-modal-eyebrow\"\u003eHormone Balance+ Gummies\u003c\/div\u003e\n    \u003ch3 class=\"rl-fh-modal-title\"\u003eShare your experience\u003c\/h3\u003e\n    \u003cp class=\"rl-fh-modal-sub\"\u003eHelp other women decide. Honest reviews only.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cform class=\"rl-fh-modal-form\" id=\"rlFhReviewForm\" novalidate\u003e\n    \u003cdiv class=\"rl-fh-field\"\u003e\n      \u003clabel class=\"rl-fh-field-label\"\u003eYour rating\u003c\/label\u003e\n      \u003cdiv class=\"rl-fh-stars-input\" id=\"rlFhStarInput\" data-rating=\"5\"\u003e\n        \u003cspan data-v=\"1\"\u003e★\u003c\/span\u003e\u003cspan data-v=\"2\"\u003e★\u003c\/span\u003e\u003cspan data-v=\"3\"\u003e★\u003c\/span\u003e\u003cspan data-v=\"4\"\u003e★\u003c\/span\u003e\u003cspan data-v=\"5\"\u003e★\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-field\"\u003e\n      \u003clabel class=\"rl-fh-field-label\" for=\"rlFhReviewName\"\u003eYour name\u003c\/label\u003e\n      \u003cinput class=\"rl-fh-input\" type=\"text\" id=\"rlFhReviewName\" placeholder=\"e.g. Hannah D.\" required maxlength=\"40\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-field\"\u003e\n      \u003clabel class=\"rl-fh-field-label\" for=\"rlFhReviewTitle\"\u003eReview title \u003cspan class=\"opt\"\u003e(optional)\u003c\/span\u003e\u003c\/label\u003e\n      \u003cinput class=\"rl-fh-input\" type=\"text\" id=\"rlFhReviewTitle\" placeholder=\"e.g. Finally something that actually works\" maxlength=\"80\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-field\"\u003e\n      \u003clabel class=\"rl-fh-field-label\" for=\"rlFhReviewText\"\u003eYour review\u003c\/label\u003e\n      \u003ctextarea class=\"rl-fh-textarea\" id=\"rlFhReviewText\" placeholder=\"What changed for you? How long did it take? Be specific — it helps other women a lot.\" rows=\"5\" required maxlength=\"1200\"\u003e\u003c\/textarea\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-field\"\u003e\n      \u003clabel class=\"rl-fh-field-label\"\u003eAdd photos \u003cspan class=\"opt\"\u003e(optional, up to 4)\u003c\/span\u003e\u003c\/label\u003e\n      \u003clabel class=\"rl-fh-photo-drop\" for=\"rlFhReviewPhotos\"\u003e\n        \u003cspan class=\"rl-fh-photo-drop-icon\"\u003e📷\u003c\/span\u003e\n        \u003cspan class=\"rl-fh-photo-drop-text\"\u003e\u003cstrong\u003eTap to add photos\u003c\/strong\u003e\u003cbr\u003e\u003csmall\u003eJPG, PNG · max 4 photos\u003c\/small\u003e\u003c\/span\u003e\n        \u003cinput class=\"rl-fh-photo-input\" type=\"file\" id=\"rlFhReviewPhotos\" accept=\"image\/*\" multiple hidden\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"rl-fh-photo-preview\" id=\"rlFhPhotoPreview\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-field\"\u003e\n      \u003clabel class=\"rl-fh-field-label\" for=\"rlFhReviewEmail\"\u003eYour email \u003cspan class=\"opt\"\u003e(kept private)\u003c\/span\u003e\u003c\/label\u003e\n      \u003cinput class=\"rl-fh-input\" type=\"email\" id=\"rlFhReviewEmail\" placeholder=\"you@email.com\" required\u003e\n    \u003c\/div\u003e\n    \u003cbutton type=\"submit\" class=\"rl-fh-modal-submit\" id=\"rlFhReviewSubmit\"\u003eSubmit Review\u003c\/button\u003e\n    \u003cp class=\"rl-fh-modal-foot\"\u003eBy submitting you agree to our review guidelines. Reviews may be moderated before publishing.\u003c\/p\u003e\n  \u003c\/form\u003e\n  \u003cdiv class=\"rl-fh-modal-success\" id=\"rlFhReviewSuccess\" hidden\u003e\n    \u003cdiv class=\"rl-fh-modal-success-icon\"\u003e✓\u003c\/div\u003e\n    \u003ch4\u003eThank you!\u003c\/h4\u003e\n    \u003cp\u003eYour review has been submitted and is now visible below.\u003c\/p\u003e\n    \u003cbutton type=\"button\" class=\"rl-fh-modal-success-close\"\u003eClose\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n \n\u003cdiv class=\"rl-fh\"\u003e\n \n  \u003c!-- Top scrolling shipping banner --\u003e\n  \u003cdiv class=\"rl-fh-ship-banner\"\u003e\n    \u003cdiv class=\"rl-fh-ship-track\"\u003e\n      \u003cspan class=\"rl-fh-ship-msg\"\u003e✓ Free Shipping to the United States\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan\u003e✓ 90-Day Money-Back Guarantee\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan\u003e✓ 100% Natural Formula\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan\u003e✓ Discreet Packaging\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan class=\"rl-fh-ship-msg\"\u003e✓ Free Shipping to the United States\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan\u003e✓ 90-Day Money-Back Guarantee\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan\u003e✓ 100% Natural Formula\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n      \u003cspan\u003e✓ Discreet Packaging\u003c\/span\u003e\u003cspan class=\"dot\"\u003e•\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n \n  \u003c!-- Logo bar --\u003e\n  \u003cdiv class=\"rl-fh-logo-bar\"\u003e\n    \u003cbutton type=\"button\" class=\"menu-icon\" id=\"rlFhMenuOpen\" aria-label=\"Open menu\"\u003e≡\u003c\/button\u003e\n    \u003cdiv class=\"logo\"\u003e\n\u003cspan class=\"b\"\u003er\u003c\/span\u003ereforminglabs\u003c\/div\u003e\n    \u003cdiv class=\"nav-icons\"\u003e\n      \u003cspan class=\"rl-fh-nav-ico\" id=\"rlFhCartOpen\" role=\"button\" tabindex=\"0\" aria-label=\"Open cart\"\u003e🛒\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n \n  \u003c!-- Product hero --\u003e\n  \u003csection class=\"rl-fh-product-wrap\"\u003e\n    \u003c!-- Gallery --\u003e\n    \u003cdiv class=\"rl-fh-reveal\"\u003e\n      \u003cdiv class=\"rl-fh-gallery rl-fh-gallery-noside\"\u003e\n        \u003cdiv class=\"rl-fh-product-mock\" id=\"rlFhProductMock\"\u003e\n          \u003cimg id=\"rlFhMainImg\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H2.png?v=1777334181\" alt=\"Hormone Balance+ Gummies\" loading=\"eager\"\u003e\n        \u003c\/div\u003e\n \n        \u003cdiv class=\"rl-fh-zoom\"\u003e⌕\u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003c!-- Image strip (clickable thumbnail gallery) - sits directly under the main product image --\u003e\n      \u003cdiv class=\"rl-fh-strip rl-fh-strip-hero rl-fh-reveal\" id=\"rlFhStrip\"\u003e\n        \u003cdiv class=\"rl-fh-strip-item active\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H2.png?v=1777334181\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H2.png?v=1777334181\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H3.png?v=1777334181\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H3.png?v=1777334181\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H4.png?v=1777334181\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H4.png?v=1777334181\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H5.png?v=1777334180\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H5.png?v=1777334180\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H6.png?v=1777334181\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H6.png?v=1777334181\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H7.png?v=1777334187\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H7.png?v=1777334187\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H8.png?v=1777334180\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H8.png?v=1777334180\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-strip-item\" data-img=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H10.png?v=1777334180\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H10.png?v=1777334180\" alt=\"Hormone Balance+ Gummies\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003c!-- Info --\u003e\n    \u003cdiv class=\"rl-fh-info rl-fh-reveal delay-1\" id=\"rlFhBuy\"\u003e\n      \u003cdiv class=\"rl-fh-stars-row\"\u003e\n        \u003cspan class=\"rl-fh-stars\"\u003e★★★★★\u003c\/span\u003e\n        \u003cspan\u003e5,000+ reviews\u003c\/span\u003e\n      \u003c\/div\u003e\n \n      \u003ch1 class=\"rl-fh-title\"\u003eHormone Balance+ \u003cem\u003eGummies\u003c\/em\u003e\n\u003c\/h1\u003e\n      \u003cp class=\"rl-fh-subtitle\"\u003eDaily facial hair suppressor for finer, lighter, slower regrowth — without painful waxing or harsh chemicals.\u003c\/p\u003e\n \n      \u003cul class=\"rl-fh-checks\"\u003e\n        \u003cli\u003eReduces unwanted facial hair growth at the root cause\u003c\/li\u003e\n        \u003cli\u003eTasty daily gummy (strawberry) — no creams, no waxing\u003c\/li\u003e\n        \u003cli\u003eBrings back smooth, confident skin you can feel\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003ca href=\"#ingredients\" class=\"rl-fh-supp-link\"\u003eSupplement facts\u003c\/a\u003e\n \n      \u003cdiv class=\"rl-fh-lto\"\u003e\n\u003cstrong\u003eLimited Time Offer\u003c\/strong\u003e Buy 2 \u0026amp; Get 1 Month Free!\u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-choose\"\u003eChoose Your Offer\u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-offers\"\u003e\n        \u003cdiv class=\"rl-fh-offer active\" data-offer=\"2\"\u003e\n          \u003cdiv class=\"rl-fh-offer-thumb\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H13.png?v=1777336644\" alt=\"2 bottles of Hormone Balance+\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-offer-info\"\u003e\n            \u003cspan class=\"rl-fh-offer-tag alt\"\u003eBest Value\u003c\/span\u003e\n            \u003cdiv class=\"rl-fh-offer-name\"\u003eBuy 2 Get 1 Free\u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-offer-sub\"\u003e90 Day Supply\u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-offer-price\"\u003e\n              \u003cspan class=\"now rl-fh-price\" data-usd=\"99.99\"\u003e$99.99\u003c\/span\u003e\n              \u003cspan class=\"was rl-fh-price\" data-usd=\"164.97\"\u003e$164.97\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-offer\" data-offer=\"1\"\u003e\n          \u003cdiv class=\"rl-fh-offer-thumb\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H1.png?v=1777334180\" alt=\"1 bottle of Hormone Balance+\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-offer-info\"\u003e\n            \u003cspan class=\"rl-fh-offer-tag\"\u003eMost Popular\u003c\/span\u003e\n            \u003cdiv class=\"rl-fh-offer-name\"\u003eBuy 1\u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-offer-sub\"\u003e30 Day Supply\u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-offer-price\"\u003e\n              \u003cspan class=\"now rl-fh-price\" data-usd=\"49.99\"\u003e$49.99\u003c\/span\u003e\n              \u003cspan class=\"was rl-fh-price\" data-usd=\"54.99\"\u003e$54.99\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-sub-block\"\u003e\n        \u003cdiv class=\"rl-fh-sub-banner\"\u003eLimited Time Discount Auto-Applied\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-sub-row rl-fh-sub-active\" id=\"rlFhSubRow\"\u003e\n          \u003cdiv class=\"left\"\u003e\n            \u003cdiv class=\"rl-fh-sub-radio\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-sub-name\"\u003eAuto Refill \u0026amp; Save 20%\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-sub-prices\"\u003e\n            \u003cspan class=\"now rl-fh-price\" id=\"rlFhPriceNow\" data-usd=\"69.99\"\u003e$69.99\u003c\/span\u003e\n            \u003cspan class=\"was rl-fh-price\" id=\"rlFhPriceWas\" data-usd=\"164.97\"\u003e$164.97\u003c\/span\u003e\n            \u003cspan class=\"day rl-fh-price\" id=\"rlFhPriceDay\" data-usd=\"0.77\" data-suffix=\"\/day\"\u003e$0.77\/day\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cul class=\"rl-fh-sub-perks\"\u003e\n          \u003cli\u003eFree shipping on all orders\u003c\/li\u003e\n          \u003cli\u003ePause or cancel anytime\u003c\/li\u003e\n          \u003cli\u003e90-day money back guarantee\u003c\/li\u003e\n          \u003cli\u003eFree Smooth Skin Routine E-book\u003c\/li\u003e\n          \u003cli\u003e20% OFF all future shipments\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-onetime\" id=\"rlFhOnetime\"\u003e\n        \u003cdiv class=\"left\"\u003e\n          \u003cdiv class=\"radio\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-onetime-name\"\u003eOne time purchase\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-sub-prices\"\u003e\n          \u003cspan class=\"now rl-fh-price\" data-usd=\"49.99\"\u003e$49.99\u003c\/span\u003e\n          \u003cspan class=\"was rl-fh-price\" data-usd=\"54.99\"\u003e$54.99\u003c\/span\u003e\n          \u003cspan class=\"day rl-fh-price\" data-usd=\"1.66\" data-suffix=\"\/day\"\u003e$1.66\/day\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-stock\"\u003e\n        \u003cdiv class=\"rl-fh-stock-dot\"\u003e\u003c\/div\u003e\n        \u003cdiv\u003e\n\u003cstrong\u003eUPDATE:\u003c\/strong\u003e Due to our 2+1 Sale stock is limited. Offer is valid while stock lasts.\u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cbutton class=\"rl-fh-atc\"\u003eAdd To Cart\u003c\/button\u003e\n \n      \u003cdiv class=\"rl-fh-atc-meta\"\u003e\n        \u003cspan class=\"green\"\u003eShips today\u003c\/span\u003e\n        \u003cspan id=\"rlFhShipCountry\"\u003e🌎 Free shipping to the United States\u003c\/span\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-rating-row\"\u003e\n        \u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\n        10,000+ Happy Customers\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-vidstrip rl-fh-reveal delay-2\" id=\"rlFhVidstrip\"\u003e\n        \u003cdiv class=\"rl-fh-vidstrip-card\" data-vid=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/26bcfa6ccabe402e843808854b9bf88b.mp4\"\u003e\n          \u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/26bcfa6ccabe402e843808854b9bf88b.mp4\" autoplay muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\n          \u003cdiv class=\"rl-fh-vidstrip-play\"\u003e▶\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-vidstrip-card\" data-vid=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/158d231d94b34ce6b548647056b293e0.mp4\"\u003e\n          \u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/158d231d94b34ce6b548647056b293e0.mp4\" autoplay muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\n          \u003cdiv class=\"rl-fh-vidstrip-play\"\u003e▶\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-vidstrip-card\" data-vid=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/787dcfbb10d94e678df29771cacec303.mp4\"\u003e\n          \u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/787dcfbb10d94e678df29771cacec303.mp4\" autoplay muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\n          \u003cdiv class=\"rl-fh-vidstrip-play\"\u003e▶\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-vidstrip-card\" data-vid=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/b70fe15baeaf418f95845003b8aa599e.mp4\"\u003e\n          \u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/b70fe15baeaf418f95845003b8aa599e.mp4\" autoplay muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\n          \u003cdiv class=\"rl-fh-vidstrip-play\"\u003e▶\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-vidstrip-card\" data-vid=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/2a7529d24b9941b8ad91c095e6a0c92c.mp4\"\u003e\n          \u003cvideo src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/2a7529d24b9941b8ad91c095e6a0c92c.mp4\" autoplay muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\n          \u003cdiv class=\"rl-fh-vidstrip-play\"\u003e▶\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-acc\"\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eProduct Details\u003c\/summary\u003e\n          \u003cdiv class=\"rl-fh-acc-body\"\u003e\n            \u003cp\u003eHormone Balance+ Gummies are a daily women's facial hair suppressor formulated with clinically-studied botanicals — Spearmint, Saw Palmetto, DIM, and Vitex — to support healthy androgen balance from within. Each strawberry gummy is gluten-free, vegan, and free from synthetic hormones. Take 2 daily for visible results in 6–8 weeks.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eDiscreet Shipping\u003c\/summary\u003e\n          \u003cdiv class=\"rl-fh-acc-body\"\u003e\n            \u003cp\u003eAll orders ship in plain, unbranded packaging with no product details printed outside. Tracking is provided. Most US orders arrive in 4–7 business days; international 8–14 business days.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eReturn \u0026amp; Refund Policy\u003c\/summary\u003e\n          \u003cdiv class=\"rl-fh-acc-body\"\u003e\n            \u003cp\u003eIf Hormone Balance+ doesn't work for you, you have 90 days to return it for a full refund — no questions asked. Just email \u003cstrong\u003esupport@reforminglabs.com\u003c\/strong\u003e within 90 days of delivery.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- Feel difference banner --\u003e\n  \u003cdiv class=\"rl-fh-feel-banner\"\u003e\n    FEEL THE DIFFERENCE, OR FULL REFUND. \u003cspan\u003e•\u003c\/span\u003e NO QUESTIONS ASKED.\n  \u003c\/div\u003e\n \n  \u003c!-- Feedback bars --\u003e\n  \u003csection class=\"rl-fh-feedback rl-fh-reveal\"\u003e\n    \u003ch2 class=\"rl-fh-feedback-title\"\u003eFeedback from the ReformingLabs Community\u003c\/h2\u003e\n    \u003cdiv class=\"rl-fh-fb-item\"\u003e\n      \u003cdiv class=\"rl-fh-fb-label\"\u003eDaily Impact \u0026amp; Wellbeing\u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-fb-bar\"\u003e\u003cdiv class=\"rl-fh-fb-fill\" data-fill=\"93\" style=\"width:93%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-fb-ends\"\u003e\n\u003cspan\u003ePoor\u003c\/span\u003e\u003cspan\u003eExcellent\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-fb-item\"\u003e\n      \u003cdiv class=\"rl-fh-fb-label\"\u003eTaste \u0026amp; Flavor\u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-fb-bar\"\u003e\u003cdiv class=\"rl-fh-fb-fill\" data-fill=\"86\" style=\"width:86%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-fb-ends\"\u003e\n\u003cspan\u003ePoor\u003c\/span\u003e\u003cspan\u003eExcellent\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rl-fh-fb-item\"\u003e\n      \u003cdiv class=\"rl-fh-fb-label\"\u003eConvenience \u0026amp; Everyday Use\u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-fb-bar\"\u003e\u003cdiv class=\"rl-fh-fb-fill\" data-fill=\"96\" style=\"width:96%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-fb-ends\"\u003e\n\u003cspan\u003ePoor\u003c\/span\u003e\u003cspan\u003eExcellent\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- Doctor quote --\u003e\n  \u003csection class=\"rl-fh-doc rl-fh-reveal\"\u003e\n    \u003cdiv class=\"rl-fh-doc-avatar\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/lady_doctor_png.avif?v=1777336614\" alt=\"Dr. Elena Rivera, ND\" loading=\"lazy\"\u003e\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cp\u003e\"Most women I see come to me embarrassed about facial hair — and almost always, it's hormonal. Hormone Balance+ supports the foundation: androgen balance, gut health, and stress recovery. With consistent use, the body simply stops over-producing where it shouldn't. It's a gentle, real, science-backed step.\"\u003c\/p\u003e\n      \u003cdiv class=\"name\"\u003eDr. Elena Rivera, ND\u003c\/div\u003e\n      \u003cdiv class=\"title\"\u003eNaturopathic Doctor\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- We don't do --\u003e\n  \u003csection class=\"rl-fh-dont rl-fh-reveal\"\u003e\n    \u003ch2\u003eWe don't do\u003cem\u003e...\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp\u003eYour body isn't a trend. So Hormone Balance+ keeps it clean, gentle, and intentionally made — only what supports you, nothing extra.\u003c\/p\u003e\n    \u003cdiv class=\"rl-fh-dont-grid\"\u003e\n      \u003cdiv class=\"rl-fh-dont-item\"\u003e\n        \u003cdiv class=\"rl-fh-dont-icon\"\u003e💉\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-dont-label\"\u003eNo Hormones\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-dont-item\"\u003e\n        \u003cdiv class=\"rl-fh-dont-icon\"\u003e⚗\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-dont-label\"\u003eNo Additives\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-dont-item\"\u003e\n        \u003cdiv class=\"rl-fh-dont-icon\"\u003e⚡\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-dont-label\"\u003eNo Stimulants\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-dont-item\"\u003e\n        \u003cdiv class=\"rl-fh-dont-icon\"\u003e⚙\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-dont-label\"\u003eNo Fillers\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- How it works --\u003e\n  \u003csection class=\"rl-fh-how rl-fh-reveal\"\u003e\n    \u003ch2\u003eHere's how it \u003cem\u003eworks\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"rl-fh-how-sub\"\u003eHormone Balance+ Gummies are designed to support women's androgen balance, hormonal wellbeing, and skin clarity. A simple daily ritual that fits real life and supports consistent results over 6–8 weeks.\u003c\/p\u003e\n    \u003cdiv class=\"rl-fh-how-img\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H9.png?v=1777334180\" alt=\"Hormone Balance+ daily ritual\" loading=\"lazy\" style=\"width:100%;height:auto;display:block;\"\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- Steps - premium per-row reveal, Bloomin-style --\u003e\n  \u003cdiv class=\"rl-fh-stepsv2 rl-fh-stagger rl-fh-reveal\" id=\"rlFhStepsV2\"\u003e\n    \u003cdiv class=\"rl-fh-stepv2-row\"\u003e\n      \u003cspan class=\"rl-fh-stepv2-bar\"\u003e\u003c\/span\u003e\n      \u003cdiv class=\"rl-fh-stepv2-content\"\u003e\n        \u003ch3 class=\"rl-fh-stepv2-title\"\u003eWe start by supporting your hormonal foundation\u003c\/h3\u003e\n        \u003cp class=\"rl-fh-stepv2-body\"\u003eHormone Balance+ combines Spearmint, Saw Palmetto, DIM, Vitex, and Zinc + B6 — clinically-studied botanicals traditionally used for women's androgen balance. This daily support lays the groundwork for calmer skin, finer regrowth, and real long-term confidence.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-stepv2-row\"\u003e\n      \u003cspan class=\"rl-fh-stepv2-bar\"\u003e\u003c\/span\u003e\n      \u003cdiv class=\"rl-fh-stepv2-content\"\u003e\n        \u003ch3 class=\"rl-fh-stepv2-title\"\u003eThen we address why razors and wax keep failing\u003c\/h3\u003e\n        \u003cp class=\"rl-fh-stepv2-body\"\u003eSurface treatments don't touch the hormonal driver behind unwanted facial hair. Hormone Balance+ works at the source by supporting healthy androgen activity — so you stop fighting the same regrowth every week.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-stepv2-row\"\u003e\n      \u003cspan class=\"rl-fh-stepv2-bar\"\u003e\u003c\/span\u003e\n      \u003cdiv class=\"rl-fh-stepv2-content\"\u003e\n        \u003ch3 class=\"rl-fh-stepv2-title\"\u003eYour skin becomes more consistent\u003c\/h3\u003e\n        \u003cp class=\"rl-fh-stepv2-body\"\u003eAs your hormonal balance steadies, you'll notice fewer breakouts, less irritation, and skin that finally feels even. The same actives that support hair reduction help your skin clear from the inside out.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-stepv2-row\"\u003e\n      \u003cspan class=\"rl-fh-stepv2-bar\"\u003e\u003c\/span\u003e\n      \u003cdiv class=\"rl-fh-stepv2-content\"\u003e\n        \u003ch3 class=\"rl-fh-stepv2-title\"\u003eHair grows finer, lighter, slower on its own\u003c\/h3\u003e\n        \u003cp class=\"rl-fh-stepv2-body\"\u003eMost women see visibly slower regrowth and softer texture within 3 to 6 weeks of daily use. By 8 to 12 weeks, the difference compounds — less density, less coarseness, less time spent thinking about it.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-stepv2-row\"\u003e\n      \u003cspan class=\"rl-fh-stepv2-bar\"\u003e\u003c\/span\u003e\n      \u003cdiv class=\"rl-fh-stepv2-content\"\u003e\n        \u003ch3 class=\"rl-fh-stepv2-title\"\u003eYour daily ritual reinforces real results\u003c\/h3\u003e\n        \u003cp class=\"rl-fh-stepv2-body\"\u003eTwo strawberry gummies a day. That's it. No prescriptions, no painful appointments, no constant maintenance. Just one small habit that quietly transforms how you feel about your skin and yourself.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n \n  \u003c!-- Comparison --\u003e\n  \u003csection class=\"rl-fh-compare rl-fh-reveal\"\u003e\n    \u003ch2\u003eHormone Balance+ \u003cem\u003eGummies\u003c\/em\u003e vs The Usual Options\u003c\/h2\u003e\n    \u003cp\u003eMost women rely on razors, wax, or laser — all temporary, painful, or expensive. Hormone Balance+ addresses the root cause: hormonal imbalance driving regrowth.\u003c\/p\u003e\n    \u003ctable\u003e\n      \u003ccolgroup\u003e\n        \u003ccol class=\"col-feat\"\u003e\n        \u003ccol class=\"col-rl\"\u003e\n        \u003ccol class=\"col-other\"\u003e\n      \u003c\/colgroup\u003e\n      \u003cthead\u003e\n        \u003ctr\u003e\n          \u003cth\u003e\u003c\/th\u003e\n          \u003cth class=\"rl-col\"\u003eHormone Balance+\u003c\/th\u003e\n          \u003cth class=\"other\"\u003eOther\u003cbr\u003eHair Removal\u003cbr\u003e\u003csmall\u003eFrom \u003cspan class=\"rl-fh-price\" data-usd=\"80\"\u003e$80\u003c\/span\u003e per session\u003c\/small\u003e\n\u003c\/th\u003e\n        \u003c\/tr\u003e\n      \u003c\/thead\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003eDoesn't damage skin\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003eAddresses the root cause\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003eHormone-free formula\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003eTransparent ingredient list\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003eNo fillers or additives\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003eWorks without painful waxing\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feat\"\u003e90-day money back guarantee\u003c\/td\u003e\n\u003ctd class=\"rl-col\"\u003e\u003cspan class=\"check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"other-col\"\u003e\u003cspan class=\"x\"\u003e✕\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- Survey with animated counters --\u003e\n  \u003csection class=\"rl-fh-survey rl-fh-reveal\" id=\"rlFhSurvey\"\u003e\n    \u003ch2\u003eWhat women told us in \u003cem\u003eour survey\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp\u003eFormulated with botanical actives to support balance, clarity, and consistency over time.\u003c\/p\u003e\n \n    \u003cdiv class=\"rl-fh-survey-grid\"\u003e\n      \u003cdiv class=\"rl-fh-survey-row\"\u003e\n        \u003cdiv class=\"rl-fh-survey-num\" data-target=\"92\"\u003e92%\u003c\/div\u003e\n        \u003cdiv class=\"body\"\u003e\n          \u003cstrong\u003ereported visible reduction in facial hair density within 8 weeks\u003c\/strong\u003e\n          \u003cspan\u003eIn a 60-day post-purchase survey, customers shared they noticed finer, lighter regrowth around the chin, lip, and jawline.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-survey-bar\"\u003e\u003cdiv class=\"rl-fh-survey-bar-fill\" data-fill=\"92\" style=\"width:92%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-survey-row\"\u003e\n        \u003cdiv class=\"rl-fh-survey-num\" data-target=\"87\"\u003e87%\u003c\/div\u003e\n        \u003cdiv class=\"body\"\u003e\n          \u003cstrong\u003ereported skin felt clearer and less irritated than after waxing or shaving\u003c\/strong\u003e\n          \u003cspan\u003eMany said they finally stopped dealing with razor bumps, redness, and ingrown hairs.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-survey-bar\"\u003e\u003cdiv class=\"rl-fh-survey-bar-fill\" data-fill=\"87\" style=\"width:87%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-survey-row\"\u003e\n        \u003cdiv class=\"rl-fh-survey-num\" data-target=\"94\"\u003e94%\u003c\/div\u003e\n        \u003cdiv class=\"body\"\u003e\n          \u003cstrong\u003ereported feeling more confident bare-faced and unfiltered\u003c\/strong\u003e\n          \u003cspan\u003eCustomers said the daily gummy routine helped them feel more comfortable in their own skin without makeup or heavy filters.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-survey-bar\"\u003e\u003cdiv class=\"rl-fh-survey-bar-fill\" data-fill=\"94\" style=\"width:94%\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003ca href=\"#ingredients\" class=\"rl-fh-survey-cta\"\u003eBacked by Science: View Ingredients\u003c\/a\u003e\n \n    \u003cp class=\"rl-fh-survey-bottom\"\u003eIn our survey, \u003cem\u003e89% said unwanted facial hair\u003c\/em\u003e was destroying their confidence and how they showed up in the world. Hormone Balance+ doesn't just suppress hair — it brings you back to yourself.\u003c\/p\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- Ingredients --\u003e\n  \u003csection class=\"rl-fh-ing rl-fh-reveal\" id=\"ingredients\"\u003e\n    \u003cdiv class=\"rl-fh-ing-card rl-fh-drop-in\"\u003e\n      \u003cdiv class=\"rl-fh-ing-img\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H12.png?v=1777336645\" alt=\"Hormone Balance+ active ingredients\" loading=\"lazy\" style=\"width:100%;height:100%;object-fit:cover;display:block;\"\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-ing-list\"\u003e\n        \u003cdiv class=\"rl-fh-ing-item\"\u003e\n          \u003cdiv class=\"rl-fh-ing-head\"\u003e\n            \u003cdiv\u003e\n              \u003cdiv class=\"rl-fh-ing-name\"\u003eSpearmint Extract\u003c\/div\u003e\n              \u003cspan class=\"rl-fh-ing-tag\"\u003eMentha spicata\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-ing-arrow\"\u003e▾\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-support\"\u003e\n\u003cstrong\u003eUsed to support\u003c\/strong\u003e : Androgen Balance \u0026amp; Skin Clarity\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-body\"\u003e\n            \u003cp style=\"margin-top:14px;\"\u003eSpearmint is the most clinically-studied botanical for women's androgen balance. Daily intake has been shown to reduce free testosterone activity, helping to slow unwanted facial hair regrowth at its hormonal source. 200 mg per serving.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n \n        \u003cdiv class=\"rl-fh-ing-item\"\u003e\n          \u003cdiv class=\"rl-fh-ing-head\"\u003e\n            \u003cdiv\u003e\n              \u003cdiv class=\"rl-fh-ing-name\"\u003eSaw Palmetto\u003c\/div\u003e\n              \u003cspan class=\"rl-fh-ing-tag\"\u003eSerenoa repens\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-ing-arrow\"\u003e▾\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-support\"\u003e\n\u003cstrong\u003eUsed to support\u003c\/strong\u003e : Excess Androgen Activity\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-body\"\u003e\n            \u003cp style=\"margin-top:14px;\"\u003eSaw Palmetto helps inhibit the conversion of testosterone to DHT — the more aggressive androgen linked to coarse, dark facial hair growth. 160 mg per serving.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n \n        \u003cdiv class=\"rl-fh-ing-item\"\u003e\n          \u003cdiv class=\"rl-fh-ing-head\"\u003e\n            \u003cdiv\u003e\n              \u003cdiv class=\"rl-fh-ing-name\"\u003eDIM (Diindolylmethane)\u003c\/div\u003e\n              \u003cspan class=\"rl-fh-ing-tag\"\u003eFrom cruciferous veg\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-ing-arrow\"\u003e▾\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-support\"\u003e\n\u003cstrong\u003eUsed to support\u003c\/strong\u003e : Healthy Estrogen Metabolism\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-body\"\u003e\n            \u003cp style=\"margin-top:14px;\"\u003eDIM helps the body process estrogen along its more favorable pathway, supporting hormonal harmony — a key driver of clear skin and balanced regrowth. 100 mg per serving.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n \n        \u003cdiv class=\"rl-fh-ing-item\"\u003e\n          \u003cdiv class=\"rl-fh-ing-head\"\u003e\n            \u003cdiv\u003e\n              \u003cdiv class=\"rl-fh-ing-name\"\u003eVitex (Chasteberry)\u003c\/div\u003e\n              \u003cspan class=\"rl-fh-ing-tag\"\u003eVitex agnus-castus\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-ing-arrow\"\u003e▾\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-support\"\u003e\n\u003cstrong\u003eUsed to support\u003c\/strong\u003e : Cycle Balance \u0026amp; Hormonal Wellbeing\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-body\"\u003e\n            \u003cp style=\"margin-top:14px;\"\u003eA traditional women's botanical used for centuries to support hormonal regularity. Helps the body find its rhythm — which often means smoother skin and slower regrowth. 80 mg per serving.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n \n        \u003cdiv class=\"rl-fh-ing-item\"\u003e\n          \u003cdiv class=\"rl-fh-ing-head\"\u003e\n            \u003cdiv\u003e\n              \u003cdiv class=\"rl-fh-ing-name\"\u003eZinc + B6 Complex\u003c\/div\u003e\n              \u003cspan class=\"rl-fh-ing-tag\"\u003eMineral + Vitamin\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"rl-fh-ing-arrow\"\u003e▾\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-support\"\u003e\n\u003cstrong\u003eUsed to support\u003c\/strong\u003e : Skin Health \u0026amp; Hormonal Regulation\u003c\/div\u003e\n          \u003cdiv class=\"rl-fh-ing-body\"\u003e\n            \u003cp style=\"margin-top:14px;\"\u003eZinc supports skin clarity and hormonal regulation. Vitamin B6 is essential for healthy hormone metabolism. Together, the foundation supplement most women are quietly low in.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n \n      \u003cbutton class=\"rl-fh-final-cta\"\u003eAdd To Cart\u003c\/button\u003e\n      \u003cdiv class=\"rl-fh-final-meta\"\u003e\n        \u003cspan\u003eCancel Anytime\u003c\/span\u003e\n        \u003cspan\u003e90 Day Money Back Guarantee\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- Reviews --\u003e\n  \u003csection class=\"rl-fh-reviews rl-fh-reveal\"\u003e\n    \u003cdiv class=\"rl-fh-reviews-top\"\u003e\n      \u003cdiv class=\"rl-fh-reviews-score\"\u003e\n        \u003cdiv class=\"num\"\u003e4.91\u003c\/div\u003e\n        \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cdiv class=\"count\"\u003e5,221 reviews\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-reviews-bars\"\u003e\n        \u003cdiv class=\"rl-fh-reviews-bar\"\u003e\n\u003cspan class=\"star\"\u003e5★\u003c\/span\u003e\u003cdiv class=\"track\"\u003e\u003cdiv class=\"fill\" style=\"width:92%;\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"ct\"\u003e(4,816)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-reviews-bar\"\u003e\n\u003cspan class=\"star\"\u003e4★\u003c\/span\u003e\u003cdiv class=\"track\"\u003e\u003cdiv class=\"fill\" style=\"width:6%;\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"ct\"\u003e(336)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-reviews-bar\"\u003e\n\u003cspan class=\"star\"\u003e3★\u003c\/span\u003e\u003cdiv class=\"track\"\u003e\u003cdiv class=\"fill\" style=\"width:1.2%;\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"ct\"\u003e(54)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-reviews-bar\"\u003e\n\u003cspan class=\"star\"\u003e2★\u003c\/span\u003e\u003cdiv class=\"track\"\u003e\u003cdiv class=\"fill\" style=\"width:0.4%;\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"ct\"\u003e(13)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"rl-fh-reviews-bar\"\u003e\n\u003cspan class=\"star\"\u003e1★\u003c\/span\u003e\u003cdiv class=\"track\"\u003e\u003cdiv class=\"fill\" style=\"width:0.1%;\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cspan class=\"ct\"\u003e(2)\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cdiv style=\"text-align:center;margin-bottom:8px;font-size:13px;font-weight:600;\"\u003eShare your experience\u003c\/div\u003e\n        \u003cdiv class=\"stars\" style=\"color:#1a1a1a;text-align:center;margin-bottom:10px;\"\u003e★★★★★\u003c\/div\u003e\n        \u003cbutton type=\"button\" class=\"rl-fh-write-btn\" id=\"rlFhWriteBtn\" style=\"display:inline-block;text-align:center;\"\u003eWrite a Review\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-reviews-grid\" id=\"rlFhReviewsGrid\"\u003e\u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-reviews-loadwrap\"\u003e\n      \u003cbutton type=\"button\" class=\"rl-fh-reviews-load\" id=\"rlFhReviewsLoad\"\u003e\n        \u003cspan class=\"rl-fh-reviews-load-text\"\u003eSee More Reviews\u003c\/span\u003e\n        \u003cspan class=\"rl-fh-reviews-load-count\" id=\"rlFhReviewsLoadCount\"\u003e\u003c\/span\u003e\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n  \u003c!-- FAQ --\u003e\n  \u003csection class=\"rl-fh-faq rl-fh-reveal\" id=\"rlFhFaq\"\u003e\n    \u003ch2\u003eFrequently Asked \u003cem\u003eQuestions\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"rl-fh-faq-rating\"\u003e\n      \u003cspan class=\"rl-fh-faq-hearts\"\u003e♥ ♥ ♥ ♥ ♥\u003c\/span\u003e\n      \u003cspan\u003e4.91 (5,221 reviews)\u003c\/span\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-faq-list rl-fh-stagger rl-fh-reveal\"\u003e\n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eHow soon will I see results?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Most women notice their first visible change — finer regrowth, softer texture, calmer skin — within \u003cstrong\u003e3 to 6 weeks\u003c\/strong\u003e of consistent daily use. Deeper results, including reduced density and slower regrowth, typically build over \u003cstrong\u003e8 to 12 weeks\u003c\/strong\u003e. Hormone Balance+ works at the hormonal level, so consistency matters more than dose.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eAre Hormone Balance+ Gummies safe?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Yes. Hormone Balance+ is \u003cstrong\u003ehormone-free\u003c\/strong\u003e, \u003cstrong\u003evegan\u003c\/strong\u003e, and made in a \u003cstrong\u003eGMP-certified facility\u003c\/strong\u003e in the United States. Every ingredient is plant-based and dosed at clinically-relevant levels. There are no fillers, no synthetic hormones, and no banned substances. If you're pregnant, nursing, or on medication, check with your doctor first.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eWill it work for PCOS-related facial hair?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Hormone Balance+ is formulated specifically for women dealing with \u003cstrong\u003eandrogen-driven facial hair\u003c\/strong\u003e, including PCOS, perimenopause, and post-pregnancy hormonal shifts. The actives — Spearmint, Saw Palmetto, DIM, and Vitex — are all studied for their role in supporting healthy androgen activity. Many of our strongest results come from PCOS customers.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eDo you offer a money-back guarantee?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Yes — \u003cstrong\u003e90 days, full refund, no questions asked\u003c\/strong\u003e. If you don't see meaningful change in your regrowth, your skin, or your confidence, email our team and we'll refund you. We can offer this because the formula works for the vast majority of women who give it the full cycle.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eCan I subscribe and save?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Absolutely. Our \u003cstrong\u003eAuto Refill\u003c\/strong\u003e subscription saves you \u003cstrong\u003e20% off every shipment\u003c\/strong\u003e, ships free, and includes our Smooth Skin Routine e-book. You can pause, skip, or cancel anytime from your account — no calls, no friction.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eWhen should I take them?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Take \u003cstrong\u003e2 gummies daily\u003c\/strong\u003e, ideally with food. Most women take them with breakfast to make it part of their morning routine. They taste like real strawberry — no chalky aftertaste, no pills to swallow.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eWhat's actually inside Hormone Balance+?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          Five clinically-studied actives in every serving: \u003cstrong\u003eSpearmint Extract\u003c\/strong\u003e (200mg), \u003cstrong\u003eSaw Palmetto\u003c\/strong\u003e (160mg), \u003cstrong\u003eDIM\u003c\/strong\u003e (100mg), \u003cstrong\u003eVitex \/ Chasteberry\u003c\/strong\u003e (80mg), and a \u003cstrong\u003eZinc + B6 complex\u003c\/strong\u003e for foundational hormonal support. Full ingredient breakdown is in the Ingredients section above.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n \n      \u003cdetails class=\"rl-fh-faq-item\"\u003e\n        \u003csummary\u003eWhere do you ship and how fast?\u003cspan class=\"rl-fh-faq-icon\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n        \u003cdiv class=\"rl-fh-faq-body\"\u003e\n          We ship globally with \u003cstrong\u003efree shipping\u003c\/strong\u003e on every order. US orders typically arrive in \u003cstrong\u003e3 to 5 business days\u003c\/strong\u003e. International orders arrive in \u003cstrong\u003e5 to 10 business days\u003c\/strong\u003e. Every order is dispatched within 24 hours and includes tracking.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-faq-cta-wrap\"\u003e\n      \u003cbutton type=\"button\" class=\"rl-fh-faq-cta rl-fh-final-cta\"\u003eAdd To Cart\u003c\/button\u003e\n      \u003cdiv class=\"rl-fh-faq-meta\"\u003e\n        \u003cspan\u003eCancel Anytime\u003c\/span\u003e\n        \u003cspan\u003e90 Day Money Back Guarantee\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n \n\u003c\/div\u003e\n \n\u003c!-- Footer --\u003e\n\u003cdiv class=\"rl-fh-footer\"\u003e\n  \u003cdiv class=\"rl-fh-footer-inner\"\u003e\n \n    \u003cdiv class=\"rl-fh-footer-top\"\u003e\n      \u003cdiv class=\"rl-fh-footer-pitch\"\u003e\n        Join the women rewriting how they feel in their own skin.\n        \u003cspan\u003eGet 10% off your first order, plus early access to new launches.\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cform class=\"rl-fh-footer-form\" id=\"rlFhFooterForm\" onsubmit=\"event.preventDefault(); var b=this.querySelector('button'); b.textContent='\\u2713 THANKS \\u2014 CHECK YOUR EMAIL'; b.style.background='#fff5fa';\"\u003e\n        \u003cinput class=\"rl-fh-footer-input\" type=\"email\" placeholder=\"Email\" required\u003e\n        \u003cbutton class=\"rl-fh-footer-submit\" type=\"submit\"\u003eSUBSCRIBE TO REFORMINGLABS\u003c\/button\u003e\n        \u003cdiv class=\"rl-fh-footer-disclaimer\"\u003e\n          By entering your email and clicking \"Subscribe\" you agree to receive marketing email messages from ReformingLabs at the email address provided. Unsubscribe at any time.\n        \u003c\/div\u003e\n      \u003c\/form\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-footer-mid\"\u003e\n      \u003cdiv class=\"rl-fh-footer-brand\"\u003e\n        \u003cdiv class=\"rl-fh-footer-brand-logo\"\u003e\n\u003cspan class=\"b\"\u003er\u003c\/span\u003ereforminglabs\u003c\/div\u003e\n        \u003cp class=\"rl-fh-footer-blurb\"\u003e\n          ReformingLabs builds clean, high-performance wellness products designed to help you feel — and look — like the most confident version of yourself.\n        \u003c\/p\u003e\n        \u003ca class=\"rl-fh-footer-shop\" href=\"#\" target=\"_blank\" rel=\"noopener\"\u003eFollow on shop\u003c\/a\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-footer-col\"\u003e\n        \u003ch4\u003eAbout ReformingLabs\u003c\/h4\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003ca href=\"\/pages\/about\"\u003eAbout Us\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/collections\/all\"\u003eShop All\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/pages\/contact\"\u003eContact Us\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/account\/orders\"\u003eTrack Your Order\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/account\/login\"\u003eAccount Login\u003c\/a\u003e\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-footer-col\"\u003e\n        \u003ch4\u003eUseful Links\u003c\/h4\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003ca href=\"\/products\/smooth-plus\"\u003eShop Hormone Balance+\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/products\/height-plus\"\u003eShop Height+\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/products\/tan-plus\"\u003eShop Tan+\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/products\/jaw-plus\"\u003eShop Jaw+\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/blogs\/journal\"\u003eThe Journal\u003c\/a\u003e\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n \n      \u003cdiv class=\"rl-fh-footer-col\"\u003e\n        \u003ch4\u003eHelp\u003c\/h4\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003ca href=\"\/policies\/shipping-policy\"\u003eShipping Policy\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/policies\/refund-policy\"\u003eRefund Policy\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/policies\/terms-of-service\"\u003eTerms of Service\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/policies\/privacy-policy\"\u003ePrivacy Policy\u003c\/a\u003e\u003c\/li\u003e\n          \u003cli\u003e\u003ca href=\"\/pages\/help\"\u003eHelp Center\u003c\/a\u003e\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n    \u003cdiv class=\"rl-fh-footer-bottom\"\u003e\n      \u003cdiv class=\"rl-fh-footer-meta\"\u003e\n        \u003cstrong id=\"rlFhFooterCcy\"\u003eUSD $\u003c\/strong\u003e  © 2026, ReformingLabs.\n      \u003c\/div\u003e\n      \u003cdiv class=\"rl-fh-footer-fda\"\u003e\n        *These statements have not been evaluated by the Food and Drug Administration. This product is not intended to diagnose, treat, cure or prevent any disease.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n \n  \u003c\/div\u003e\n\u003c\/div\u003e\n \n\u003cscript\u003e\n(function() {\n  \/\/ ====================================================\n  \/\/ Geo-personalize free shipping banner\n  \/\/ ====================================================\n  \/\/ Map of ISO country codes -\u003e friendly names + article\n  var COUNTRY_NAMES = {\n    US: 'the United States', GB: 'the UK', UK: 'the UK', AU: 'Australia', CA: 'Canada',\n    NZ: 'New Zealand', IE: 'Ireland', DE: 'Germany', FR: 'France', ES: 'Spain',\n    IT: 'Italy', NL: 'the Netherlands', BE: 'Belgium', SE: 'Sweden', NO: 'Norway',\n    DK: 'Denmark', FI: 'Finland', CH: 'Switzerland', AT: 'Austria', PT: 'Portugal',\n    PL: 'Poland', CZ: 'Czechia', GR: 'Greece', JP: 'Japan', KR: 'South Korea',\n    SG: 'Singapore', HK: 'Hong Kong', MY: 'Malaysia', TH: 'Thailand', PH: 'the Philippines',\n    ID: 'Indonesia', VN: 'Vietnam', IN: 'India', AE: 'the UAE', SA: 'Saudi Arabia',\n    IL: 'Israel', TR: 'Turkey', ZA: 'South Africa', BR: 'Brazil', MX: 'Mexico',\n    AR: 'Argentina', CL: 'Chile', CO: 'Colombia', PE: 'Peru'\n  };\n \n  function applyCountry(code) {\n    if (!code) return;\n    code = String(code).toUpperCase();\n    var name = COUNTRY_NAMES[code] || code;\n    try { localStorage.setItem('rlFhCountry', code); } catch(e) {}\n    \/\/ Update scrolling banner messages\n    document.querySelectorAll('.rl-fh-ship-msg').forEach(function(el) {\n      el.textContent = '\\u2713 Free Shipping to ' + name;\n    });\n    \/\/ Update ATC meta line\n    var atcLine = document.getElementById('rlFhShipCountry');\n    if (atcLine) atcLine.textContent = '\\uD83C\\uDF0E Free shipping to ' + name;\n    \/\/ Auto-set currency to match country (only on first detection \\u2014 respect user override)\n    if (window.rlFhSetCurrencyByCountry) window.rlFhSetCurrencyByCountry(code);\n  }\n \n  \/\/ ====================================================\n  \/\/ Currency converter\n  \/\/ ====================================================\n  \/\/ Country -\u003e currency mapping\n  var COUNTRY_TO_CCY = {\n    US: 'USD', AU: 'AUD', CA: 'CAD', GB: 'GBP', UK: 'GBP', NZ: 'NZD', IE: 'EUR',\n    DE: 'EUR', FR: 'EUR', ES: 'EUR', IT: 'EUR', NL: 'EUR', BE: 'EUR', AT: 'EUR',\n    PT: 'EUR', FI: 'EUR', GR: 'EUR', LU: 'EUR', SK: 'EUR', SI: 'EUR', EE: 'EUR',\n    LV: 'EUR', LT: 'EUR', MT: 'EUR', CY: 'EUR', HR: 'EUR',\n    SE: 'SEK', NO: 'NOK', DK: 'DKK', CH: 'CHF', PL: 'PLN', CZ: 'CZK', HU: 'HUF',\n    RO: 'RON', BG: 'BGN', TR: 'TRY', IS: 'ISK',\n    JP: 'JPY', KR: 'KRW', CN: 'CNY', TW: 'TWD', HK: 'HKD', SG: 'SGD',\n    MY: 'MYR', TH: 'THB', PH: 'PHP', ID: 'IDR', VN: 'VND', IN: 'INR',\n    AE: 'AED', SA: 'SAR', QA: 'QAR', KW: 'KWD', IL: 'ILS', ZA: 'ZAR',\n    BR: 'BRL', MX: 'MXN', AR: 'ARS', CL: 'CLP', CO: 'COP', PE: 'PEN'\n  };\n  \/\/ Currency -\u003e { symbol, name, flag, decimals }\n  var CURRENCIES = {\n    USD: { symbol: '$',    name: 'US Dollar',          flag: '\\u1F1FA\\u1F1F8', decimals: 2 },\n    AUD: { symbol: 'A$',   name: 'Australian Dollar',  flag: '\\u1F1E6\\u1F1FA', decimals: 2 },\n    CAD: { symbol: 'C$',   name: 'Canadian Dollar',    flag: '\\u1F1E8\\u1F1E6', decimals: 2 },\n    GBP: { symbol: '\\u00A3',    name: 'British Pound',      flag: '\\u1F1EC\\u1F1E7', decimals: 2 },\n    EUR: { symbol: '\\u20AC',    name: 'Euro',               flag: '\\u1F1EA\\u1F1FA', decimals: 2 },\n    NZD: { symbol: 'NZ$',  name: 'NZ Dollar',          flag: '\\u1F1F3\\u1F1FF', decimals: 2 },\n    JPY: { symbol: '\\u00A5',    name: 'Japanese Yen',       flag: '\\u1F1EF\\u1F1F5', decimals: 0 },\n    KRW: { symbol: '\\u20A9',    name: 'Korean Won',         flag: '\\u1F1F0\\u1F1F7', decimals: 0 },\n    SGD: { symbol: 'S$',   name: 'Singapore Dollar',   flag: '\\u1F1F8\\u1F1EC', decimals: 2 },\n    HKD: { symbol: 'HK$',  name: 'Hong Kong Dollar',   flag: '\\u1F1ED\\u1F1F0', decimals: 2 },\n    CHF: { symbol: 'CHF ', name: 'Swiss Franc',        flag: '\\u1F1E8\\u1F1ED', decimals: 2 },\n    SEK: { symbol: 'kr ',  name: 'Swedish Krona',      flag: '\\u1F1F8\\u1F1EA', decimals: 2 },\n    NOK: { symbol: 'kr ',  name: 'Norwegian Krone',    flag: '\\u1F1F3\\u1F1F4', decimals: 2 },\n    DKK: { symbol: 'kr ',  name: 'Danish Krone',       flag: '\\u1F1E9\\u1F1F0', decimals: 2 },\n    PLN: { symbol: 'z\\u0142 ',  name: 'Polish Z\\u0142oty',       flag: '\\u1F1F5\\u1F1F1', decimals: 2 },\n    CZK: { symbol: 'K\\u010D ',  name: 'Czech Koruna',       flag: '\\u1F1E8\\u1F1FF', decimals: 2 },\n    HUF: { symbol: 'Ft ',  name: 'Hungarian Forint',   flag: '\\u1F1ED\\u1F1FA', decimals: 0 },\n    TRY: { symbol: '\\u20BA',    name: 'Turkish Lira',       flag: '\\u1F1F9\\u1F1F7', decimals: 2 },\n    INR: { symbol: '\\u20B9',    name: 'Indian Rupee',       flag: '\\u1F1EE\\u1F1F3', decimals: 0 },\n    AED: { symbol: 'AED ', name: 'UAE Dirham',         flag: '\\u1F1E6\\u1F1EA', decimals: 2 },\n    SAR: { symbol: 'SAR ', name: 'Saudi Riyal',        flag: '\\u1F1F8\\u1F1E6', decimals: 2 },\n    ILS: { symbol: '\\u20AA',    name: 'Israeli Shekel',     flag: '\\u1F1EE\\u1F1F1', decimals: 2 },\n    ZAR: { symbol: 'R',    name: 'South African Rand', flag: '\\u1F1FF\\u1F1E6', decimals: 2 },\n    BRL: { symbol: 'R$',   name: 'Brazilian Real',     flag: '\\u1F1E7\\u1F1F7', decimals: 2 },\n    MXN: { symbol: 'Mex$', name: 'Mexican Peso',       flag: '\\u1F1F2\\u1F1FD', decimals: 2 },\n    CNY: { symbol: '\\u00A5',    name: 'Chinese Yuan',       flag: '\\u1F1E8\\u1F1F3', decimals: 2 },\n    THB: { symbol: '\\u0E3F',    name: 'Thai Baht',          flag: '\\u1F1F9\\u1F1ED', decimals: 0 },\n    MYR: { symbol: 'RM ',  name: 'Malaysian Ringgit',  flag: '\\u1F1F2\\u1F1FE', decimals: 2 },\n    PHP: { symbol: '\\u20B1',    name: 'Philippine Peso',    flag: '\\u1F1F5\\u1F1ED', decimals: 2 },\n    IDR: { symbol: 'Rp ',  name: 'Indonesian Rupiah',  flag: '\\u1F1EE\\u1F1E9', decimals: 0 },\n    VND: { symbol: '\\u20AB',    name: 'Vietnamese Dong',    flag: '\\u1F1FB\\u1F1F3', decimals: 0 },\n    TWD: { symbol: 'NT$',  name: 'Taiwan Dollar',      flag: '\\u1F1F9\\u1F1FC', decimals: 0 },\n    ARS: { symbol: 'AR$',  name: 'Argentine Peso',     flag: '\\u1F1E6\\u1F1F7', decimals: 2 },\n    CLP: { symbol: 'CL$',  name: 'Chilean Peso',       flag: '\\u1F1E8\\u1F1F1', decimals: 0 },\n    COP: { symbol: 'CO$',  name: 'Colombian Peso',     flag: '\\u1F1E8\\u1F1F4', decimals: 0 }\n  };\n \n  var STATE = {\n    currency: 'USD',\n    rates: { USD: 1 },\n    userOverride: false\n  };\n \n  function fmtPrice(usdValue, ccyCode) {\n    var ccy = CURRENCIES[ccyCode] || CURRENCIES.USD;\n    var rate = STATE.rates[ccyCode] || 1;\n    var converted = usdValue * rate;\n    \/\/ Round whole-number currencies (JPY, KRW etc.) to int; otherwise nearest .99 trick on integers, else 2dp\n    var dec = ccy.decimals;\n    var n;\n    if (dec === 0) {\n      n = Math.round(converted).toLocaleString('en-US');\n    } else {\n      n = converted.toFixed(2);\n      \/\/ Add thousand separators\n      var parts = n.split('.');\n      parts[0] = parts[0].replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ',');\n      n = parts.join('.');\n    }\n    return ccy.symbol + n;\n  }\n \n  function renderPrices() {\n    document.querySelectorAll('.rl-fh-price[data-usd]').forEach(function(el) {\n      var usd = parseFloat(el.getAttribute('data-usd'));\n      if (isNaN(usd)) return;\n      var suffix = el.getAttribute('data-suffix') || '';\n      el.textContent = fmtPrice(usd, STATE.currency) + suffix;\n    });\n    \/\/ Update pill display \\u2014 format \"AUD $\" \/ \"GBP \\u00A3\" etc.\n    var ccy = CURRENCIES[STATE.currency];\n    if (ccy) {\n      var flagEl = document.getElementById('rlFhCurrencyFlag');\n      var codeEl = document.getElementById('rlFhCurrencyCode');\n      if (flagEl) flagEl.textContent = ccy.flag;\n      if (codeEl) codeEl.textContent = STATE.currency + ' ' + ccy.symbol.trim();\n      \/\/ Update footer currency badge\n      var footCcy = document.getElementById('rlFhFooterCcy');\n      if (footCcy) footCcy.textContent = STATE.currency + ' ' + ccy.symbol.trim();\n    }\n    \/\/ Update active state in menu\n    document.querySelectorAll('.rl-fh-currency-item').forEach(function(item) {\n      if (item.dataset.ccy === STATE.currency) item.classList.add('active');\n      else item.classList.remove('active');\n    });\n  }\n  window.rlFhRenderPrices = renderPrices;\n \n  function setCurrency(code, isUserAction) {\n    if (!CURRENCIES[code]) return;\n    STATE.currency = code;\n    if (isUserAction) {\n      STATE.userOverride = true;\n      try { localStorage.setItem('rlFhCcyOverride', code); } catch(e) {}\n    }\n    renderPrices();\n  }\n \n  function setCurrencyByCountry(countryCode) {\n    if (STATE.userOverride) return;\n    var ccy = COUNTRY_TO_CCY[countryCode];\n    if (ccy \u0026\u0026 CURRENCIES[ccy]) setCurrency(ccy, false);\n  }\n  window.rlFhSetCurrencyByCountry = setCurrencyByCountry;\n \n  function buildCurrencyMenu() {\n    var menu = document.getElementById('rlFhCurrencyMenu');\n    if (!menu) return;\n    \/\/ Order: USD, AUD, GBP, EUR, CAD, NZD first, then alphabetical\n    var pinned = ['USD','AUD','GBP','EUR','CAD','NZD'];\n    var rest = Object.keys(CURRENCIES).filter(function(c) { return pinned.indexOf(c) === -1; }).sort();\n    var ordered = pinned.concat(rest);\n    var html = '';\n    ordered.forEach(function(code) {\n      var ccy = CURRENCIES[code];\n      html += '\u003cdiv class=\"rl-fh-currency-item\" data-ccy=\"' + code + '\"\u003e' +\n              '\u003cspan class=\"flag\"\u003e' + ccy.flag + '\u003c\/span\u003e' +\n              '\u003cspan class=\"code\"\u003e' + code + '\u003c\/span\u003e' +\n              '\u003cspan class=\"name\"\u003e' + ccy.name + '\u003c\/span\u003e' +\n              '\u003c\/div\u003e';\n    });\n    menu.innerHTML = html;\n  }\n \n  function fetchRates() {\n    \/\/ Try cached rates \u003c 6h old first\n    try {\n      var cached = JSON.parse(localStorage.getItem('rlFhRates') || 'null');\n      if (cached \u0026\u0026 cached.t \u0026\u0026 (Date.now() - cached.t \u003c 6 * 3600 * 1000) \u0026\u0026 cached.rates) {\n        STATE.rates = cached.rates;\n        renderPrices();\n      }\n    } catch(e) {}\n    \/\/ Always refresh in background\n    fetch('https:\/\/open.er-api.com\/v6\/latest\/USD')\n      .then(function(r) { return r.ok ? r.json() : null; })\n      .then(function(data) {\n        if (data \u0026\u0026 data.rates) {\n          STATE.rates = data.rates;\n          STATE.rates.USD = 1;\n          try { localStorage.setItem('rlFhRates', JSON.stringify({ t: Date.now(), rates: data.rates })); } catch(e) {}\n          renderPrices();\n        }\n      })\n      .catch(function() {\n        \/\/ Fallback: jsdelivr free FX API\n        fetch('https:\/\/cdn.jsdelivr.net\/npm\/@fawazahmed0\/currency-api@latest\/v1\/currencies\/usd.json')\n          .then(function(r) { return r.ok ? r.json() : null; })\n          .then(function(data) {\n            if (data \u0026\u0026 data.usd) {\n              var r = {};\n              Object.keys(data.usd).forEach(function(k) { r[k.toUpperCase()] = data.usd[k]; });\n              STATE.rates = r;\n              STATE.rates.USD = 1;\n              renderPrices();\n            }\n          })\n          .catch(function() { \/* keep USD only *\/ });\n      });\n  }\n \n  function initCurrency() {\n    buildCurrencyMenu();\n    \/\/ Restore saved override if present\n    try {\n      var saved = localStorage.getItem('rlFhCcyOverride');\n      if (saved \u0026\u0026 CURRENCIES[saved]) {\n        STATE.currency = saved;\n        STATE.userOverride = true;\n      }\n    } catch(e) {}\n    renderPrices();\n    fetchRates();\n \n    \/\/ Pill toggle\n    var btn = document.getElementById('rlFhCurrencyBtn');\n    var menu = document.getElementById('rlFhCurrencyMenu');\n    if (btn \u0026\u0026 menu) {\n      btn.addEventListener('click', function(e) {\n        e.stopPropagation();\n        if (menu.hasAttribute('hidden')) menu.removeAttribute('hidden');\n        else menu.setAttribute('hidden', '');\n      });\n      document.addEventListener('click', function(e) {\n        if (!menu.contains(e.target) \u0026\u0026 e.target !== btn \u0026\u0026 !btn.contains(e.target)) {\n          menu.setAttribute('hidden', '');\n        }\n      });\n      menu.addEventListener('click', function(e) {\n        var item = e.target.closest('.rl-fh-currency-item');\n        if (!item) return;\n        setCurrency(item.dataset.ccy, true);\n        menu.setAttribute('hidden', '');\n      });\n    }\n  }\n  initCurrency();\n \n  \/\/ ====================================================\n  \/\/ Cart slider - multi-line, with localStorage persistence\n  \/\/ ====================================================\n  var CART_STORAGE_KEY = 'rlFhCart_v2';\n  var CART = { lines: [], protect: false };\n  var PROTECT_PRICE_USD = 0;\n \n  \/\/ Each line: { offer: '1'|'2', mode: 'sub'|'onetime', qty: N }\n  var CART_OFFERS = {\n    '1': {\n      sub:     { now: 34.99, was: 54.99,  freq: 'every 30 days',     label: '30 Day Supply', img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H2.png?v=1777334180' },\n      onetime: { now: 49.99, was: 54.99,  freq: 'one-time purchase', label: '30 Day Supply', img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H2.png?v=1777334180' }\n    },\n    '2': {\n      sub:     { now: 69.99, was: 164.97, freq: 'every 90 days',     label: '90 Day Supply', img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H13.png?v=1777336644' },\n      onetime: { now: 99.99, was: 164.97, freq: 'one-time purchase', label: '90 Day Supply', img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H13.png?v=1777336644' }\n    }\n  };\n \n  \/\/ Direct checkout URLs - 4 combos: offer (1 or 2) x mode (sub or onetime)\n  \/\/ Each link auto-fills the cart with that offer and goes straight to checkout.\n  var CHECKOUT_LINKS = {\n    '1': {\n      sub:     'https:\/\/reforminglabs.com\/6o7i4y', \/\/ Buy 1, Subscription\n      onetime: 'https:\/\/reforminglabs.com\/7ugVQt'  \/\/ Buy 1, One-time\n    },\n    '2': {\n      sub:     'https:\/\/reforminglabs.com\/e0t3EY', \/\/ Buy 2 Get 1 Free, Subscription\n      onetime: 'https:\/\/reforminglabs.com\/2SbECa'  \/\/ Buy 2 Get 1 Free, One-time\n    }\n  };\n \n  function saveCart() {\n    try { localStorage.setItem(CART_STORAGE_KEY, JSON.stringify(CART)); } catch (err) {}\n  }\n  function loadCart() {\n    try {\n      var raw = localStorage.getItem(CART_STORAGE_KEY);\n      if (!raw) return;\n      var data = JSON.parse(raw);\n      if (data \u0026\u0026 typeof data === 'object') {\n        CART.lines = Array.isArray(data.lines) ? data.lines.filter(function(l){\n          return l \u0026\u0026 CART_OFFERS[l.offer] \u0026\u0026 CART_OFFERS[l.offer][l.mode] \u0026\u0026 l.qty \u003e 0;\n        }) : [];\n        CART.protect = (typeof data.protect === 'boolean') ? data.protect : true;\n      }\n    } catch (err) {}\n  }\n \n  function lineData(line) {\n    return (CART_OFFERS[line.offer] \u0026\u0026 CART_OFFERS[line.offer][line.mode]) || null;\n  }\n \n  function renderCart() {\n    var host = document.getElementById('rlFhCartLines');\n    if (!host) return;\n    if (!CART.lines.length) {\n      host.innerHTML = '\u003cdiv class=\"rl-fh-cart-empty\"\u003eYour cart is empty.\u003cbr\u003e\u003cspan\u003eAdd a product to get started.\u003c\/span\u003e\u003c\/div\u003e';\n      return;\n    }\n    var html = '';\n    for (var i = 0; i \u003c CART.lines.length; i++) {\n      var line = CART.lines[i];\n      var d = lineData(line);\n      if (!d) continue;\n      var lineNow = (d.now * line.qty).toFixed(2);\n      var lineWas = (d.was * line.qty).toFixed(2);\n      html += '\u003cdiv class=\"rl-fh-cart-item\" data-line-idx=\"' + i + '\"\u003e' +\n                '\u003cdiv class=\"rl-fh-cart-item-img\"\u003e\u003cimg src=\"' + d.img + '\" alt=\"Hormone Balance+ Gummies\"\/\u003e\u003c\/div\u003e' +\n                '\u003cdiv class=\"rl-fh-cart-item-main\"\u003e' +\n                  '\u003cdiv class=\"rl-fh-cart-item-top\"\u003e' +\n                    '\u003cdiv\u003e' +\n                      '\u003cdiv class=\"rl-fh-cart-item-name\"\u003eHormone Balance+ Gummies\u003c\/div\u003e' +\n                      '\u003cdiv class=\"rl-fh-cart-item-sub\"\u003e' + d.label + ' \u0026middot; ' + d.freq + '\u003c\/div\u003e' +\n                    '\u003c\/div\u003e' +\n                    '\u003cbutton type=\"button\" class=\"rl-fh-cart-remove\" data-line-remove=\"' + i + '\"\u003eRemove\u003c\/button\u003e' +\n                  '\u003c\/div\u003e' +\n                  '\u003cdiv class=\"rl-fh-cart-item-prices\"\u003e' +\n                    '\u003cspan class=\"now rl-fh-price\" data-usd=\"' + lineNow + '\"\u003e$' + lineNow + '\u003c\/span\u003e' +\n                    '\u003cspan class=\"was rl-fh-price\" data-usd=\"' + lineWas + '\"\u003e$' + lineWas + '\u003c\/span\u003e' +\n                  '\u003c\/div\u003e' +\n                  '\u003cdiv class=\"rl-fh-cart-line-foot\"\u003e' +\n                    '\u003cdiv class=\"rl-fh-cart-qty\"\u003e' +\n                      '\u003cbutton type=\"button\" class=\"rl-fh-cart-qty-btn\" data-line-qty=\"dec\" data-line-idx=\"' + i + '\" aria-label=\"Decrease\"\u003e\u0026#8722;\u003c\/button\u003e' +\n                      '\u003cspan class=\"rl-fh-cart-qty-val\"\u003e' + line.qty + '\u003c\/span\u003e' +\n                      '\u003cbutton type=\"button\" class=\"rl-fh-cart-qty-btn\" data-line-qty=\"inc\" data-line-idx=\"' + i + '\" aria-label=\"Increase\"\u003e\u0026#43;\u003c\/button\u003e' +\n                    '\u003c\/div\u003e' +\n                  '\u003c\/div\u003e' +\n                '\u003c\/div\u003e' +\n              '\u003c\/div\u003e';\n    }\n    host.innerHTML = html;\n  }\n \n  function updateCart() {\n    renderCart();\n \n    var subtotalNow = 0, subtotalWas = 0, totalQty = 0;\n    for (var i = 0; i \u003c CART.lines.length; i++) {\n      var d = lineData(CART.lines[i]);\n      if (!d) continue;\n      subtotalNow += d.now * CART.lines[i].qty;\n      subtotalWas += d.was * CART.lines[i].qty;\n      totalQty += CART.lines[i].qty;\n    }\n    var savings = Math.max(0, subtotalWas - subtotalNow);\n    var total = subtotalNow + (CART.protect \u0026\u0026 CART.lines.length ? PROTECT_PRICE_USD : 0);\n \n    var countEl = document.getElementById('rlFhCartCount');\n    var discountEl = document.getElementById('rlFhCartDiscount');\n    var totalEl = document.getElementById('rlFhCartTotal');\n    var savingsEl = document.getElementById('rlFhCartSavings');\n    var ccyEl = document.getElementById('rlFhCartCcy');\n \n    if (discountEl) discountEl.setAttribute('data-usd', savings.toFixed(2));\n    if (totalEl) totalEl.setAttribute('data-usd', total.toFixed(2));\n    if (savingsEl) {\n      savingsEl.setAttribute('data-usd', savings.toFixed(2));\n      savingsEl.classList.add('rl-fh-price');\n    }\n    if (countEl) countEl.textContent = totalQty;\n    if (ccyEl) ccyEl.textContent = STATE.currency;\n \n    saveCart();\n    if (window.rlFhRenderPrices) window.rlFhRenderPrices();\n  }\n  window.rlFhUpdateCart = updateCart;\n \n  \/\/ Read current page selection (offer + sub\/onetime)\n  function getCurrentSelection() {\n    var activeOffer = document.querySelector('.rl-fh-offer.active');\n    var oneTimeActive = document.querySelector('#rlFhOnetime.active');\n    var subActive = document.querySelector('#rlFhSubRow.rl-fh-sub-active');\n    var offer = (activeOffer \u0026\u0026 activeOffer.dataset.offer === '2') ? '2' : '1';\n    if (activeOffer \u0026\u0026 activeOffer.dataset.offer === '1') offer = '1';\n    var mode = (oneTimeActive \u0026\u0026 !subActive) ? 'onetime' : 'sub';\n    return { offer: offer, mode: mode };\n  }\n \n  \/\/ Add current page selection into cart - if matching line exists, qty++; else push new line\n  function addCurrentToCart() {\n    var sel = getCurrentSelection();\n    var found = false;\n    for (var i = 0; i \u003c CART.lines.length; i++) {\n      if (CART.lines[i].offer === sel.offer \u0026\u0026 CART.lines[i].mode === sel.mode) {\n        CART.lines[i].qty = Math.min(99, CART.lines[i].qty + 1);\n        found = true;\n        break;\n      }\n    }\n    if (!found) {\n      CART.lines.push({ offer: sel.offer, mode: sel.mode, qty: 1 });\n    }\n    updateCart();\n  }\n  window.rlFhAddToCart = addCurrentToCart;\n \n  function goToCheckout() {\n    \/\/ Use first cart line if any; otherwise read current page selection.\n    var offer, mode;\n    if (CART.lines.length) {\n      offer = CART.lines[0].offer;\n      mode = CART.lines[0].mode;\n      if (CART.lines.length \u003e 1) {\n        console.warn('[ReformingLabs] Cart has multiple lines but checkout link supports one offer at a time. Using first line.');\n      }\n    } else {\n      var sel = getCurrentSelection();\n      offer = sel.offer;\n      mode = sel.mode;\n    }\n \n    var url = (CHECKOUT_LINKS[offer] \u0026\u0026 CHECKOUT_LINKS[offer][mode]) || '';\n    console.log('[ReformingLabs] Checkout redirect:', url, '| offer:', offer, '| mode:', mode);\n \n    if (!url) {\n      console.error('[ReformingLabs] No checkout URL for combo:', offer, mode);\n      window.location.href = '\/cart';\n      return;\n    }\n \n    try { window.top.location.href = url; }\n    catch (e) { window.location.href = url; }\n  }\n  window.rlFhCheckout = goToCheckout;\n \n  function openCart() {\n    var cart = document.getElementById('rlFhCart');\n    var bd = document.getElementById('rlFhCartBackdrop');\n    if (cart) { cart.classList.add('open'); cart.setAttribute('aria-hidden', 'false'); }\n    if (bd) bd.classList.add('open');\n    document.body.style.overflow = 'hidden';\n  }\n  function closeCart() {\n    var cart = document.getElementById('rlFhCart');\n    var bd = document.getElementById('rlFhCartBackdrop');\n    if (cart) { cart.classList.remove('open'); cart.setAttribute('aria-hidden', 'true'); }\n    if (bd) bd.classList.remove('open');\n    document.body.style.overflow = '';\n  }\n  window.rlFhOpenCart = openCart;\n  window.rlFhCloseCart = closeCart;\n \n  \/\/ Wire up: ATC = add to cart + open. Header cart icon = just open.\n  document.addEventListener('click', function(e) {\n    var atc = e.target.closest('.rl-fh-atc, .rl-fh-final-cta');\n    if (atc) {\n      e.preventDefault();\n      addCurrentToCart();\n      openCart();\n      return;\n    }\n    var headerCart = e.target.closest('#rlFhCartOpen');\n    if (headerCart) {\n      e.preventDefault();\n      openCart();\n      return;\n    }\n    var closeBtn = e.target.closest('#rlFhCartClose');\n    if (closeBtn) { closeCart(); return; }\n    var bd = e.target.closest('#rlFhCartBackdrop');\n    if (bd) { closeCart(); return; }\n \n    \/\/ Per-line qty buttons\n    var qtyBtn = e.target.closest('.rl-fh-cart-qty-btn[data-line-qty]');\n    if (qtyBtn) {\n      var idx = parseInt(qtyBtn.getAttribute('data-line-idx'), 10);\n      if (!isNaN(idx) \u0026\u0026 CART.lines[idx]) {\n        if (qtyBtn.getAttribute('data-line-qty') === 'inc') {\n          CART.lines[idx].qty = Math.min(99, CART.lines[idx].qty + 1);\n        } else {\n          CART.lines[idx].qty = Math.max(1, CART.lines[idx].qty - 1);\n        }\n        updateCart();\n      }\n      return;\n    }\n \n    \/\/ Per-line remove button\n    var removeBtn = e.target.closest('[data-line-remove]');\n    if (removeBtn) {\n      var ridx = parseInt(removeBtn.getAttribute('data-line-remove'), 10);\n      if (!isNaN(ridx)) {\n        CART.lines.splice(ridx, 1);\n        updateCart();\n      }\n      return;\n    }\n \n    \/\/ Checkout button\n    var checkoutBtn = e.target.closest('#rlFhCheckoutBtn');\n    if (checkoutBtn) {\n      e.preventDefault();\n      goToCheckout();\n      return;\n    }\n  });\n \n  \/\/ Shipping protection toggle\n  document.addEventListener('change', function(e) {\n    if (e.target \u0026\u0026 e.target.id === 'rlFhProtectToggle') {\n      CART.protect = !!e.target.checked;\n      updateCart();\n    }\n  });\n \n  \/\/ Esc key closes cart\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') closeCart();\n  });\n \n  \/\/ Restore cart from localStorage, then render\n  loadCart();\n  \/\/ Sync protection toggle UI with stored state\n  var protectToggle = document.getElementById('rlFhProtectToggle');\n  if (protectToggle) protectToggle.checked = !!CART.protect;\n  updateCart();\n \n  \/\/ Direct listener on checkout button (in addition to delegation) so click can't be swallowed\n  var directCheckoutBtn = document.getElementById('rlFhCheckoutBtn');\n  if (directCheckoutBtn) {\n    directCheckoutBtn.addEventListener('click', function(e) {\n      e.preventDefault();\n      e.stopPropagation();\n      goToCheckout();\n    });\n  }\n \n  \/\/ ====================================================\n  \/\/ Side menu drawer\n  \/\/ ====================================================\n  function openMenu() {\n    var m = document.getElementById('rlFhMenu');\n    var b = document.getElementById('rlFhMenuBackdrop');\n    if (m) { m.classList.add('open'); m.setAttribute('aria-hidden', 'false'); }\n    if (b) b.classList.add('open');\n    document.body.style.overflow = 'hidden';\n  }\n  function closeMenu() {\n    var m = document.getElementById('rlFhMenu');\n    var b = document.getElementById('rlFhMenuBackdrop');\n    if (m) { m.classList.remove('open'); m.setAttribute('aria-hidden', 'true'); }\n    if (b) b.classList.remove('open');\n    \/\/ Don't unlock scroll if cart is also open\n    var cart = document.getElementById('rlFhCart');\n    if (!cart || !cart.classList.contains('open')) document.body.style.overflow = '';\n  }\n  function scrollToBuy() {\n    var target = document.getElementById('rlFhBuy');\n    if (target) {\n      var top = target.getBoundingClientRect().top + window.pageYOffset - 20;\n      window.scrollTo({ top: top, behavior: 'smooth' });\n    }\n  }\n \n  document.addEventListener('click', function(e) {\n    var openBtn = e.target.closest('#rlFhMenuOpen');\n    if (openBtn) { openMenu(); return; }\n    var closeBtn = e.target.closest('#rlFhMenuClose');\n    if (closeBtn) { closeMenu(); return; }\n    var bd = e.target.closest('#rlFhMenuBackdrop');\n    if (bd) { closeMenu(); return; }\n    var scrollBtn = e.target.closest('[data-action=\"scroll-buy\"]');\n    if (scrollBtn) {\n      e.preventDefault();\n      closeMenu();\n      \/\/ Wait for slide-out before scrolling\n      setTimeout(scrollToBuy, 350);\n      return;\n    }\n  });\n \n  \/\/ Esc closes menu\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') closeMenu();\n  });\n \n  function detectCountry() {\n    \/\/ 1. Use cached value immediately \\u2014 instant correct text on repeat visits\n    try {\n      var cached = localStorage.getItem('rlFhCountry');\n      if (cached) applyCountry(cached);\n    } catch(e) {}\n \n    \/\/ 2. Try Shopify's own localization cookie if present (instant, no network)\n    try {\n      var m = document.cookie.match(\/(?:^|; )(?:localization|cart_currency)=([^;]+)\/);\n      if (m \u0026\u0026 m[1]) {\n        \/\/ localization cookie is usually a country code like \"US\" or locale \"en-US\"\n        var val = decodeURIComponent(m[1]).toUpperCase();\n        var iso = val.length === 2 ? val : val.split('-').pop();\n        if (iso \u0026\u0026 iso.length === 2) applyCountry(iso);\n      }\n    } catch(e) {}\n \n    \/\/ 3. Race multiple free geo endpoints \\u2014 first to answer wins\n    var done = false;\n    function settle(code) {\n      if (done || !code) return;\n      done = true;\n      applyCountry(code);\n    }\n \n    var endpoints = [\n      { url: 'https:\/\/api.country.is\/',                key: 'country' },\n      { url: 'https:\/\/ipapi.co\/json\/',                 key: 'country_code' },\n      { url: 'https:\/\/ipwho.is\/',                      key: 'country_code' },\n      { url: 'https:\/\/freeipapi.com\/api\/json',         key: 'countryCode' },\n      { url: 'https:\/\/get.geojs.io\/v1\/ip\/country.json', key: 'country' }\n    ];\n \n    endpoints.forEach(function(ep) {\n      \/\/ Each request times out implicitly via Promise.race against a 4s killer\n      var killer = new Promise(function(_, rej) { setTimeout(rej, 4000); });\n      Promise.race([\n        fetch(ep.url, { cache: 'force-cache' }).then(function(r) { return r.ok ? r.json() : null; }),\n        killer\n      ])\n      .then(function(data) {\n        if (data \u0026\u0026 data[ep.key]) settle(String(data[ep.key]).toUpperCase());\n      })\n      .catch(function() { \/* silent \\u2014 another endpoint will hopefully resolve *\/ });\n    });\n  }\n  detectCountry();\n \n  \/\/ ====================================================\n  \/\/ Reveal-on-scroll + counter animation\n  \/\/ ====================================================\n  var io = ('IntersectionObserver' in window) ? new IntersectionObserver(function(entries) {\n    entries.forEach(function(entry) {\n      if (entry.isIntersecting) {\n        entry.target.classList.add('in-view');\n \n        \/\/ Animate feedback bars on first reveal\n        var bars = entry.target.querySelectorAll('.rl-fh-fb-fill, .rl-fh-survey-bar-fill');\n        bars.forEach(function(bar) {\n          var pct = bar.getAttribute('data-fill');\n          if (pct) bar.style.width = pct + '%';\n        });\n \n        \/\/ Animate counters from 0\n        var nums = entry.target.querySelectorAll('.rl-fh-survey-num');\n        nums.forEach(function(el) {\n          if (el.dataset.animated === '1') return;\n          el.dataset.animated = '1';\n          var target = parseInt(el.getAttribute('data-target'), 10) || 0;\n          var duration = 1600;\n          var start = performance.now();\n          function step(now) {\n            var progress = Math.min((now - start) \/ duration, 1);\n            \/\/ ease-out cubic\n            var eased = 1 - Math.pow(1 - progress, 3);\n            var val = Math.round(target * eased);\n            el.textContent = val + '%';\n            if (progress \u003c 1) requestAnimationFrame(step);\n          }\n          requestAnimationFrame(step);\n        });\n \n        io.unobserve(entry.target);\n      }\n    });\n  }, { threshold: 0.18, rootMargin: '0px 0px -10% 0px' }) : null;\n \n  function observeAll() {\n    \/\/ Watch all premium reveal variants: .rl-fh-reveal, .rl-fh-drop-in, .rl-fh-stagger\n    var reveals = document.querySelectorAll('.rl-fh-reveal, .rl-fh-drop-in, .rl-fh-stagger');\n    reveals.forEach(function(el) {\n      if (io) io.observe(el);\n      else el.classList.add('in-view');\n      \/\/ Immediate-show for anything already in the viewport on load\n      \/\/ (covers above-the-fold + preview environments where IO fires inconsistently)\n      var r = el.getBoundingClientRect();\n      if (r.top \u003c (window.innerHeight || document.documentElement.clientHeight)) {\n        el.classList.add('in-view');\n      }\n    });\n \n    \/\/ Observe each step \u003cli\u003e individually. The rootMargin creates a \"trigger line\"\n    \/\/ partway down the viewport \\u2014 each step only fires when its top crosses that line.\n    \/\/ bottom -55% means the trigger line sits at 45% from top of viewport (just below middle).\n    var stepIo = ('IntersectionObserver' in window) ? new IntersectionObserver(function(entries) {\n      entries.forEach(function(entry) {\n        if (entry.isIntersecting) {\n          entry.target.classList.add('in-view');\n          stepIo.unobserve(entry.target);\n        }\n      });\n    }, { threshold: 0, rootMargin: '0px 0px -55% 0px' }) : null;\n \n    document.querySelectorAll('ul.rl-fh-steps \u003e li').forEach(function(li) {\n      if (stepIo) stepIo.observe(li);\n      else li.classList.add('in-view');\n    });\n \n    \/\/ Guaranteed fallback: if anything is still hidden after 1.2s\n    \/\/ (script blocked, observer never fired, preview sandbox, etc.)\n    \/\/ force everything visible. Better than a blank page.\n    setTimeout(function() {\n      document.querySelectorAll('.rl-fh-reveal:not(.in-view), .rl-fh-drop-in:not(.in-view), .rl-fh-stagger:not(.in-view)').forEach(function(el) {\n        el.classList.add('in-view');\n      });\n      document.querySelectorAll('ul.rl-fh-steps \u003e li:not(.in-view)').forEach(function(li) {\n        li.classList.add('in-view');\n      });\n    }, 1200);\n  }\n \n  \/\/ ====================================================\n  \/\/ Event delegation\n  \/\/ ====================================================\n  document.addEventListener('click', function(e) {\n    \/\/ Offer selection\n    var offer = e.target.closest('.rl-fh-offer');\n    if (offer) {\n      document.querySelectorAll('.rl-fh-offer').forEach(function(o) { o.classList.remove('active'); });\n      offer.classList.add('active');\n      \/\/ Activate sub mode (deactivate one-time)\n      var sub = document.getElementById('rlFhSubRow');\n      var ot = document.getElementById('rlFhOnetime');\n      if (sub) sub.classList.add('rl-fh-sub-active');\n      if (ot) ot.classList.remove('active');\n      \/\/ Update price based on offer (using USD source values + day-cost)\n      var now = document.getElementById('rlFhPriceNow');\n      var was = document.getElementById('rlFhPriceWas');\n      var day = document.getElementById('rlFhPriceDay');\n      if (offer.dataset.offer === '1') {\n        if (now) now.setAttribute('data-usd', '34.99');\n        if (was) was.setAttribute('data-usd', '54.99');\n        if (day) day.setAttribute('data-usd', '1.16');\n      } else if (offer.dataset.offer === '2') {\n        if (now) now.setAttribute('data-usd', '69.99');\n        if (was) was.setAttribute('data-usd', '164.97');\n        if (day) day.setAttribute('data-usd', '0.77');\n      }\n      \/\/ Re-render prices in active currency\n      if (window.rlFhRenderPrices) window.rlFhRenderPrices();\n      return;\n    }\n \n    \/\/ Subscribe row toggle\n    var subRow = e.target.closest('#rlFhSubRow');\n    if (subRow) {\n      subRow.classList.add('rl-fh-sub-active');\n      var ot = document.getElementById('rlFhOnetime');\n      if (ot) ot.classList.remove('active');\n      return;\n    }\n \n    \/\/ One-time row\n    var oneTime = e.target.closest('#rlFhOnetime');\n    if (oneTime) {\n      oneTime.classList.add('active');\n      var sub = document.getElementById('rlFhSubRow');\n      if (sub) sub.classList.remove('rl-fh-sub-active');\n      return;\n    }\n \n    \/\/ Accordion (product info)\n    var accSummary = e.target.closest('.rl-fh-acc summary');\n    if (accSummary) {\n      e.preventDefault();\n      e.stopPropagation();\n      var d = accSummary.parentElement;\n      d.classList.toggle('open');\n      if (d.classList.contains('open')) d.setAttribute('open', '');\n      else d.removeAttribute('open');\n      return;\n    }\n \n    \/\/ Ingredient accordion\n    var ingHead = e.target.closest('.rl-fh-ing-head');\n    if (ingHead) {\n      var item = ingHead.closest('.rl-fh-ing-item');\n      item.classList.toggle('open');\n      return;\n    }\n \n    \/\/ (Final CTA add-to-cart + open is handled in the cart click handler above.)\n  });\n \n  \/\/ Run on load\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', observeAll);\n  } else {\n    observeAll();\n  }\n})();\n \n\/* =================================================================\n   PRODUCT GALLERY \\u2014 strip thumbnails swap the main hero image.\n   ================================================================= *\/\n(function() {\n  var strip = document.getElementById('rlFhStrip');\n  var mock = document.getElementById('rlFhProductMock');\n  var mainImg = document.getElementById('rlFhMainImg');\n  if (!strip || !mock || !mainImg) return;\n \n  \/\/ Mark broken images with a fallback class so the user sees a placeholder, not a broken icon\n  mainImg.addEventListener('error', function() {\n    mock.classList.add('broken');\n    mainImg.classList.add('broken');\n  });\n  mainImg.addEventListener('load', function() {\n    mock.classList.remove('broken');\n    mainImg.classList.remove('broken');\n  });\n  strip.querySelectorAll('.rl-fh-strip-item img').forEach(function(im) {\n    im.addEventListener('error', function() {\n      im.parentNode.classList.add('broken');\n    });\n  });\n \n  strip.addEventListener('click', function(e) {\n    var thumb = e.target.closest('.rl-fh-strip-item');\n    if (!thumb) return;\n    var src = thumb.getAttribute('data-img');\n    if (!src || mainImg.src === src) return;\n \n    \/\/ Swap with subtle fade\n    mock.classList.add('swapping');\n    var preload = new Image();\n    preload.onload = function() {\n      mainImg.src = src;\n      requestAnimationFrame(function() {\n        mock.classList.remove('swapping');\n      });\n    };\n    preload.onerror = function() {\n      mainImg.src = src;\n      mock.classList.remove('swapping');\n    };\n    preload.src = src;\n \n    \/\/ Active state\n    strip.querySelectorAll('.rl-fh-strip-item').forEach(function(t) { t.classList.remove('active'); });\n    thumb.classList.add('active');\n  });\n})();\n \n\/* =================================================================\n   INLINE VIDEO STRIP + LIGHTBOX\n   - Small thumb cards autoplay muted\/loop\n   - Tap to expand into 9:16 lightbox with sound + prev\/next nav\n   ================================================================= *\/\n(function() {\n  var strip = document.getElementById('rlFhVidstrip');\n  if (!strip) return;\n \n  var cards = Array.prototype.slice.call(strip.querySelectorAll('.rl-fh-vidstrip-card'));\n  var sources = cards.map(function(c) { return c.getAttribute('data-vid'); });\n \n  \/\/ Try to autoplay every thumb video (muted)\n  cards.forEach(function(card) {\n    var v = card.querySelector('video');\n    if (!v) return;\n    v.muted = true;\n    var p = v.play();\n    if (p \u0026\u0026 typeof p.catch === 'function') p.catch(function() {});\n  });\n \n  \/\/ Build lightbox once\n  var lb = document.createElement('div');\n  lb.className = 'rl-fh-vidlb-backdrop';\n  lb.id = 'rlFhVidlb';\n  lb.innerHTML = ''\n    + '\u003cbutton type=\"button\" class=\"rl-fh-vidlb-nav prev\" id=\"rlFhVidlbPrev\" aria-label=\"Previous\"\u003e\\u2039\u003c\/button\u003e'\n    + '\u003cdiv class=\"rl-fh-vidlb-card\"\u003e'\n    +   '\u003cbutton type=\"button\" class=\"rl-fh-vidlb-close\" id=\"rlFhVidlbClose\" aria-label=\"Close\"\u003e\\u00D7\u003c\/button\u003e'\n    +   '\u003cvideo id=\"rlFhVidlbVideo\" controls playsinline preload=\"metadata\"\u003e\u003c\/video\u003e'\n    + '\u003c\/div\u003e'\n    + '\u003cbutton type=\"button\" class=\"rl-fh-vidlb-nav next\" id=\"rlFhVidlbNext\" aria-label=\"Next\"\u003e\\u203A\u003c\/button\u003e';\n  document.body.appendChild(lb);\n \n  var lbVideo = lb.querySelector('#rlFhVidlbVideo');\n  var lbClose = lb.querySelector('#rlFhVidlbClose');\n  var lbPrev = lb.querySelector('#rlFhVidlbPrev');\n  var lbNext = lb.querySelector('#rlFhVidlbNext');\n  var currentIdx = 0;\n \n  function openAt(i) {\n    currentIdx = (i + sources.length) % sources.length;\n    lbVideo.src = sources[currentIdx];\n    lbVideo.muted = false;\n    lb.classList.add('open');\n    document.body.style.overflow = 'hidden';\n    var p = lbVideo.play();\n    if (p \u0026\u0026 typeof p.catch === 'function') p.catch(function() {});\n  }\n  function close() {\n    lb.classList.remove('open');\n    document.body.style.overflow = '';\n    try { lbVideo.pause(); lbVideo.removeAttribute('src'); lbVideo.load(); } catch(e) {}\n  }\n \n  cards.forEach(function(card, i) {\n    card.addEventListener('click', function() { openAt(i); });\n  });\n  lbClose.addEventListener('click', close);\n  lb.addEventListener('click', function(e) { if (e.target === lb) close(); });\n  lbPrev.addEventListener('click', function() { openAt(currentIdx - 1); });\n  lbNext.addEventListener('click', function() { openAt(currentIdx + 1); });\n  document.addEventListener('keydown', function(e) {\n    if (!lb.classList.contains('open')) return;\n    if (e.key === 'Escape') close();\n    if (e.key === 'ArrowLeft') openAt(currentIdx - 1);\n    if (e.key === 'ArrowRight') openAt(currentIdx + 1);\n  });\n})();\n \n\/* =================================================================\n   REVIEWS ENGINE \\u2014 data-driven cards, photo support, load-more,\n   write-a-review modal with star rating + photo upload.\n   ================================================================= *\/\n(function() {\n  \/\/ -------- Data: edit names, dates, text, and photos[] freely --------\n  \/\/ Photos are URLs. Drop them into your Shopify Files area and paste the\n  \/\/ URLs in here (right-click image \u003e Copy link in Shopify admin).\n  \/\/ First 18 entries have an empty photos[] slot ready for you to fill in.\n  var REVIEWS = [\n    { name: \"Hannah D.\", initial: \"H\", stars: 5, date: \"2025-09-01\", title: \"Wish I'd found this years ago\",\n      text: \"I had quietly accepted that I was going to wax my chin every Saturday for the rest of my life. After 6 weeks of Hormone Balance+ the regrowth is so much finer and lighter \\u2014 I'm honestly shocked.\",\n      photos: [] },\n    { name: \"Mia A.\", initial: \"M\", stars: 5, date: \"2025-09-01\", title: \"Tastes like candy, actually works\",\n      text: \"Tastes like strawberry candy and actually works. By month two my upper lip went from a daily tweezer routine to barely anything visible. Confidence boost is real.\",\n      photos: [] },\n    { name: \"Chloe C.\", initial: \"C\", stars: 5, date: \"2025-08-19\", title: \"Brought me back after kids\",\n      text: \"After two kids my hormones were everywhere \\u2014 including chin hair I'd never had before. Hormone Balance+ rebalanced something. My skin looks clearer and I'm not constantly checking the mirror.\",\n      photos: [] },\n    { name: \"Grace B.\", initial: \"G\", stars: 5, date: \"2025-09-01\", title: \"PCOS finally calming down\",\n      text: \"It's like someone flipped a switch. The PCOS-related facial hair is finally calming down. Easy to take, no jitters, no weird side effects.\",\n      photos: [] },\n    { name: \"Lena K.\", initial: \"L\", stars: 5, date: \"2025-08-31\", title: \"Smoother skin overall\",\n      text: \"Less razor burn, less ingrown hairs, smoother skin overall. Honestly didn't expect a gummy to do this much. Reordering.\",\n      photos: [] },\n    { name: \"Emily H.\", initial: \"E\", stars: 5, date: \"2025-09-01\", title: \"Reminded me how it feels to feel good\",\n      text: \"I didn't expect much \\u2014 I just wanted to try anything that wasn't a laser appointment. After a few weeks I noticed the hair coming back lighter and softer. Even my husband said my skin looks brighter.\",\n      photos: [] },\n    { name: \"Sophia R.\", initial: \"S\", stars: 5, date: \"2025-08-28\", title: \"Genuinely shocked\",\n      text: \"I'm not someone who writes reviews. But this actually worked. The hair on my chin is finer. My skin looks better. I'll be a customer for a while.\",\n      photos: [] },\n    { name: \"Olivia T.\", initial: \"O\", stars: 5, date: \"2025-08-26\", title: \"Subscribed already\",\n      text: \"Subscribed after the first bottle. The price ends up being nothing compared to waxing every 3 weeks. And no pain.\",\n      photos: [] },\n    { name: \"Ava P.\", initial: \"A\", stars: 5, date: \"2025-08-25\", title: \"My partner noticed\",\n      text: \"Started taking these because of perimenopause stuff. The chin hair has slowed down a lot and my partner actually said my skin looked brighter without me telling him.\",\n      photos: [] },\n    { name: \"Jess W.\", initial: \"J\", stars: 5, date: \"2025-08-22\", title: \"Easy daily ritual\",\n      text: \"I can stick to it because they taste like real strawberry, not vitamins. 2 in the morning and I'm done.\",\n      photos: [] },\n    { name: \"Maddie F.\", initial: \"M\", stars: 5, date: \"2025-08-20\", title: \"Less ingrowns, big win\",\n      text: \"The ingrown hair situation on my chin and neck has basically disappeared. That alone is worth it.\",\n      photos: [] },\n    { name: \"Ruby L.\", initial: \"R\", stars: 5, date: \"2025-08-18\", title: \"Confidence is back\",\n      text: \"I used to constantly check my chin in the car mirror. I haven't done that in weeks. That's the real shift for me.\",\n      photos: [] },\n    { name: \"Ella N.\", initial: \"E\", stars: 5, date: \"2025-08-15\", title: \"Skin clarity bonus\",\n      text: \"Came for the hair, stayed for the skin. My breakouts around my jaw have calmed right down too.\",\n      photos: [] },\n    { name: \"Tilly J.\", initial: \"T\", stars: 5, date: \"2025-08-13\", title: \"Worth every cent\",\n      text: \"Compared to what I've spent on laser packages that didn't work, this is honestly a joke price. Should be more.\",\n      photos: [] },\n    { name: \"Nina B.\", initial: \"N\", stars: 4, date: \"2025-08-10\", title: \"Slow but real\",\n      text: \"Took longer for me \\u2014 about 9 weeks before I really noticed. But the regrowth is much finer now. Patience required.\",\n      photos: [] },\n    { name: \"Harper M.\", initial: \"H\", stars: 5, date: \"2025-08-08\", title: \"Postpartum hormones\",\n      text: \"Started growing dark hairs on my chin after my second baby and I was devastated. Hormone Balance+ has been the only thing that's helped.\",\n      photos: [] },\n    { name: \"Zara K.\", initial: \"Z\", stars: 5, date: \"2025-08-05\", title: \"Game changer for PCOS\",\n      text: \"Have PCOS, have tried spironolactone, didn't agree with me. This has actually helped without messing me around.\",\n      photos: [] },\n    { name: \"Layla H.\", initial: \"L\", stars: 5, date: \"2025-08-02\", title: \"Skin glow is real\",\n      text: \"My skin texture is the smoothest it's been in years. Hair growth is also slower but the skin thing surprised me most.\",\n      photos: [] },\n    { name: \"Madeline P.\", initial: \"M\", stars: 5, date: \"2025-07-30\", title: \"Will reorder forever\",\n      text: \"Three bottles in. The change is undeniable now. I'll be reordering forever.\",\n      photos: [] },\n    { name: \"Bree S.\", initial: \"B\", stars: 5, date: \"2025-07-28\", title: \"Stopped tweezing daily\",\n      text: \"I used to tweeze every single morning. Now maybe twice a week. Huge.\",\n      photos: [] },\n    { name: \"Indie A.\", initial: \"I\", stars: 4, date: \"2025-07-25\", title: \"Took 6 weeks but worth it\",\n      text: \"Was about to give up at week 4. So glad I didn't. By week 6 the change kicked in properly.\",\n      photos: [] },\n    { name: \"Anna G.\", initial: \"A\", stars: 5, date: \"2025-07-22\", title: \"Hormonal acne also better\",\n      text: \"The hair stuff has been great but my hormonal acne has also calmed down a lot. Wasn't expecting that.\",\n      photos: [] },\n    { name: \"Pippa C.\", initial: \"P\", stars: 5, date: \"2025-07-19\", title: \"No side effects\",\n      text: \"Have been on it 8 weeks. No side effects, no headaches, no breakouts. Just gradual smoother skin.\",\n      photos: [] },\n    { name: \"Romy V.\", initial: \"R\", stars: 5, date: \"2025-07-16\", title: \"Genuinely better than laser\",\n      text: \"I had multiple laser sessions years ago that wore off. This is gentler and the results have actually held.\",\n      photos: [] },\n    { name: \"Stella K.\", initial: \"S\", stars: 5, date: \"2025-07-13\", title: \"Recommended to my sister\",\n      text: \"Already convinced my sister to order. We both deal with the same chin hair issue. So glad something exists.\",\n      photos: [] },\n    { name: \"Teagan O.\", initial: \"T\", stars: 5, date: \"2025-07-10\", title: \"Daily routine, easy\",\n      text: \"Two gummies with breakfast and I forget about it. Easiest routine I've ever stuck to.\",\n      photos: [] },\n    { name: \"Imogen R.\", initial: \"I\", stars: 5, date: \"2025-07-07\", title: \"Shipping was fast\",\n      text: \"Order arrived in 4 days. Packaging was cute and discreet. First bottle in.\",\n      photos: [] },\n    { name: \"Frankie B.\", initial: \"F\", stars: 5, date: \"2025-07-04\", title: \"Surprised honestly\",\n      text: \"Skeptical at first. But the regrowth is genuinely lighter and slower. I'm sold.\",\n      photos: [] },\n    { name: \"Daisy E.\", initial: \"D\", stars: 4, date: \"2025-07-01\", title: \"Working but slow start\",\n      text: \"Took a while to kick in. Around week 5 things shifted. Sticking with it.\",\n      photos: [] },\n    { name: \"Niamh O.\", initial: \"N\", stars: 5, date: \"2025-06-28\", title: \"Smoother than waxing\",\n      text: \"My skin feels smoother than it ever did right after waxing. And without the redness.\",\n      photos: [] },\n    { name: \"Cleo D.\", initial: \"C\", stars: 5, date: \"2025-06-24\", title: \"Real customer real review\",\n      text: \"I've never written a review for anything online. But this product deserves it. Thank you.\",\n      photos: [] },\n    { name: \"Marni T.\", initial: \"M\", stars: 5, date: \"2025-06-21\", title: \"Cancelled my waxing appt\",\n      text: \"I cancelled my standing waxing appointment. Saving so much time and money.\",\n      photos: [] },\n    { name: \"Vienna P.\", initial: \"V\", stars: 5, date: \"2025-06-18\", title: \"Gentle on my system\",\n      text: \"Tried supplements before that gave me bad stomach. This one didn't bother me at all.\",\n      photos: [] },\n    { name: \"Saskia R.\", initial: \"S\", stars: 5, date: \"2025-06-15\", title: \"Loved the e-book too\",\n      text: \"The free Smooth Skin Routine e-book was a lovely surprise. Lots of small things I didn't know.\",\n      photos: [] },\n    { name: \"Amelia C.\", initial: \"A\", stars: 5, date: \"2025-06-12\", title: \"Husband can't believe it\",\n      text: \"My husband walked into the bathroom and asked if I'd had something done. I just said new gummies.\",\n      photos: [] },\n    { name: \"Bella J.\", initial: \"B\", stars: 5, date: \"2025-06-10\", title: \"Best wellness buy of the year\",\n      text: \"Best wellness purchase I've made all year. Telling all my friends.\",\n      photos: [] }\n  ];\n \n  var PAGE_SIZE = 6;\n  var visibleCount = PAGE_SIZE;\n \n  \/\/ -------- Utility --------\n  function escapeHtml(s) {\n    return String(s).replace(\/[\u0026\u003c\u003e\"']\/g, function(c) {\n      return { '\u0026':'\u0026amp;', '\u003c':'\u0026lt;', '\u003e':'\u0026gt;', '\"':'\u0026quot;', \"'\":'\u0026#39;' }[c];\n    });\n  }\n \n  function formatDate(iso) {\n    if (!iso) return '';\n    var d = new Date(iso);\n    if (isNaN(d.getTime())) return iso;\n    var m = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\n    return m[d.getMonth()] + ' ' + d.getDate() + ', ' + d.getFullYear();\n  }\n \n  function starString(n) {\n    n = Math.max(0, Math.min(5, parseInt(n, 10) || 0));\n    return '\\u2605\\u2605\\u2605\\u2605\\u2605'.slice(0, n) + '\\u2606\\u2606\\u2606\\u2606\\u2606'.slice(0, 5 - n);\n  }\n \n  function reviewCard(r) {\n    var photos = '';\n    if (r.photos \u0026\u0026 r.photos.length) {\n      photos = '\u003cdiv class=\"rl-fh-rcard-photos\"\u003e' +\n        r.photos.map(function(src) {\n          return '\u003cimg class=\"rl-fh-rcard-photo\" src=\"' + escapeHtml(src) + '\" alt=\"Customer photo\" loading=\"lazy\"\u003e';\n        }).join('') +\n        '\u003c\/div\u003e';\n    }\n    var title = r.title ? '\u003cdiv class=\"rl-fh-rcard-title\"\u003e\"' + escapeHtml(r.title) + '\"\u003c\/div\u003e' : '';\n    var initial = r.initial || (r.name ? r.name[0] : '?');\n    return (\n      '\u003cdiv class=\"rl-fh-rcard\"\u003e' +\n        '\u003cdiv class=\"rl-fh-rcard-img\" data-initial=\"' + escapeHtml(initial.toUpperCase()) + '\"\u003e' +\n          '\u003cspan class=\"rl-fh-rcard-byline\"\u003e' + escapeHtml(r.name || 'Anonymous') + '\u003c\/span\u003e' +\n          '\u003cspan class=\"rl-fh-rcard-verified\"\u003e\\u2713 Verified\u003c\/span\u003e' +\n        '\u003c\/div\u003e' +\n        '\u003cdiv class=\"rl-fh-rcard-stars\"\u003e' + starString(r.stars) + '\u003c\/div\u003e' +\n        '\u003cdiv class=\"rl-fh-rcard-date\"\u003e' + escapeHtml(formatDate(r.date)) + '\u003c\/div\u003e' +\n        title +\n        '\u003cdiv class=\"rl-fh-rcard-text\"\u003e' + escapeHtml(r.text || '') + '\u003c\/div\u003e' +\n        photos +\n      '\u003c\/div\u003e'\n    );\n  }\n \n  function render() {\n    var grid = document.getElementById('rlFhReviewsGrid');\n    if (!grid) return;\n    var slice = REVIEWS.slice(0, visibleCount);\n    grid.innerHTML = slice.map(reviewCard).join('');\n \n    var loadBtn = document.getElementById('rlFhReviewsLoad');\n    var loadCount = document.getElementById('rlFhReviewsLoadCount');\n    if (loadBtn) {\n      var remaining = REVIEWS.length - visibleCount;\n      if (remaining \u003c= 0) {\n        loadBtn.setAttribute('disabled', 'disabled');\n        loadBtn.querySelector('.rl-fh-reviews-load-text').textContent = 'You\\'re all caught up';\n        if (loadCount) loadCount.textContent = '';\n      } else {\n        loadBtn.removeAttribute('disabled');\n        loadBtn.querySelector('.rl-fh-reviews-load-text').textContent = 'See More Reviews';\n        if (loadCount) loadCount.textContent = '+' + Math.min(PAGE_SIZE, remaining);\n      }\n    }\n  }\n \n  function loadMore() {\n    visibleCount = Math.min(REVIEWS.length, visibleCount + PAGE_SIZE);\n    render();\n  }\n \n  \/\/ -------- Lightbox for review photos --------\n  var lightbox;\n  function ensureLightbox() {\n    if (lightbox) return lightbox;\n    lightbox = document.createElement('div');\n    lightbox.className = 'rl-fh-lightbox';\n    lightbox.innerHTML = '\u003cimg alt=\"Customer photo\"\u003e';\n    lightbox.addEventListener('click', function() { lightbox.classList.remove('open'); });\n    document.body.appendChild(lightbox);\n    return lightbox;\n  }\n  document.addEventListener('click', function(e) {\n    var img = e.target.closest('.rl-fh-rcard-photo');\n    if (!img) return;\n    var lb = ensureLightbox();\n    lb.querySelector('img').src = img.src;\n    lb.classList.add('open');\n  });\n \n  \/\/ -------- Write a Review modal --------\n  var modal = document.getElementById('rlFhReviewModal');\n  var backdrop = document.getElementById('rlFhReviewBackdrop');\n  var openBtn = document.getElementById('rlFhWriteBtn');\n  var closeBtn = document.getElementById('rlFhReviewClose');\n  var form = document.getElementById('rlFhReviewForm');\n  var successPanel = document.getElementById('rlFhReviewSuccess');\n  var starInput = document.getElementById('rlFhStarInput');\n  var photoInput = document.getElementById('rlFhReviewPhotos');\n  var photoPreview = document.getElementById('rlFhPhotoPreview');\n  var pickedPhotos = []; \/\/ array of DataURLs\n \n  function openModal() {\n    if (!modal) return;\n    modal.classList.add('open');\n    if (backdrop) backdrop.classList.add('open');\n    modal.setAttribute('aria-hidden', 'false');\n    document.body.style.overflow = 'hidden';\n    setTimeout(function() {\n      var name = document.getElementById('rlFhReviewName');\n      if (name) name.focus();\n    }, 240);\n  }\n  function closeModal() {\n    if (!modal) return;\n    modal.classList.remove('open');\n    if (backdrop) backdrop.classList.remove('open');\n    modal.setAttribute('aria-hidden', 'true');\n    document.body.style.overflow = '';\n    \/\/ Reset success state on close\n    setTimeout(function() {\n      if (successPanel \u0026\u0026 form) {\n        successPanel.hidden = true;\n        form.style.display = '';\n      }\n    }, 300);\n  }\n \n  if (openBtn) openBtn.addEventListener('click', function(e) { e.preventDefault(); openModal(); });\n  if (closeBtn) closeBtn.addEventListener('click', closeModal);\n  if (backdrop) backdrop.addEventListener('click', closeModal);\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape' \u0026\u0026 modal \u0026\u0026 modal.classList.contains('open')) closeModal();\n  });\n \n  \/\/ Star input\n  if (starInput) {\n    var spans = starInput.querySelectorAll('span');\n    function paintStars(n) {\n      spans.forEach(function(s) {\n        var v = parseInt(s.getAttribute('data-v'), 10);\n        s.classList.toggle('active', v \u003c= n);\n      });\n    }\n    paintStars(5);\n    spans.forEach(function(s) {\n      s.addEventListener('mouseenter', function() { paintStars(parseInt(s.getAttribute('data-v'), 10)); });\n      s.addEventListener('click', function() {\n        var v = parseInt(s.getAttribute('data-v'), 10);\n        starInput.setAttribute('data-rating', v);\n        paintStars(v);\n      });\n    });\n    starInput.addEventListener('mouseleave', function() {\n      paintStars(parseInt(starInput.getAttribute('data-rating'), 10) || 5);\n    });\n  }\n \n  \/\/ Photo upload preview\n  function renderPhotoPreview() {\n    if (!photoPreview) return;\n    photoPreview.innerHTML = pickedPhotos.map(function(src, i) {\n      return (\n        '\u003cdiv class=\"rl-fh-photo-preview-item\"\u003e' +\n          '\u003cimg src=\"' + src + '\" alt=\"Photo ' + (i+1) + '\"\u003e' +\n          '\u003cbutton type=\"button\" class=\"rl-fh-photo-preview-rm\" data-i=\"' + i + '\" aria-label=\"Remove\"\u003e\\u00D7\u003c\/button\u003e' +\n        '\u003c\/div\u003e'\n      );\n    }).join('');\n  }\n  if (photoInput) {\n    photoInput.addEventListener('change', function(e) {\n      var files = Array.prototype.slice.call(e.target.files || []);\n      var slots = Math.max(0, 4 - pickedPhotos.length);\n      files.slice(0, slots).forEach(function(file) {\n        if (file.type.indexOf('image\/') !== 0) return;\n        var reader = new FileReader();\n        reader.onload = function(ev) {\n          pickedPhotos.push(ev.target.result);\n          renderPhotoPreview();\n        };\n        reader.readAsDataURL(file);\n      });\n      photoInput.value = '';\n    });\n  }\n  if (photoPreview) {\n    photoPreview.addEventListener('click', function(e) {\n      var rm = e.target.closest('.rl-fh-photo-preview-rm');\n      if (!rm) return;\n      var i = parseInt(rm.getAttribute('data-i'), 10);\n      pickedPhotos.splice(i, 1);\n      renderPhotoPreview();\n    });\n  }\n \n  \/\/ Form submit\n  if (form) {\n    form.addEventListener('submit', function(e) {\n      e.preventDefault();\n      var name = document.getElementById('rlFhReviewName').value.trim();\n      var title = document.getElementById('rlFhReviewTitle').value.trim();\n      var text = document.getElementById('rlFhReviewText').value.trim();\n      var email = document.getElementById('rlFhReviewEmail').value.trim();\n      var stars = parseInt(starInput ? starInput.getAttribute('data-rating') : '5', 10) || 5;\n \n      if (!name || !text || !email) {\n        alert('Please fill in your name, your review, and your email.');\n        return;\n      }\n \n      var review = {\n        name: name,\n        initial: (name[0] || '?').toUpperCase(),\n        stars: stars,\n        date: new Date().toISOString().slice(0, 10),\n        title: title || '',\n        text: text,\n        photos: pickedPhotos.slice()\n      };\n \n      \/\/ Prepend so the new review shows at the top\n      REVIEWS.unshift(review);\n      \/\/ Make sure the newly submitted review is visible immediately\n      visibleCount = Math.max(visibleCount + 1, PAGE_SIZE);\n      render();\n \n      \/\/ Show success panel\n      if (successPanel) {\n        form.style.display = 'none';\n        successPanel.hidden = false;\n      }\n \n      \/\/ Reset for next open\n      form.reset();\n      pickedPhotos = [];\n      renderPhotoPreview();\n      if (starInput) {\n        starInput.setAttribute('data-rating', '5');\n        starInput.querySelectorAll('span').forEach(function(s) {\n          s.classList.toggle('active', parseInt(s.getAttribute('data-v'), 10) \u003c= 5);\n        });\n      }\n \n      \/\/ NOTE: To actually persist this review server-side, POST to your\n      \/\/ own endpoint here, e.g.:\n      \/\/ fetch('\/apps\/reviews', { method:'POST', body: JSON.stringify(review) });\n    });\n  }\n \n  \/\/ Success close button\n  document.addEventListener('click', function(e) {\n    if (e.target.classList \u0026\u0026 e.target.classList.contains('rl-fh-modal-success-close')) {\n      closeModal();\n    }\n  });\n \n  \/\/ Load more wiring\n  var loadBtn = document.getElementById('rlFhReviewsLoad');\n  if (loadBtn) {\n    loadBtn.addEventListener('click', function(e) {\n      if (loadBtn.hasAttribute('disabled')) return;\n      loadMore();\n      \/\/ Smooth scroll the new batch into view\n      setTimeout(function() {\n        var grid = document.getElementById('rlFhReviewsGrid');\n        if (grid) {\n          var cards = grid.querySelectorAll('.rl-fh-rcard');\n          var firstNew = cards[Math.max(0, visibleCount - PAGE_SIZE)];\n          if (firstNew \u0026\u0026 firstNew.scrollIntoView) {\n            firstNew.scrollIntoView({ behavior: 'smooth', block: 'start' });\n          }\n        }\n      }, 50);\n    });\n  }\n \n  \/\/ Boot\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', render);\n  } else {\n    render();\n  }\n})();\n\u003c\/script\u003e\n ","brand":"Reforming Labs","offers":[{"title":"Default Title","offer_id":44923611840581,"sku":null,"price":59.99,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0691\/8415\/9813\/files\/H2.png?v=1777334181","url":"https:\/\/reforminglabs.com\/products\/r-gummies","provider":"Reforming Labs","version":"1.0","type":"link"}