/* global React, Button, Card, Badge, Section, SectionHeader, Input */ const { useState } = React; // ────────────────────────────────────────── // ROI Calculator // ────────────────────────────────────────── function ROICalculator({ industryId }) { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; const industry = window.BD.localIndustry(industryId, loc); const [callsPerDay, setCallsPerDay] = useState(industry.callsPerDay); const [missRate, setMissRate] = useState(Math.round(industry.missRate * 100)); const [avgTicket, setAvgTicket] = useState(industry.avgTicket); const [conversion, setConversion] = useState(35); React.useEffect(() => { setCallsPerDay(industry.callsPerDay); setMissRate(Math.round(industry.missRate * 100)); setAvgTicket(industry.avgTicket); }, [industry.id]); const monthlyMissed = callsPerDay * 24 * (missRate / 100); const lostBookings = monthlyMissed * (conversion / 100); const lostRevenue = lostBookings * avgTicket; const recoverable = lostRevenue * 0.78; const krw = (n) => { if (loc === 'en') return '₩' + Math.round(n).toLocaleString('en-US'); return '₩' + Math.round(n).toLocaleString('ko-KR'); }; const Slider = ({ label, value, setValue, min, max, step = 1, unit, suffix }) => (
{label}
{value.toLocaleString(loc === 'ko' ? 'ko-KR' : 'en-US')}{unit}{suffix ? ' ' + suffix : ''}
setValue(Number(e.target.value))} style={{ width: '100%', accentColor: 'var(--color-signal)', height: '4px' }}/>
); return (
{c.roi.basis(industry.fullLabel)}
{c.roi.lossLabel}
{krw(lostRevenue)}
{c.roi.lossDetail(Math.round(monthlyMissed), Math.round(lostBookings))}
{c.roi.recoverLabel}
+{krw(recoverable)}
{c.roi.recoverDetail(krw(recoverable * 12))}
); } // ────────────────────────────────────────── // Trust + Compliance strip // ────────────────────────────────────────── function TrustStrip() { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; return (
{c.trust.items.map((t, i) => (
{t.label}
{t.desc}
))}
); } // ────────────────────────────────────────── // Design Partners // ────────────────────────────────────────── function DesignPartners() { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; return (
{c.partners.slots.map((s, i) => { const ind = window.BD.localIndustry(s.vertId, loc); return (
LOGO
{ind.label}

{s.name}

{s.loc} · {c.partners.betaSuffix}
{c.partners.quote}
); })}
); } // ────────────────────────────────────────── // Pricing Inquiry // ────────────────────────────────────────── function PricingInquiry() { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; return (

{c.pricing.headline}

    {c.pricing.bullets.map((t, i) => (
  • {t}
  • ))}
{c.pricing.contactLabel}
{c.pricing.emailLabel}
hello@badeum.com
); } // ────────────────────────────────────────── // FAQ // ────────────────────────────────────────── function FAQSection() { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; const [open, setOpen] = useState(0); return (
{c.faq.items.map((item, i) => { const isOpen = open === i; return (
{item.a}
); })}
); } // ────────────────────────────────────────── // Final CTA // ────────────────────────────────────────── function FinalCTA() { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; const [submitted, setSubmitted] = useState(false); const [form, setForm] = useState({ name: '', biz: '', phone: '', vert: 'dental' }); const onSubmit = (e) => { e.preventDefault(); setSubmitted(true); }; return (
{c.cta.badge}

{c.cta.title}

{c.cta.sub}

{c.cta.meta}
{submitted ? (

{c.cta.successTitle}

{c.cta.successBody(form.name)}

) : (
setForm({ ...form, name: e.target.value })} style={{ background: 'rgba(255,255,255,0.04)', color: 'var(--color-ivory)', borderColor: 'rgba(255,255,255,0.15)' }}/> setForm({ ...form, biz: e.target.value })} style={{ background: 'rgba(255,255,255,0.04)', color: 'var(--color-ivory)', borderColor: 'rgba(255,255,255,0.15)' }}/> setForm({ ...form, phone: e.target.value })} style={{ background: 'rgba(255,255,255,0.04)', color: 'var(--color-ivory)', borderColor: 'rgba(255,255,255,0.15)' }}/>
{c.cta.formVert}

{c.cta.privacy}

)}
); } // ────────────────────────────────────────── // Footer // ────────────────────────────────────────── function Footer() { const [loc] = window.BD.useLocale(); const c = window.BD.COPY[loc]; return ( ); } function BadeumMarkFooter() { return ( ); } Object.assign(window, { ROICalculator, TrustStrip, DesignPartners, PricingInquiry, FAQSection, FinalCTA, Footer });