/* global React, Kicker, Button, ProtectedEmail, decodeEmail */
// LegalPage — Mentions légales / CGU / Confidentialité.
// L'adresse email n'apparaît jamais en clair dans la source : chaque section
// contient le marqueur {EMAIL} qui est remplacé au rendu par <ProtectedEmail>.

const CONTENT = {
  mentions: {
    title: "Mentions légales",
    kicker: "En vigueur au 27 mai 2026",
    sections: [
      {
        h: "1. Éditeur du site",
        p:
`Le présent site est édité par :

EARL Eau Médoc
Exploitation Agricole à Responsabilité Limitée au capital de 26 679 €
SIRET : 351 238 688 000 29
RCS Bordeaux : 351 238 688
Numéro TVA intracommunautaire : FR32 351 238 688
Adresse du siège social : 1 La Petite Canau, 33590 Saint-Vivien-de-Médoc
Téléphone : 05 56 09 58 32
Email : {EMAIL}`,
      },
      {
        h: "2. Directeur de la publication",
        p:
`La directrice de la publication est Mme Jade Neau, en qualité de responsable de la publication au sein de l'EARL Eau Médoc.`,
      },
      {
        h: "3. Hébergeur du site",
        p:
`[Nom de l'hébergeur]
[Forme juridique]
[Adresse du siège social de l'hébergeur]
[Numéro de téléphone de l'hébergeur]`,
      },
      {
        h: "4. Propriété intellectuelle",
        p:
`L'ensemble des éléments constituant ce site (textes, photographies, images, vidéos, graphismes, logo, sons, logiciels, etc.) est la propriété exclusive de l'EARL Eau Médoc ou fait l'objet d'une autorisation d'utilisation. Toute reproduction, représentation, modification, publication ou transmission de tout ou partie du site, par quelque moyen que ce soit, est strictement interdite sans l'autorisation écrite préalable de l'EARL Eau Médoc, sous peine de poursuites judiciaires.`,
      },
      {
        h: "5. Liens hypertextes",
        p:
`L'EARL Eau Médoc ne peut être tenue responsable du contenu des sites tiers vers lesquels des liens hypertextes sont proposés. La création de liens vers le présent site est soumise à l'accord préalable et écrit de l'éditeur.`,
      },
      {
        h: "6. Limitation de responsabilité",
        p:
`L'EARL Eau Médoc s'efforce de maintenir les informations publiées sur ce site aussi précises et actualisées que possible. Toutefois, elle ne saurait garantir l'exactitude, la complétude ou l'actualité des informations diffusées. L'utilisation des informations contenues sur ce site s'effectue sous la responsabilité exclusive de l'utilisateur.`,
      },
      {
        h: "7. Droit applicable",
        p:
`Le présent site est soumis au droit français. En cas de litige, et à défaut de résolution amiable, les tribunaux français seront seuls compétents.`,
      },
      {
        h: "8. Contact",
        p:
`Pour toute question relative aux présentes mentions légales, vous pouvez nous contacter à l'adresse : {EMAIL} ou par téléphone au 05 56 09 58 32.`,
      },
    ],
  },

  cgu: {
    title: "Conditions générales d'utilisation",
    kicker: "En vigueur au 27 mai 2026",
    sections: [
      {
        h: "1. Objet",
        p:
`Les présentes Conditions Générales d'Utilisation (CGU) régissent les conditions d'accès et d'utilisation du site internet de l'EARL Eau Médoc, ainsi que les modalités de réservation de produits aquacoles (huîtres affinées, coquillages purifiés, fruits de mer cuisinés) via le formulaire en ligne. Ces CGU s'appliquent à tout visiteur ou utilisateur du site, qu'il soit particulier ou professionnel.`,
      },
      {
        h: "2. Accès au site",
        p:
`L'accès au site est libre et gratuit. L'EARL Eau Médoc se réserve le droit de modifier, suspendre ou interrompre l'accès au site à tout moment, notamment pour des raisons de maintenance, sans préavis ni indemnité.`,
      },
      {
        h: "3. Présentation des produits",
        p:
`Les produits présentés sur le site (huîtres affinées, coquillages purifiés, gambas, bulots, bigorneaux et autres fruits de mer cuisinés) sont décrits avec le soin le plus grand possible. Les photographies et descriptions n'ont pas de valeur contractuelle et sont données à titre illustratif.

Les produits proposés à la réservation sont des denrées alimentaires périssables soumises à des contraintes sanitaires et de fraîcheur. Leur disponibilité peut varier en fonction des conditions d'élevage, de la saisonnalité et des stocks.`,
      },
      {
        h: "4. Réservation de produits en ligne",
        p:
`4.1 Nature de la réservation. La fonctionnalité de réservation en ligne permet à l'utilisateur d'exprimer son intention d'achat et de réserver des produits. Cette réservation ne constitue pas un contrat de vente ferme et définitif et n'entraîne aucun paiement en ligne.

4.2 Confirmation. Toute réservation est soumise à confirmation de disponibilité par l'EARL Eau Médoc. Un membre de l'équipe prendra contact avec l'utilisateur dans les meilleurs délais (généralement sous 48 heures ouvrées) pour confirmer la réservation, préciser les modalités de retrait ou de livraison, et convenir des conditions de paiement.

4.3 Annulation. L'utilisateur peut annuler ou modifier sa réservation en contactant l'EARL Eau Médoc à l'adresse {EMAIL} ou au 05 56 09 58 32, avant confirmation définitive de la commande.

4.4 Nature périssable des produits. En raison de la nature hautement périssable des produits aquacoles, l'utilisateur est informé que tout désistement tardif après confirmation de commande pourrait engager sa responsabilité pour les pertes subies.`,
      },
      {
        h: "5. Prix",
        p:
`Les prix indiqués sur le site sont en euros, toutes taxes comprises (TTC). L'EARL Eau Médoc se réserve le droit de modifier ses prix à tout moment. Les prix applicables sont ceux en vigueur au jour de la confirmation de la commande.

Pour les clients professionnels (BtoB), des tarifs spécifiques peuvent être convenus sur devis.`,
      },
      {
        h: "6. Responsabilité",
        p:
`6.1 Produits. L'EARL Eau Médoc garantit que ses produits sont conformes aux réglementations sanitaires en vigueur applicables aux produits de la pêche et de l'aquaculture (règlements CE n° 852/2004 et 853/2004). Il appartient à l'utilisateur de respecter les conditions de conservation indiquées et de consommer les produits dans les délais impartis.

6.2 Site. L'EARL Eau Médoc ne saurait être tenue responsable des dommages directs ou indirects résultant de l'utilisation ou de l'impossibilité d'utilisation du site.`,
      },
      {
        h: "7. Dispositions spécifiques aux consommateurs (BtoC)",
        p:
`Conformément à l'article L221-28 du Code de la consommation, le droit de rétractation de 14 jours ne s'applique pas aux contrats portant sur la fourniture de biens susceptibles de se détériorer ou de se périmer rapidement, ce qui inclut les produits aquacoles frais.

Les consommateurs bénéficient néanmoins de la garantie légale de conformité (art. L217-4 et suivants du Code de la consommation) et de la garantie contre les vices cachés (art. 1641 et suivants du Code civil).`,
      },
      {
        h: "8. Formulaire de contact et de devis",
        p:
`Les formulaires de contact et de devis sont mis à disposition à titre informatif. L'utilisateur s'engage à fournir des informations exactes et à ne pas utiliser ces formulaires à des fins illicites, abusives ou contraires aux bonnes mœurs.`,
      },
      {
        h: "9. Comportement de l'utilisateur",
        p:
`L'utilisateur s'engage à utiliser le site de manière loyale, conformément à son objet et aux lois et règlements en vigueur. Tout usage abusif, frauduleux ou de nature à porter atteinte aux droits de tiers est strictement interdit.`,
      },
      {
        h: "10. Modification des CGU",
        p:
`L'EARL Eau Médoc se réserve le droit de modifier les présentes CGU à tout moment. Les CGU applicables sont celles en vigueur à la date d'utilisation du site. La date de mise à jour est indiquée en en-tête.`,
      },
      {
        h: "11. Droit applicable et juridiction compétente",
        p:
`Les présentes CGU sont soumises au droit français. En cas de litige, et à défaut de résolution amiable, le tribunal compétent sera celui du ressort du siège social de l'EARL Eau Médoc, sauf disposition légale contraire applicable notamment aux consommateurs.`,
      },
      {
        h: "12. Contact",
        p:
`Pour toute question relative aux présentes CGU : {EMAIL}, ou par téléphone au 05 56 09 58 32.`,
      },
    ],
  },

  rgpd: {
    title: "Politique de confidentialité",
    kicker: "Dernière mise à jour : 27 mai 2026",
    sections: [
      {
        h: "1. Responsable du traitement",
        p:
`Le responsable du traitement des données personnelles collectées via ce site est :
EARL Eau Médoc, représentée par M. Bertrand Iung, gérant.
Email : {EMAIL}
Téléphone : 05 56 09 58 32`,
      },
      {
        h: "2. Données collectées et finalités",
        p:
`Nous collectons uniquement les données strictement nécessaires aux finalités suivantes :

· Formulaire de contact : nom, prénom, adresse email, message, afin de répondre à vos demandes d'information. Base légale : intérêt légitime (art. 6.1.f RGPD).
· Formulaire de devis et réservation de produits : nom, prénom, coordonnées, nature et quantité des produits souhaités, afin de traiter vos demandes et de préparer vos commandes. Base légale : exécution de mesures précontractuelles (art. 6.1.b RGPD).
· Cookies de mesure d'audience (Google Analytics) : données de navigation anonymisées (pages consultées, durée de visite, localisation approximative), afin d'améliorer notre site. Base légale : consentement (art. 6.1.a RGPD).`,
      },
      {
        h: "3. Cookies",
        p:
`Ce site utilise des cookies. Lors de votre première visite, un bandeau vous informe de leur présence et recueille votre consentement préalable, conformément aux recommandations de la CNIL.

· Cookies strictement nécessaires : indispensables au fonctionnement du site, exemptés de consentement.
· Cookies analytiques (Google Analytics) : déposés uniquement après votre accord explicite. Vous pouvez retirer votre consentement à tout moment via les paramètres de cookies.

Pour en savoir plus : cnil.fr/fr/cookies-et-autres-traceurs`,
      },
      {
        h: "4. Durée de conservation",
        p:
`· Données de contact et de devis : 3 ans à compter du dernier contact.
· Données de réservation/commande : 5 ans (durée légale de conservation comptable).
· Données de navigation Google Analytics : 26 mois maximum.`,
      },
      {
        h: "5. Destinataires des données",
        p:
`Vos données sont destinées au personnel habilité de l'EARL Eau Médoc. Elles peuvent être transmises à Google LLC (Google Analytics), établie aux États-Unis, dans le cadre de garanties appropriées (clauses contractuelles types approuvées par la Commission européenne). Pour l'envoi des emails transactionnels (confirmation de commande, demandes de devis), nous utilisons le service Resend (Resend, Inc.), prestataire technique sous engagement contractuel de confidentialité.

Vos données ne sont ni vendues, ni louées, ni cédées à des tiers à des fins commerciales.`,
      },
      {
        h: "6. Vos droits",
        p:
`Conformément au RGPD et à la loi Informatique et Libertés, vous disposez des droits suivants :

· Droit d'accès à vos données (art. 15 RGPD)
· Droit de rectification (art. 16 RGPD)
· Droit à l'effacement (art. 17 RGPD)
· Droit à la limitation du traitement (art. 18 RGPD)
· Droit d'opposition (art. 21 RGPD)
· Droit à la portabilité (art. 20 RGPD)
· Droit de retirer votre consentement à tout moment (pour les traitements fondés sur le consentement)

Pour exercer ces droits, contactez-nous à : {EMAIL}. Vous disposez également du droit d'introduire une réclamation auprès de la CNIL (Commission Nationale de l'Informatique et des Libertés) : www.cnil.fr`,
      },
      {
        h: "7. Sécurité",
        p:
`Nous mettons en œuvre des mesures techniques et organisationnelles appropriées pour protéger vos données contre tout accès non autorisé, perte, destruction ou altération.`,
      },
      {
        h: "8. Modifications",
        p:
`La présente politique peut être mise à jour à tout moment. La date de dernière mise à jour est indiquée en tête de document. Nous vous encourageons à la consulter régulièrement.`,
      },
    ],
  },
};

function LegalPage({ kind = "mentions", onNav }) {
  const c = CONTENT[kind] || CONTENT.mentions;

  // Splits prose on the {EMAIL} marker and interpolates a ProtectedEmail link.
  // Also detects bare URLs (https://…, www.…, cnil.fr/…) and turns them into
  // real links (new tab) for accessibility.
  const linkCls = "text-primary underline decoration-1 underline-offset-[3px] hover:text-primary-dark";
  const URL_RE = /((?:https?:\/\/|www\.)[^\s]+|cnil\.fr\/[^\s]+)/gi;
  const linkify = (text, kp) => {
    const nodes = [];
    let last = 0, m, idx = 0;
    URL_RE.lastIndex = 0;
    while ((m = URL_RE.exec(text)) !== null) {
      let raw = m[0];
      // strip trailing punctuation so it isn't swallowed into the link
      const trail = (raw.match(/[.,;:)»]+$/) || [""])[0];
      if (trail) raw = raw.slice(0, raw.length - trail.length);
      if (m.index > last) nodes.push(<React.Fragment key={kp + "x" + idx}>{text.slice(last, m.index)}</React.Fragment>);
      const href = raw.startsWith("http") ? raw : "https://" + raw;
      nodes.push(
        <a key={kp + "l" + idx} href={href} target="_blank" rel="noopener noreferrer" className={linkCls}>{raw}</a>
      );
      if (trail) nodes.push(<React.Fragment key={kp + "p" + idx}>{trail}</React.Fragment>);
      last = m.index + m[0].length;
      idx++;
    }
    if (last < text.length) nodes.push(<React.Fragment key={kp + "e"}>{text.slice(last)}</React.Fragment>);
    return nodes;
  };

  const renderEmailProse = (text) => {
    const parts = text.split("{EMAIL}");
    return parts.flatMap((part, i) => {
      const out = [<React.Fragment key={"t" + i}>{linkify(part, "u" + i)}</React.Fragment>];
      if (i < parts.length - 1) {
        out.push(
          <ProtectedEmail
            key={"e" + i}
            className={linkCls}
          />
        );
      }
      return out;
    });
  };

  return (
    <>
      <section className="bg-foam pt-16 md:pt-24 pb-12">
        <div className="container-x max-w-[820px]">
          <Kicker>{c.kicker}</Kicker>
          <h1 className="h-display mt-3">{c.title}</h1>
        </div>
      </section>
      <section className="py-16 md:py-20 bg-white">
        <div className="container-x max-w-[760px]">
          <div className="space-y-10">
            {c.sections.map((s) => (
              <div key={s.h}>
                <h2 className="font-serif text-primary text-[22px] md:text-[26px] leading-tight">{s.h}</h2>
                <p className="body mt-3 whitespace-pre-line">{renderEmailProse(s.p)}</p>
              </div>
            ))}
          </div>
          <div className="mt-12 pt-8 flex flex-wrap gap-2 text-[14px]">
            <button onClick={() => onNav("mentions-legales")} className={"px-3 py-1.5 rounded-btn " + (kind === "mentions" ? "bg-foam text-primary font-semibold" : "text-mute hover:bg-foam/60")}>Mentions légales</button>
            <button onClick={() => onNav("cgu")} className={"px-3 py-1.5 rounded-btn " + (kind === "cgu" ? "bg-foam text-primary font-semibold" : "text-mute hover:bg-foam/60")}>CGU</button>
            <button onClick={() => onNav("confidentialite")} className={"px-3 py-1.5 rounded-btn " + (kind === "rgpd" ? "bg-foam text-primary font-semibold" : "text-mute hover:bg-foam/60")}>Confidentialité</button>
          </div>
        </div>
      </section>
    </>
  );
}

window.LegalPage = LegalPage;
