// legal.jsx — Refund Policy & Privacy Policy (themed legal pages) const { useState: useStateLg, useEffect: useEffectLg, useRef: useRefLg } = React; /* Reusable legal layout: sticky table-of-contents + glass body */ function LegalPage({ route, onNav, eyebrow, title, updated, intro, sections }) { const [active, setActive] = useStateLg(sections[0].id); const refs = useRefLg({}); useEffectLg(() => { const io = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) setActive(e.target.id); }); }, { rootMargin: "-120px 0px -65% 0px", threshold: 0 }); sections.forEach(s => { const el = document.getElementById(s.id); if (el) io.observe(el); }); return () => io.disconnect(); }, [sections]); const jump = (id) => (e) => { e.preventDefault(); const el = document.getElementById(id); if (el) { const y = el.getBoundingClientRect().top + window.scrollY - 110; window.scrollTo({ top: y, behavior: "smooth" }); } }; return (
{eyebrow}

{title}

Last updated {updated} Questions? Reach us anytime in the .
{intro &&

{intro}

}
{/* TOC */}
ON THIS PAGE
{sections.map((s, i) => { const on = active === s.id; return ( {String(i + 1).padStart(2, "0")} {s.h} ); })}
{/* Body */}
{sections.map((s, i) => (
{String(i + 1).padStart(2, "0")}

{s.h}

{s.body}
))}
{/* CTA */}

Still have a question?

Our support team replies in minutes — most issues are sorted same-day.

); } /* ============================================================ REFUND POLICY ============================================================ */ function RefundPolicyPage({ onNav }) { const sections = [ { id: "ref-general", h: "General policy", body: (

No Refunds: All sales are final. We do not offer refunds or exchanges unless an exception applies as outlined below.

) }, { id: "ref-exceptions", h: "Exceptions", body: (

Non-Functionality: If the product or service you purchased does not work as described or is defective, you may be eligible for a refund.

) }, { id: "ref-process", h: "Process for refund requests", body: ( ) }, { id: "ref-refunds", h: "Refunds", body: (

Method: Approved refunds will be processed through the original payment method.

Time: Refund timing depends on your bank or payment provider.

) }, { id: "ref-none", h: "No refunds for", body: ( ) }, { id: "ref-verification", h: "Verification Service — post-delivery liability", body: (

Our Verification Service ($1,000) is considered fully rendered and complete at the moment the verified account is released or delivered to the client. By purchasing this service, you acknowledge and agree to the following:

) }, { id: "ref-changes", h: "Changes to this policy", body: (

We reserve the right to update this policy. Changes will be reflected on this page. Please check back periodically.

) }, { id: "ref-contact", h: "Contact us", body: (

For questions regarding this refund policy, contact us via our live chat support: chat.kvb.gg.

) }, ]; return ( ); } /* ============================================================ PRIVACY POLICY ============================================================ */ function PrivacyPolicyPage({ onNav }) { const sections = [ { id: "pri-intro", h: "Introduction", body: (

Welcome to KVB, a service aimed at providing tools for streaming enhancement on the Kick platform. This privacy policy outlines how we collect, use, disclose, and protect your personal information.

) }, { id: "pri-collect", h: "Information we collect", body: ( ) }, { id: "pri-use", h: "How we use your information", body: ( ) }, { id: "pri-sharing", h: "Sharing of information", body: ( ) }, { id: "pri-security", h: "Data security", body: (

We implement industry-standard security measures to protect your data, but no method is entirely secure.

) }, { id: "pri-rights", h: "User rights", body: ( ) }, { id: "pri-changes", h: "Changes to this privacy policy", body: (

We may update this policy periodically. Changes will be reflected on this page, so please check back regularly.

) }, { id: "pri-additional", h: "Additional considerations for KVB", body: ( ) }, ]; return ( ); } Object.assign(window, { RefundPolicyPage, PrivacyPolicyPage });