/* Legal - William R. Sherry · River Song Heart and Spirit */
const { useState } = React;

const SECTIONS = [
  { id: "privacy", title: "Privacy Policy", body: [
    { kind: "p", text: "Last Updated: September 2026" },
    { kind: "p", text: "William R. Sherry and River Song Heart and Spirit (\"I,\" \"me,\" or \"my\") are committed to protecting your privacy. The people who reach out here are often sharing deeply personal things. Confidentiality is one of the foundations of this work, and I handle your information accordingly." },
    { kind: "p", text: "By using this website or participating in any coaching offering, you consent to the practices described in this policy. If anything is unclear, reach out directly. I'd rather explain it plainly than hide behind legal language." },
  ] },
  { id: "info-collect", title: "Information We Collect", body: [
    { kind: "p", text: "I collect information you provide directly and information gathered automatically through your use of this website:" },
    { kind: "li", text: "Personal Data: Name, email, phone, and contact details from booking, the contact form, email signups, or purchase." },
    { kind: "li", text: "Coaching Session Information: Notes and records, kept strictly confidential and never shared." },
    { kind: "li", text: "Payment Information: Processed through secure third-party processors. I do not store full card information." },
    { kind: "li", text: "Usage Data: Standard analytics (pages visited, time on site, device type) used only to improve the website." },
    { kind: "li", text: "Cookies: Small data files that enhance your browsing experience. You may disable them in your browser settings." },
  ] },
  { id: "info-use", title: "How We Use Your Information", body: [
    { kind: "p", text: "Your information is used only to serve you well. Specifically:" },
    { kind: "li", text: "To provide coaching services and program delivery" },
    { kind: "li", text: "To process bookings, enrollments, and payments" },
    { kind: "li", text: "To respond personally to your questions and messages" },
    { kind: "li", text: "To send emails you've opted into (you may unsubscribe at any time)" },
    { kind: "li", text: "To improve this website and the quality of River Song Heart and Spirit offerings" },
    { kind: "li", text: "To comply with applicable legal obligations" },
    { kind: "p", text: "I do not sell, rent, or share your personal information with third parties for marketing purposes. Ever." },
  ] },
  { id: "terms", title: "Terms of Service", body: [
    { kind: "p", text: "Last Updated: September 2026" },
    { kind: "p", text: "By accessing this site or its services, you agree to these Terms. Lawful use only; no commercial reproduction without explicit written permission; you are responsible for the security of any account credentials." },
    { kind: "p", text: "All content on this website, including text, frameworks (such as The River Song Way), teachings, and program materials, is the intellectual property of William R. Sherry and River Song Heart and Spirit and may not be reproduced, distributed, or used without permission." },
    { kind: "p", text: "Behavior that is disrespectful, harmful, or contrary to the well-being of others in any shared spaces (such as the Learning to Talk Again couples group, once open) may result in termination of services without refund." },
    { kind: "p", text: "These terms may be updated from time to time. Continued use of this website or these services after changes constitutes acceptance of the revised terms." },
  ] },
  { id: "coaching", title: "Coaching Disclaimer", body: [
    { kind: "p", text: "William R. Sherry and River Song Heart and Spirit provide faith-based life coaching. Coaching is not therapy, counseling, psychiatry, or any form of licensed mental health treatment. I am not a licensed therapist, psychologist, counselor, or medical professional." },
    { kind: "p", text: "The work we do together helps people slow down, identify root-level patterns (lies believed, family patterns, shame, self-doubt), and build Scripture-grounded, grace-first practices for lasting change. It is designed to complement, not replace, professional mental health care." },
    { kind: "p", text: "If you are experiencing a mental health crisis, suicidal thoughts, or acute trauma symptoms, please contact a licensed mental health professional or call or text 988 immediately. I encourage clients in counseling to continue alongside coaching." },
    { kind: "p", text: "Results from coaching vary based on individual circumstances, commitment, and willingness to engage in the process. Stories shared on this site reflect individual experiences and are not guarantees of specific outcomes." },
  ] },
  { id: "refund", title: "Refund Policy", body: [
    { kind: "p", text: "Refunds are considered on a case-by-case basis within the first 30 days of program enrollment." },
    { kind: "li", text: "1:1 Coaching (Wherever You Go): If within 30 days the coaching isn't the right fit for reasons within my control, email me and we'll have an honest conversation about a refund." },
    { kind: "li", text: "Couples Group (Learning to Talk Again): Once open, prorated refunds are available within the first 30 days of the group start. Enrollment is otherwise non-refundable due to limited group size." },
    { kind: "li", text: "Self-Paced Journey (Monday Morning): Once open, due to the immediate digital-access nature of the offering, refunds will not be available after enrollment. Contact me right away with any technical issues and I will resolve them." },
    { kind: "p", text: "No refunds after 30 days or for missed sessions due to client conflicts. Free Riverside Chats carry no purchase obligation." },
  ] },
  { id: "contact", title: "Contact Information", body: [
    { kind: "p", text: "Questions about these policies? Concerns about how your information is used? Reach out directly:" },
    { kind: "li", text: "Email: riversongheartandspirit@gmail.com" },
    { kind: "li", text: "Practice: River Song Heart and Spirit (serving clients remotely)" },
    { kind: "li", text: "Response Time: 24–48 hours, personally. No bots, no team." },
  ] },
];

function App() {
  const [active, setActive] = useState("privacy");
  const section = SECTIONS.find((s) => s.id === active);
  return (
    <>
      <Nav current="" />
      <main>
        <PageHero
          eyebrow="Legal"
          title="Terms &"
          italic="privacy."
          subtitle="The fine print, kept honest and plain. Integrity and trust are the underpinnings of this work, and that includes how I handle your information and what you can expect from working with me. If anything is unclear, ask. I'd rather explain it directly."
        />
        <section className="section" style={{ background: "var(--cream)", paddingTop: 20 }}>
          <div className="container" style={{ display: "grid", gridTemplateColumns: "1fr 2.4fr", gap: 64, alignItems: "start" }}>
            <aside style={{ position: "sticky", top: 120 }}>
              <div className="smallcaps" style={{ color: "var(--terracotta)", marginBottom: 16 }}>✦ Quick navigation</div>
              <ol style={{ listStyle: "none", display: "flex", flexDirection: "column", gap: 0, borderTop: "1px solid var(--rule)" }}>
                {SECTIONS.map((s, i) => (
                  <li key={s.id}>
                    <button onClick={() => setActive(s.id)} style={{ background: "transparent", border: "none", display: "flex", gap: 14, alignItems: "center", width: "100%", padding: "14px 0", borderBottom: "1px solid var(--rule)", cursor: "pointer", textAlign: "left", color: active === s.id ? "var(--terracotta)" : "var(--walnut)" }}>
                      <span className="mono" style={{ fontSize: 11, color: "var(--terracotta)" }}>{String(i + 1).padStart(2, "0")}</span>
                      <span className="grotesk" style={{ fontSize: 14.5, fontWeight: active === s.id ? 500 : 400 }}>{s.title}</span>
                      {active === s.id && <span style={{ marginLeft: "auto", color: "var(--terracotta)" }}>→</span>}
                    </button>
                  </li>
                ))}
              </ol>
            </aside>
            <div>
              <article>
                <div className="smallcaps" style={{ color: "var(--terracotta)", marginBottom: 12 }}>Section · {section.id}</div>
                <h2 className="display" style={{ fontSize: "clamp(40px, 5vw, 64px)", color: "var(--walnut)", lineHeight: 0.98, fontWeight: 500, marginBottom: 40 }}>{section.title}</h2>
                <div style={{ maxWidth: 740, fontSize: 17, lineHeight: 1.7, color: "var(--walnut-soft)" }}>
                  {section.body.map((b, i) => b.kind === "li"
                    ? <div key={i} style={{ display: "grid", gridTemplateColumns: "32px 1fr", gap: 12, padding: "12px 0", borderBottom: "1px solid var(--rule)" }}>
                        <span className="mono" style={{ fontSize: 11, color: "var(--terracotta)", paddingTop: 6 }}>{String(i + 1).padStart(2, "0")}</span>
                        <p style={{ overflowWrap: "anywhere" }}>{b.text}</p>
                      </div>
                    : <p key={i} style={{ marginBottom: 22 }}>{b.text}</p>
                  )}
                </div>
              </article>
            </div>
          </div>
        </section>
      </main>
      <Footer />
      <PaletteTweaksPanel />
    </>
  );
}

ReactDOM.createRoot(document.getElementById("root")).render(<App />);
