/* DOMINANCE — Legal pages: Terms · Privacy · Refund · Pricing · Contact

   These five exist for two reasons. Stripe will not finish account review
   without them, and a buyer who is about to hand over a card looks for them.
   One component, five documents, selected by route.

   ⚠️ ENTITY PLACEHOLDERS — fill at RCS immatriculation. Until the company is
   on the register there is no RCS number and no VAT number, so they are left
   as visible blanks rather than invented. Search "TODO-RCS" before launch. */

const LEGAL_ENTITY = {
  name: "DOMINANCE S.à r.l.-S",
  address: "17 rue Dr Herr, L-9048 Ettelbruck, Luxembourg",
  email: "nik@dominance.business",
  rcs: "TODO-RCS",           // e.g. "B 123456"
  vat: "TODO-RCS",           // e.g. "LU12345678"
  updated: "9 August 2026",
};

const LEGAL_DOCS = {
  terms: {
    eyebrow: "TERMS OF SERVICE",
    title: "Terms of Service",
    lede:
      "These terms govern the outbound lead generation service provided by " +
      LEGAL_ENTITY.name + ". Signing a Service Agreement means accepting them.",
    sections: [
      {
        h: "1 · Who you are contracting with",
        p: [
          LEGAL_ENTITY.name + ", a simplified private limited company registered in Luxembourg, " +
            "registered office " + LEGAL_ENTITY.address + ". Trade and Companies Register (RCS Luxembourg) " +
            "number " + LEGAL_ENTITY.rcs + ". VAT number " + LEGAL_ENTITY.vat + ". Referred to below as " +
            "“the Provider”, “we” or “us”.",
          "These terms apply alongside the signed Service Agreement. Where the two differ, the signed " +
            "Service Agreement takes precedence.",
        ],
      },
      {
        h: "2 · What the service is",
        p: [
          "We build and operate cold email outbound infrastructure on the client's behalf: sending domains " +
            "and inboxes, inbox warmup, lead sourcing and verification, email copy, reply handling, prospect " +
            "qualification, and booking qualified prospects into the client's calendar.",
          "The deliverable is qualified calls that show up. We do not sell software, mailing lists, or " +
            "guaranteed outcomes.",
        ],
      },
      {
        h: "3 · What we do not promise",
        p: [
          "There is no guarantee of a number of calls, meetings, replies, or closed deals. We commit to the " +
            "volume of work set out in the Service Agreement — domains, inboxes, sending volume, leads " +
            "sourced and scripts written — which is a commitment of effort, not of result.",
          "Any figure shown anywhere on this site is arithmetic or an illustration, never a forecast of what " +
            "a particular client will achieve.",
        ],
      },
      {
        h: "4 · What a qualified call means",
        p: [
          "Before any email is sent, the client defines in writing what makes a call qualified — industry, " +
            "company size, revenue, role, and disqualifiers. We work to that written definition.",
          "A call is billable when the prospect matches that definition, holds the seniority to buy, attends " +
            "for at least fifteen minutes, and the attendance is evidenced by a recording. A no-show is not " +
            "billable. A prospect who attends but does not buy is billable.",
          "If a booking does not match the client's written criteria, the client flags it and does not pay for " +
            "it. No evidence is required from the client and the client's judgement is final.",
        ],
      },
      {
        h: "5 · Payment",
        p: [
          "The monthly technology fee is charged in advance on the billing anniversary. Per-call fees are " +
            "invoiced weekly in arrears, for qualified calls that showed up during that week, evidenced by a " +
            "recording. A statement goes out on Friday; the client has 48 hours to dispute a line; the " +
            "undisputed balance is charged the following Tuesday.",
          "Nothing is invoiced without a recording attached. Payment is taken by card through our payment " +
            "processor, or by bank transfer where agreed in the Service Agreement.",
          "If the technology fee is unpaid three days past its due date, sending is paused while the " +
            "infrastructure stays live. Access resumes on payment.",
        ],
      },
      {
        h: "6 · Term and cancellation",
        p: [
          "The initial term is thirty days of active work. After that the engagement runs month to month.",
          "Either party may cancel with written notice before the next billing anniversary. Cancellation stops " +
            "future technology fees. Qualified calls that already showed up before cancellation remain payable.",
          "There is no long-term contract, no minimum number of months, and no cancellation penalty.",
        ],
      },
      {
        h: "7 · The client's responsibilities",
        p: [
          "The client supplies the information requested in onboarding, approves the qualification criteria and " +
            "the email copy, keeps a booking calendar with available slots, and attends the calls booked.",
          "The client is responsible for their own sales conversations and for what they sell. We do not advise " +
            "on the client's product, pricing, or professional obligations.",
        ],
      },
      {
        h: "8 · Sending in the client's name",
        p: [
          "Cold email is sent from lookalike domains registered for the engagement, never from the client's " +
            "primary domain. Every email carries an opt-out line and the client's physical business address. " +
            "Opt-outs are honoured and suppressed across all future campaigns.",
          "The client warrants that the offer being marketed is lawful and accurately described.",
        ],
      },
      {
        h: "9 · Confidentiality and ownership",
        p: [
          "Each party keeps the other's non-public information confidential. Lead lists, email copy and " +
            "campaign data produced for a client are that client's, and are never reused for another client.",
          "The methods, templates, tooling and internal processes we use to produce them remain ours.",
        ],
      },
      {
        h: "10 · Liability",
        p: [
          "Our total liability under the engagement is limited to the fees paid by the client in the three " +
            "months preceding the event giving rise to the claim. We are not liable for indirect or " +
            "consequential loss, including lost profits or lost opportunity.",
          "Nothing here limits liability that cannot be limited under Luxembourg law.",
        ],
      },
      {
        h: "11 · Governing law",
        p: [
          "These terms are governed by the laws of the Grand Duchy of Luxembourg. The courts of Luxembourg " +
            "City have exclusive jurisdiction.",
        ],
      },
    ],
  },

  privacy: {
    eyebrow: "PRIVACY POLICY",
    title: "Privacy Policy",
    lede:
      "How " + LEGAL_ENTITY.name + " handles personal data — yours as a visitor or client, and " +
      "that of the business contacts we email on a client's behalf.",
    sections: [
      {
        h: "1 · Controller",
        p: [
          LEGAL_ENTITY.name + ", " + LEGAL_ENTITY.address + ", is the data controller for the data described " +
            "in sections 2 and 3. Contact: " + LEGAL_ENTITY.email + ".",
          "For the outbound campaigns we run on a client's behalf, the client is the controller and we act as " +
            "processor under the Service Agreement.",
        ],
      },
      {
        h: "2 · If you apply through this site",
        p: [
          "The application form collects your name, business email, company, role, website, and your answers " +
            "about your business — revenue range, deal size, sales capacity and what you sell. If you book " +
            "a call we also hold the booking details.",
          "We use it to decide whether we can help you, to prepare for the call, and to contact you about it. " +
            "The legal basis is our legitimate interest in assessing and responding to a business enquiry, and " +
            "the steps taken at your request before entering a contract.",
          "Applications are kept for 24 months and then deleted. If you become a client, records are kept for " +
            "the period required by Luxembourg commercial and tax law.",
        ],
      },
      {
        h: "3 · Call recordings",
        p: [
          "Calls are recorded and transcribed. The recording is the evidence that a call happened and that it " +
            "met the agreed criteria — it is what an invoice line is built on.",
          "The booking confirmation states this before the call, and consent is requested there. If you do not " +
            "consent, the call is not recorded and cannot be billed as a qualified call.",
        ],
      },
      {
        h: "4 · Business contacts we email for clients",
        p: [
          "On a client's instruction we email business contacts at their business addresses about a business " +
            "matter. The data — name, business email, company, role, public firmographic information — " +
            "comes from licensed B2B data providers and public sources.",
          "The legal basis is the legitimate interest of the client and the recipient's own business in a " +
            "relevant B2B offer. Every message says who is writing, gives a physical business address, and " +
            "carries a plain opt-out.",
          "An opt-out is honoured and the address is added to a suppression list so no future campaign reaches " +
            "it. To be removed, reply STOP to any message or write to " + LEGAL_ENTITY.email + ".",
        ],
      },
      {
        h: "5 · Who we share data with",
        p: [
          "Service providers who process data on our instruction: our outbound platform, email infrastructure, " +
            "calendar and scheduling, meeting recording, cloud storage, and our payment processor. Each is " +
            "bound by a data processing agreement.",
          "Some are located outside the European Economic Area. Those transfers rely on the European " +
            "Commission's standard contractual clauses or an adequacy decision.",
          "We do not sell personal data and we do not share it for anyone else's marketing.",
        ],
      },
      {
        h: "6 · Payment data",
        p: [
          "Card details are entered directly with our payment processor and are never seen or stored by us. We " +
            "hold only the billing record: what was charged, when, and whether it was paid.",
        ],
      },
      {
        h: "7 · Your rights",
        p: [
          "Under the GDPR you may request access to your data, correction, erasure, restriction, portability, " +
            "and you may object to processing based on legitimate interest — including direct marketing, " +
            "which we stop on request without exception.",
          "Write to " + LEGAL_ENTITY.email + ". You also have the right to complain to the Luxembourg " +
            "supervisory authority, the Commission nationale pour la protection des données (CNPD).",
        ],
      },
      {
        h: "8 · Cookies",
        p: [
          "This site sets no advertising or tracking cookies and runs no third-party advertising pixels. Only " +
            "storage strictly necessary to make the pages work is used.",
        ],
      },
      {
        h: "9 · Changes",
        p: [
          "If this policy changes materially, the date below changes with it. Clients are told directly.",
        ],
      },
    ],
  },

  refund: {
    eyebrow: "REFUND & CANCELLATION",
    title: "Refund & Cancellation",
    lede:
      "The short version: you can stop at any time, and a call that did not happen is never charged.",
    sections: [
      {
        h: "Cancelling",
        p: [
          "The engagement runs month to month after the first thirty days. Cancel in writing to " +
            LEGAL_ENTITY.email + " before the next billing anniversary and no further technology fee is " +
            "charged. There is no cancellation fee and no minimum term beyond the first thirty days.",
        ],
      },
      {
        h: "The monthly technology fee",
        p: [
          "The fee is charged in advance and covers infrastructure bought and operated for that month — " +
            "domains, inboxes, lead data and sending tooling. Once the month has started those costs are " +
            "committed, so the fee for a month already underway is not refundable.",
          "If we have not begun work — no domains registered, no inboxes created, no lead data purchased " +
            "— the fee is refunded in full on request.",
          "If we fail to deliver the volume of work committed in the Service Agreement for reasons within our " +
            "control, the fee for the affected month is refunded pro rata.",
        ],
      },
      {
        h: "Per-call fees",
        p: [
          "A per-call fee is only ever charged for a qualified call that actually took place, evidenced by a " +
            "recording. A no-show is never charged. A call with no recording attached is never invoiced.",
          "Every Friday you receive a statement of that week's calls. You have 48 hours to dispute any line. " +
            "A disputed line is removed — no evidence required from you, no debate — and only the " +
            "undisputed balance is charged the following Tuesday.",
          "If a charge for a call you disputed still reaches your card, it is refunded in full.",
        ],
      },
      {
        h: "How refunds are paid",
        p: [
          "Refunds go back to the original payment method within ten business days. Write to " +
            LEGAL_ENTITY.email + " and you will get a reply within one business day.",
        ],
      },
    ],
  },

  pricing: {
    eyebrow: "PRICING",
    title: "Pricing",
    lede: "Two numbers, both published. Nothing else is charged.",
    sections: [
      {
        h: "$600 per month — technology fee",
        p: [
          "Charged in advance, monthly. It buys the infrastructure the campaign runs on: around twenty sending " +
            "domains, forty inboxes, inbox warmup, lead data, verification and the sending platform. It is " +
            "cost, not margin — effectively all of it is spent on the client's setup.",
        ],
      },
      {
        h: "$250 per qualified call that shows up",
        p: [
          "Charged weekly in arrears, only for calls that actually happened and met the criteria the client " +
            "defined in writing before any email was sent.",
          "A no-show costs nothing. A call that does not match the client's criteria costs nothing — the " +
            "client flags it and it comes off the statement. A prospect who attends and does not buy is still " +
            "a qualified call and is charged.",
        ],
      },
      {
        h: "What is not charged",
        p: [
          "No setup fee. No retainer beyond the monthly technology fee. No percentage of the client's deals. " +
            "No charge for replies, leads, scripts, revisions or reporting — they are inside the monthly " +
            "fee. No long-term contract.",
        ],
      },
      {
        h: "Currency and taxes",
        p: [
          "Prices are in US dollars and exclude VAT. VAT is applied where required by Luxembourg and EU rules " +
            "depending on the client's location and status.",
        ],
      },
      {
        h: "Changes to price",
        p: [
          "Pricing may change for new clients. An existing client's per-call price stays as agreed at signing " +
            "for as long as the engagement runs without interruption.",
        ],
      },
    ],
  },

  contact: {
    eyebrow: "CONTACT",
    title: "Contact",
    lede: "One person answers everything here, usually the same day.",
    sections: [
      {
        h: "Email",
        p: [LEGAL_ENTITY.email + " — the fastest route, and the one that reaches me directly."],
      },
      {
        h: "Registered business",
        p: [
          LEGAL_ENTITY.name,
          LEGAL_ENTITY.address,
          "RCS Luxembourg " + LEGAL_ENTITY.rcs + " · VAT " + LEGAL_ENTITY.vat,
        ],
      },
      {
        h: "Support and billing",
        p: [
          "Existing clients: email, or the shared Slack channel set up at onboarding. Billing questions and " +
            "disputed call lines go to the same address and are answered within one business day.",
        ],
      },
      {
        h: "Working hours",
        p: ["Monday to Friday, 09:00–18:00 Central European Time."],
      },
    ],
  },
};

function LegalPage({ doc, navigate }) {
  const d = LEGAL_DOCS[doc];
  if (!d) return null;

  return (
    <>
      <TopNav
        wordmark={true}
        status={d.eyebrow}
        right={
          <button className="btn-ghost legal-back-top" onClick={() => navigate("/")} title="Back to the site">
            <svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor"
                 strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
              <path d="M19 12H5 M11 19l-7-7 7-7" />
            </svg>
            Back
          </button>
        }
      />

      <main className="legal-page">
        <div className="legal-wrap fade-in">
          <div className="legal-eyebrow">{d.eyebrow}</div>
          <h1 className="display legal-title">{d.title}</h1>
          <p className="lede legal-lede">{d.lede}</p>

          <div className="legal-rule" />

          {d.sections.map((s, i) => (
            <section className="legal-section" key={i}>
              <h2 className="legal-h">{s.h}</h2>
              {s.p.map((t, j) => (
                <p className="legal-p" key={j}>{t}</p>
              ))}
            </section>
          ))}

          <div className="legal-rule" />

          <div className="legal-meta">
            <span>Last updated {LEGAL_ENTITY.updated}</span>
            <span>{LEGAL_ENTITY.name} · {LEGAL_ENTITY.address}</span>
            <span>{LEGAL_ENTITY.email}</span>
          </div>

          {/* One button, and it points forward into the funnel — not back to a
              legal index. Whoever reads these pages is deciding, and the next
              thing they should see is the offer, not more small print.
              The other four documents stay reachable in the footer. */}
          <div className="legal-cta">
            <button className="btn magnetic" onClick={() => navigate("/")}>
              <span className="glint" />
              <span className="arrow">←</span>
              <span>Back to the site</span>
            </button>
          </div>
        </div>
      </main>

      <Footer />
    </>
  );
}
