// CONDITIONS GÉNÉRALES DE VENTE · ACADEMY · Vente B2B (professionnels)
// Pack Lead Capture Pro + futurs kits opérationnels DIY. Droit québécois.

function LegalCgv() {
  const tr = useTr();
  const { isMobile } = useViewport();
  const { setPage } = usePage();

  return (
    <section style={{
      position: 'relative',
      paddingTop: isMobile ? 100 : 140,
      paddingBottom: isMobile ? 80 : 140,
      background: TOK.ivory,
      minHeight: '70vh',
    }}>
      <Container narrow>
        <Reveal>
          <Kicker style={{ marginBottom: 22 }}>{tr({ fr: 'Conditions générales', en: 'General terms' })}</Kicker>
          <h1 style={{
            margin: 0, fontFamily: TOK.sans, fontWeight: 500,
            fontSize: isMobile ? 'clamp(32px, 9vw, 44px)' : 'clamp(40px, 5vw, 64px)',
            lineHeight: 1.04, letterSpacing: '-0.025em', color: TOK.ink,
            textWrap: 'balance',
          }}>
            {tr({ fr: 'Conditions générales de vente.', en: 'General terms of sale.' })}
          </h1>
          <p style={{
            margin: '20px 0 0', fontFamily: TOK.sans,
            fontSize: isMobile ? 16 : 18, lineHeight: 1.6,
            color: TOK.inkSoft, textWrap: 'pretty', maxWidth: 640,
          }}>
            {tr({
              fr: 'Nos prestations sont destinées exclusivement à des professionnels. Toute commande implique l\'acceptation entière des présentes conditions.',
              en: 'Our services are intended exclusively for professionals. Any order implies full acceptance of these terms.',
            })}
          </p>
        </Reveal>

        <Reveal delay={2}>
          <div style={{ marginTop: isMobile ? 36 : 56, display: 'flex', flexDirection: 'column', gap: isMobile ? 32 : 40 }}>

            <LegalBlock label={tr({ fr: '1. Objet', en: '1. Purpose' })}>
              {tr({
                fr: 'Les présentes régissent la fourniture des kits opérationnels téléchargeables de 228 ACADEMY (notamment Pack Lead Capture Pro) et, le cas échéant, des prestations subséquentes (mini-formations, accompagnement Mastery, accès au cercle).',
                en: 'These terms govern the provision of downloadable operational kits from 228 ACADEMY (including Lead Capture Pro Pack) and, where applicable, subsequent services (mini-courses, Mastery support, circle access).',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '2. Tarif', en: '2. Price' })}>
              {tr({
                fr: 'Pack Lead Capture Pro · 47 USD, paiement unique, mises à jour incluses. Le tarif est ferme à la commande. Les taxes applicables (TPS, TVQ) s\'ajoutent le cas échéant et figurent sur la facture.',
                en: 'Lead Capture Pro Pack · 47 USD, one-time payment, updates included. The price is firm at order. Applicable taxes (GST, QST) are added where relevant and appear on the invoice.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '3. Paiement', en: '3. Payment' })}>
              {tr({
                fr: 'Le règlement s\'effectue par Stripe, plateforme de paiement sécurisée. Aucune donnée bancaire n\'est conservée par nos systèmes.',
                en: 'Payment is made via Stripe, a secure payment platform. No banking data is stored by our systems.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '4. Livraison', en: '4. Delivery' })}>
              {tr({
                fr: 'Le kit est livré par téléchargement immédiat après confirmation du paiement. Un courriel de confirmation contient le lien de téléchargement et l\'accès au journal de mise à jour.',
                en: 'The kit is delivered by immediate download after payment confirmation. A confirmation email contains the download link and access to the update log.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '5. Engagement de moyens', en: '5. Best-efforts obligation' })}>
              {tr({
                fr: 'Les kits opérationnels constituent un transfert de méthode documentée. Il s\'agit d\'une obligation de moyens : nous transmettons les outils et les modes d\'emploi utilisés en interne, sans garantir de résultat commercial spécifique chez l\'acquéreur.',
                en: 'Operational kits constitute a transfer of documented method. It is a best-efforts obligation: we transmit the tools and usage instructions used internally, without guaranteeing a specific commercial outcome for the buyer.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '6. Rétractation et remboursement', en: '6. Withdrawal and refund' })}>
              {tr({
                fr: 'La vente s\'adresse à des professionnels. Aucun droit de rétractation légal ne s\'applique. Le contenu numérique étant livré immédiatement après le paiement, aucun remboursement n\'est possible une fois le téléchargement initié. En cas d\'erreur technique empêchant le téléchargement, un remboursement intégral peut être consenti sur demande écrite à info@228academy.com.',
                en: 'The sale is intended for professionals. No statutory withdrawal right applies. As digital content is delivered immediately after payment, no refund is possible once download has been initiated. In case of a technical error preventing download, a full refund may be granted on written request to info@228academy.com.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '7. Mises à jour', en: '7. Updates' })}>
              {tr({
                fr: 'Chaque kit acheté donne accès aux versions ultérieures publiées par 228 ACADEMY. L\'accès se fait via le lien de téléchargement initial, qui pointe toujours sur la version courante.',
                en: 'Each purchased kit grants access to subsequent versions published by 228 ACADEMY. Access is via the initial download link, which always points to the current version.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '8. Confidentialité', en: '8. Confidentiality' })}>
              {tr({
                fr: 'Les informations transmises lors de l\'achat sont traitées en stricte confidentialité. Aucune donnée client ne sort de notre périmètre sans autorisation explicite.',
                en: 'Information shared during purchase is processed in strict confidentiality. No customer data leaves our perimeter without explicit authorisation.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '9. Propriété intellectuelle et licence d\'usage', en: '9. Intellectual property and usage licence' })}>
              {tr({
                fr: 'Les kits opérationnels et leurs contenus restent la propriété intellectuelle de 228 ACADEMY. L\'achat confère une licence d\'usage non transférable au sein de l\'entreprise acquéreuse. Toute revente, redistribution ou diffusion publique du contenu est interdite.',
                en: 'Operational kits and their contents remain the intellectual property of 228 ACADEMY. Purchase grants a non-transferable usage licence within the acquiring company. Any resale, redistribution or public diffusion of the content is prohibited.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '10. Responsabilité', en: '10. Liability' })}>
              {tr({
                fr: 'Notre responsabilité est limitée au montant payé pour la prestation concernée. Nous ne saurions être tenus responsables des dommages indirects, des pertes de bénéfices ou des conséquences d\'une décision prise sur la base du contenu du kit.',
                en: 'Our liability is limited to the amount paid for the relevant service. We cannot be held liable for indirect damages, loss of profits or consequences of decisions made on the basis of the kit content.',
              })}
            </LegalBlock>

            <LegalBlock label={tr({ fr: '11. Droit applicable et juridiction', en: '11. Applicable law and jurisdiction' })}>
              {tr({
                fr: 'Les présentes sont régies par le droit du Québec (Canada). Tout différend relèvera, à défaut de règlement amiable, des tribunaux compétents du district de Montréal.',
                en: 'These terms are governed by the laws of Quebec (Canada). Any dispute shall, failing amicable settlement, fall under the jurisdiction of the competent courts of the Montreal district.',
              })}
            </LegalBlock>

          </div>
        </Reveal>

        <Reveal delay={3}>
          <div style={{
            marginTop: isMobile ? 48 : 72, paddingTop: 28,
            borderTop: `1px solid ${TOK.ink10}`,
            display: 'flex', justifyContent: 'space-between', alignItems: 'center',
            flexWrap: 'wrap', gap: 16,
            fontFamily: TOK.mono, fontSize: 10, letterSpacing: '.18em',
            color: TOK.inkMed, textTransform: 'uppercase',
          }}>
            <span>{tr({ fr: 'Dernière mise à jour · Mai 2026', en: 'Last updated · May 2026' })}</span>
            <button onClick={() => setPage('privacy')} style={{
              all: 'unset', cursor: 'pointer', color: TOK.bronze,
            }}>{tr({ fr: 'Confidentialité →', en: 'Privacy →' })}</button>
          </div>
        </Reveal>
      </Container>
    </section>
  );
}

Object.assign(window, { LegalCgv });
