// Pricing.jsx — membership plans (Founding Member, Individual) + emphasis variant const phPlans = [ { id: 'founding', name: 'Founding Member', price: 70, per: '/month', badge: 'First 20 members', blurb: 'A locked-in rate for our earliest patients.', highlight: 'Free annual preventive labs', feats: ['$70/mo locked in for life', 'Everything in Individual', 'Priority onboarding & scheduling', 'A founding voice in the practice'], cta: 'Claim a founding spot', }, { id: 'individual', name: 'Individual', price: 85, per: '/month', blurb: 'For one adult (18+) who wants a provider on their side.', feats: ['Unlimited visits, no copays', 'Direct call, text & video', 'Same & next-day appointments', 'Wholesale labs & medications'], cta: 'Become a member', }, ]; // Lookup helper so other pages (enroll) can resolve a plan by id. const phPlanById = (id) => phPlans.find(p => p.id === id) || phPlans[0]; // PlanGrid renders the membership cards. In `selectable` mode the whole card is // clickable, the chosen card highlights, and the button reads "Choose this membership". // Otherwise the buttons link to enroll.html?plan= so the enroll page pre-selects. function PlanGrid({ emphasis = 'founding', selectable = false, selected = null, onSelect }) { // On mobile, selectable cards collapse to compact rows; one can be expanded at a time. const [expanded, setExpanded] = useState(null); return (
{phPlans.map(p => { const isSel = selectable && selected === p.id; const isOn = selectable ? isSel : emphasis === p.id; const isExp = expanded === p.id; // Selectable cards only ever show the real badge pill (e.g. "First 20 members"), // never the "Most popular" emphasis label. const flag = p.badge || (!selectable && isOn ? 'Most popular' : null); const pick = () => onSelect && onSelect(p.id); return (
{ if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); pick(); } }) : undefined} > {flag && {flag}} {selectable && ( )}

{p.name}

{selectable && (
${p.price}/mo
)}

{p.blurb}

${p.price} {p.per}
{p.highlight && (
{p.highlight}
)}
    {p.feats.map(f =>
  • {f}
  • )}
{selectable ? ( ) : ( {p.cta} )}
); })}
); } function Pricing({ emphasis = 'founding', showNote = true, showHead = true, tint = true }) { return (
{showHead && ( )} {showNote &&

Membership is not insurance. We recommend pairing it with a wrap-around or high-deductible plan for hospital and specialist coverage.

}
); } Object.assign(window, { Pricing, PlanGrid, phPlans, phPlanById });