import Link from "next/link";
import { AppelAction } from "@/components/AppelAction";
import { Photo } from "@/components/Photo";
import { CarteRealisation } from "@/components/CarteRealisation";
import { Chevrons, ChevronsFiligrane } from "@/components/Chevrons";
import { IconeAtelier, IconeCle, IconeFleche, IconeGlobe } from "@/components/Icones";
import { REALISATIONS_EN_AVANT } from "@/content/realisations";
import { metadonneesPage } from "@/lib/metadonnees";
import { POSITIONNEMENT, SITE } from "@/lib/site";

/**
 * ── APPRENTISSAGE ────────────────────────────────────────────────────────────
 * UNE PAGE = UN FICHIER `page.tsx` DANS UN DOSSIER.
 *   src/app/page.tsx                     ->  /
 *   src/app/realisations/page.tsx        ->  /realisations/
 * Le routage vient de l'arborescence de fichiers, exactement comme tes anciens
 * dossiers Apache — sauf qu'il n'y a plus de front controller à écrire.
 *
 * Deux exports par page :
 *   - `metadata` : ce qui part dans le <head> (title, description, canonique…)
 *   - `export default` : le composant qui rend la page.
 * ─────────────────────────────────────────────────────────────────────────────
 */
export const metadata = metadonneesPage({
  titre: "Logiciels de gestion sur mesure & sites internet | Laval",
  description:
    "On développe les logiciels qui font tourner les lieux et les ateliers : " +
    "réservation, codes d'accès, suivi de production, interventions. Et les " +
    "sites internet qui vont avec. Laval, Mayenne et Grand Ouest.",
  chemin: "/",
});

const FAMILLES_OFFRE = [
  {
    icone: IconeCle,
    titre: "Accès & réservation",
    accroche:
      "Réserver, payer, recevoir un code, entrer. Sans intervention humaine.",
    points: [
      "Espaces, logements, box, salles, parkings, emplacements",
      "Codes d'accès envoyés par mail et par SMS",
      "Ouverture pilotée par l'état du paiement",
    ],
    href: "/logiciels-sur-mesure/",
    lien: "Voir l'offre logiciels",
  },
  {
    icone: IconeAtelier,
    titre: "Logiciels d'exploitation",
    accroche:
      "L'outil quand le tableur craque et que le logiciel du marché est trop rigide.",
    points: [
      "Production, stock, interventions, tournées",
      "Gestion locative, suivi commercial, reporting",
      "Interconnexion avec ce que vous avez déjà",
    ],
    href: "/logiciels-sur-mesure/",
    lien: "Voir l'offre logiciels",
  },
  {
    icone: IconeGlobe,
    titre: "Sites internet",
    accroche:
      "Souvent le premier contrat. La porte d'entrée, pas la destination.",
    points: [
      "Vitrines et boutiques en ligne",
      "Référencement local, ville par ville",
      "Fiche Google Business et performance",
    ],
    href: "/sites-internet/",
    lien: "Voir l'offre sites internet",
  },
];

export default function PageAccueil() {
  return (
    <>
      {/* ══ Hero — le manifeste ══════════════════════════════════════════ */}
      <section className="relative overflow-hidden">
        <ChevronsFiligrane className="pointer-events-none absolute -right-24 -top-16 h-[520px] w-[520px] text-saumon/[0.09] lg:-right-10" />

        <div className="conteneur relative pb-14 pt-14 sm:pb-16 sm:pt-20 lg:pt-24">
          <p className="surtitre">
            <Chevrons className="h-3.5 w-3.5" />
            {SITE.ville} · {SITE.departement} · Grand Ouest
          </p>

          {/* Une seule <h1> par page — ici, la phrase de positionnement. */}
          <h1 className="max-w-4xl text-[2.1rem] leading-[1.08] sm:text-5xl lg:text-[3.6rem]">
            {POSITIONNEMENT.phrase}
          </h1>

          <p className="mt-6 max-w-2xl text-xl font-semibold text-saumon-texte sm:text-2xl">
            {POSITIONNEMENT.sousPhrase}
          </p>

          <div className="mt-9 flex flex-col gap-3 sm:flex-row">
            <Link href="/contact/" className="bouton-primaire">
              Parler de votre projet
            </Link>
            <Link href="/realisations/" className="bouton-secondaire">
              Voir ce qu&apos;on a livré
            </Link>
          </div>
        </div>
      </section>

      {/* ══ Photo pleine largeur ═════════════════════════════════════════ */}
      <div className="conteneur">
        <Photo
          base="/photos/seance-de-travail"
          alt="Séance de travail vue de dessus : un plan papier et une maquette d'écran comparés autour d'un ordinateur portable."
          largeurs={[640, 960, 1600]}
          largeur={1600}
          hauteur={900}
          // La photo est sous la ligne de flottaison sur mobile : la charger en
          // différé laisse le titre devenir l'élément le plus gros affiché (LCP).
          sizes="(min-width: 1200px) 1152px, 100vw"
          className="w-full rounded-sm"
        />
      </div>

      {/* ══ Le manifeste développé ═══════════════════════════════════════ */}
      <section className="section">
        <div className="conteneur grid gap-8 lg:grid-cols-12 lg:gap-16">
          <div className="lg:col-span-5">
            <h2 className="text-3xl sm:text-4xl">
              Ni tableur, ni classeur, ni ressaisie.
            </h2>
          </div>

          <div className="prose-adt lg:col-span-7">
            <p>
              Nos plateformes gèrent des{" "}
              <strong>box de stockage qui s&apos;ouvrent seuls</strong> après
              paiement, des gîtes qui envoient leurs codes d&apos;accès aux
              voyageurs, des badges de copropriété, des ateliers qui calculent
              leur production du jour, des équipes terrain qui suivent leurs
              interventions.
            </p>
            <p>
              Un outil qui colle à votre façon de travailler — pas l&apos;inverse.
              Et parce que tout commence souvent là :{" "}
              <Link
                href="/sites-internet/"
                className="font-semibold text-saumon-texte underline underline-offset-4"
              >
                des sites internet qui se trouvent sur Google
              </Link>
              .
            </p>
            <p>
              Derrière tout ça, dix ans à équiper des usines en suivi de
              production, mis au service des entreprises d&apos;ici.
            </p>
          </div>
        </div>
      </section>

      {/* ══ Les trois familles ═══════════════════════════════════════════ */}
      <section className="section bg-ivoire">
        <div className="conteneur">
          <p className="surtitre">
            <Chevrons className="h-3.5 w-3.5" />
            Ce qu&apos;on fait
          </p>
          <h2 className="max-w-3xl text-3xl sm:text-4xl">
            Trois familles de travail. Dans cet ordre.
          </h2>

          <div className="mt-12 grid gap-6 md:grid-cols-3">
            {FAMILLES_OFFRE.map((famille) => {
              // On copie le composant d'icône dans une variable dont le nom
              // commence par une MAJUSCULE : c'est la condition pour que JSX le
              // traite comme un composant et non comme une balise HTML.
              const Icone = famille.icone;

              return (
                <article
                  key={famille.titre}
                  className="flex flex-col rounded-sm border border-trait bg-white p-7"
                >
                  <Icone className="h-9 w-9 text-saumon-texte" />
                  <h3 className="mt-5 text-xl">{famille.titre}</h3>
                  <p className="mt-3 text-[0.95rem] leading-relaxed text-gris">
                    {famille.accroche}
                  </p>

                  <ul className="mt-5 flex-1 space-y-2.5 border-t border-trait pt-5">
                    {famille.points.map((point) => (
                      <li
                        key={point}
                        className="flex gap-2.5 text-[0.9rem] text-gris"
                      >
                        <Chevrons className="mt-1 h-3 w-3 shrink-0 text-saumon" />
                        {point}
                      </li>
                    ))}
                  </ul>

                  <Link
                    href={famille.href}
                    className="group mt-6 inline-flex items-center gap-2 text-sm font-bold text-anthracite"
                  >
                    {famille.lien}
                    <IconeFleche className="h-4 w-4 text-saumon-texte transition-transform group-hover:translate-x-1" />
                  </Link>
                </article>
              );
            })}
          </div>
        </div>
      </section>

      {/* ══ Trois cas en aperçu ══════════════════════════════════════════ */}
      <section className="section">
        <div className="conteneur">
          <p className="surtitre">
            <Chevrons className="h-3.5 w-3.5" />
            En production
          </p>
          <div className="flex flex-col gap-6 sm:flex-row sm:items-end sm:justify-between">
            <h2 className="max-w-2xl text-3xl sm:text-4xl">
              Des outils qui tournent tous les jours, chez des gens d&apos;ici.
            </h2>
            <Link
              href="/realisations/"
              className="group inline-flex shrink-0 items-center gap-2 font-bold text-anthracite"
            >
              Les six cas
              <IconeFleche className="h-4 w-4 text-saumon-texte transition-transform group-hover:translate-x-1" />
            </Link>
          </div>

          <div className="mt-12 grid gap-6 md:grid-cols-3">
            {REALISATIONS_EN_AVANT.map((cas) => (
              <CarteRealisation key={cas.slug} cas={cas} />
            ))}
          </div>
        </div>
      </section>

      <AppelAction
        titre="Dites-nous ce qui vous fait perdre du temps."
        texte="Un premier échange sert à comprendre votre façon de travailler, et à dire franchement si un outil sur mesure se justifie — ou pas."
      />
    </>
  );
}
