/* MAKE MEDIA — contenu placeholder (à remplacer librement) */
(function () {
  const STUDIO_SPECS = [
    { k: "Surface", v: "180 m² · 2 plateaux" },
    { k: "Cyclo", v: "Fond blanc infini 6 m" },
    { k: "Lumière", v: "Profoto · HMI · LED" },
    { k: "Captation", v: "4K / 6K · son traité" },
    { k: "Accès", v: "Plain-pied · parking" },
  ];

  const SERVICES = [
    { id: "social", name: "Social Media", idx: "01", open: true, page: "social-media-grenoble.html",
      desc: "Stratégie éditoriale, production de contenus et animation de communautés au quotidien.",
      cap: "contenu social",
      intro: "On pense la ligne éditoriale, on produit les contenus et on anime votre communauté au quotidien, post après post.",
      deliverables: ["Stratégie éditoriale", "Calendrier de contenus", "Création de visuels", "Copywriting", "Animation de communauté"],
      // Texte de présentation : lu par Google, il doit décrire concrètement le service.
      about: [
        "Make Media crée les contenus des clubs, bars, festivals et clubs sportifs de la région grenobloise : affiches de soirées, programmes de la semaine, annonces d'artistes en motion, posts de match et visuels d'événements, pensés pour les réseaux sociaux.",
        "Chaque client a sa propre ligne graphique. On prépare le calendrier de publication, on écrit les textes et on livre des visuels prêts à poster, au bon format pour le feed, les stories et les reels. Quelques réalisations ci-dessous, pour l'Austra Rocks, le Nightmare Festival ou les Centaures de Grenoble.",
      ],
      examples: [
        { type: "photo", cap: "Austra Rocks — Back to School, double page", w: 12, ratio: "16 / 10", src: "assets/services/social/sm-backtoschool.jpg" },
        { type: "video", cap: "Austra Rocks — annonce DJ en motion", w: 6, ratio: "4 / 5", src: "assets/services/social/sm-sam.mp4", poster: "assets/services/social/sm-sam.jpg" },
        { type: "photo", cap: "Nightmare Festival — affiche", w: 6, ratio: "4 / 5", src: "assets/services/social/sm-nightmare.jpg" },
        { type: "photo", cap: "Fête de la musique — Le Rooftop", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-fetemusique.jpg" },
        { type: "photo", cap: "Austra Rocks — La Nuit des Légendes", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-nuitlegendes.jpg" },
        { type: "photo", cap: "Centaures de Grenoble — Last Ride", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-centaures.jpg" },
        { type: "photo", cap: "BCTM — post Championnes", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-bctm.jpg" },
        { type: "photo", cap: "First Kiss — Nouvel An", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-firstkiss.jpg" },
        { type: "photo", cap: "Austra Rocks — KRS One", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-krsone.jpg" },
        { type: "photo", cap: "Nightmare — lancement du site", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-nightmare-site.jpg" },
        { type: "photo", cap: "Papa Club — week-end électronique", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-papaclub.jpg" },
        { type: "photo", cap: "Programme du week-end", w: 4, ratio: "4 / 5", src: "assets/services/social/sm-weekend.jpg" },
      ] },
    { id: "photo", name: "Photo", idx: "02", open: true,
      desc: "Direction photographique, shootings produits, portraits corporate et reportages d'événements.",
      cap: "shooting studio",
      intro: "Vos photos, sans attendre. Nous proposons une livraison rapide de vos photos, avec la possibilité de recevoir une sélection en instantané pendant l'événement, prête à être publiée sur vos réseaux sociaux.",
      exampleGroups: [
        { label: "Événementiel", items: [
          { type: "photo", cap: "concert", w: 7, ratio: "3 / 2" },
          { type: "photo", cap: "festival", w: 5, ratio: "3 / 4" },
          { type: "photo", cap: "club", w: 4, ratio: "1 / 1" },
          { type: "photo", cap: "concert", w: 4, ratio: "1 / 1" },
          { type: "photo", cap: "reportage événement", w: 8, ratio: "16 / 9" },
        ] },
        { label: "Food & restauration", items: [
          { type: "photo", cap: "plat signature", w: 4, ratio: "1 / 1" },
          { type: "photo", cap: "salle du restaurant", w: 6, ratio: "4 / 3" },
          { type: "photo", cap: "détail culinaire", w: 4, ratio: "1 / 1" },
          { type: "photo", cap: "portrait chef", w: 4, ratio: "3 / 4" },
          { type: "photo", cap: "mise en place", w: 6, ratio: "4 / 3" },
        ] },
        { label: "Studio", items: [
          { type: "photo", cap: "mariage", w: 7, ratio: "3 / 2" },
          { type: "photo", cap: "portrait studio", w: 5, ratio: "3 / 4" },
          { type: "photo", cap: "packshot produit", w: 4, ratio: "1 / 1" },
          { type: "photo", cap: "mariage", w: 4, ratio: "1 / 1" },
          { type: "photo", cap: "portrait corporate", w: 4, ratio: "3 / 4" },
        ] },
      ] },
    { id: "video", name: "Vidéo", idx: "03",
      desc: "Films de marque, capsules réseaux, motion design et captation événementielle, du brief au montage.",
      cap: "film corporate",
      intro: "Du film de marque à la capsule sociale, nous écrivons, tournons et montons des vidéos qui captent l'attention et tiennent le rythme.",
      deliverables: ["Film de marque", "Capsules réseaux", "Motion design", "Captation événementielle", "Interviews", "Montage & étalonnage"],
      examples: [
        { type: "video", cap: "film de marque 16:9", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "photogramme", w: 6, ratio: "16 / 9" },
        { type: "photo", cap: "photogramme", w: 6, ratio: "16 / 9" },
        { type: "video", cap: "capsule réseau 9:16", w: 4, ratio: "9 / 16" },
        { type: "video", cap: "capsule réseau 9:16", w: 4, ratio: "9 / 16" },
        { type: "video", cap: "interview 3:4", w: 4, ratio: "3 / 4" },
        { type: "video", cap: "motion design 16:9", w: 7, ratio: "16 / 9" },
        { type: "photo", cap: "behind the scenes", w: 5, ratio: "4 / 3" },
        { type: "video", cap: "teaser produit 1:1", w: 5, ratio: "1 / 1" },
        { type: "photo", cap: "plan large drone", w: 7, ratio: "21 / 9" },
        { type: "video", cap: "aftermovie 16:9", w: 12, ratio: "21 / 9" },
      ] },
    { id: "mariage", name: "Mariage", idx: "04",
      desc: "Reportage photo et vidéo de mariage, de la préparation à la soirée, sans mise en scène forcée.",
      cap: "mariage — cérémonie",
      intro: "Un regard discret sur votre journée : de la préparation aux premières danses, on capte les vrais moments plutôt que des poses figées.",
      deliverables: ["Préparatifs", "Cérémonie", "Cocktail & vin d'honneur", "Photos de couple", "Soirée & première danse", "Album & livraison rapide"],
      examples: [
        { type: "photo", cap: "préparatifs — mariée", w: 5, ratio: "3 / 4" },
        { type: "photo", cap: "cérémonie — échange des vœux", w: 7, ratio: "3 / 2" },
        { type: "photo", cap: "sortie de cérémonie", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "portrait de couple", w: 5, ratio: "3 / 4" },
        { type: "photo", cap: "cocktail — ambiance", w: 7, ratio: "4 / 3" },
        { type: "photo", cap: "détail — alliances", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "discours", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "première danse", w: 4, ratio: "1 / 1" },
        { type: "video", cap: "film du jour — 3 min 16:9", w: 12, ratio: "16 / 9" },
      ] },
    { id: "studio", name: "Studio", idx: "05",
      desc: "Location du studio Make Media équipé, avec ou sans accompagnement technique, pour vos propres prises de vue.",
      cap: "studio — plateau",
      intro: "Un plateau équipé à Grenoble, en accès seul ou accompagné, pour tourner ou shooter dans de bonnes conditions sans monter votre propre setup.",
      deliverables: STUDIO_SPECS.map((s) => `${s.k} : ${s.v}`),
      examples: [
        { type: "photo", cap: "plateau — vue d'ensemble", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "cyclo blanc infini", w: 6, ratio: "4 / 3" },
        { type: "photo", cap: "setup lumière", w: 6, ratio: "4 / 3" },
        { type: "photo", cap: "shooting produit en cours", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "shooting portrait en cours", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "captation vidéo en studio", w: 4, ratio: "1 / 1" },
      ] },
    { id: "photobooth", name: "Photobooth", idx: "06",
      desc: "Bornes photo sur-mesure et expériences interactives pour activations et soirées de marque.",
      cap: "borne photo — event",
      intro: "Une borne photo sur-mesure et brandée pour vos événements : tirages instantanés, animation et galerie partagée.",
      deliverables: ["Borne sur-mesure", "Habillage & branding", "Tirages instantanés", "Animation événementielle", "Galerie en ligne", "Fonds & accessoires"],
      examples: [
        { type: "photo", cap: "installation borne", w: 6, ratio: "4 / 3" },
        { type: "photo", cap: "fond personnalisé", w: 6, ratio: "4 / 3" },
        { type: "photo", cap: "tirage — bande photo", w: 4, ratio: "9 / 16" },
        { type: "photo", cap: "invités — soirée", w: 8, ratio: "16 / 9" },
        { type: "photo", cap: "accessoires", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "habillage marque", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "animation live", w: 4, ratio: "1 / 1" },
        { type: "video", cap: "boomerang 1:1", w: 5, ratio: "1 / 1" },
        { type: "photo", cap: "galerie événement", w: 7, ratio: "16 / 9" },
      ] },
  ];

  const PROJECTS = [
    {
      id: "p1", title: "Maison Lumière", sub: "Campagne 2026", cat: "photo",
      tag: "Photo · Direction artistique", span: "span-7", cap: "campagne mode — éditorial", ratio: "4 / 3",
      client: "Maison Lumière", year: "2026", location: "Paris", role: "Direction artistique · Photo · Retouche",
      summary: "Campagne de printemps : une série éditoriale en lumière naturelle, entre studio et extérieurs urbains. Un parti pris graphique, des cadrages serrés et beaucoup d'air.",
      credits: [
        { role: "Direction artistique", name: "Léa Marchand" },
        { role: "Photographie", name: "Sarah Benali" },
        { role: "Production", name: "Make Media" },
      ],
      media: [
        { type: "photo", cap: "couverture campagne — éditorial", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "portrait studio", w: 6, ratio: "3 / 4" },
        { type: "photo", cap: "détail tissu", w: 6, ratio: "3 / 4" },
        { type: "video", cap: "teaser campagne 16:9", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "plan large extérieur", w: 7, ratio: "3 / 2" },
        { type: "photo", cap: "nature morte", w: 5, ratio: "1 / 1" },
        { type: "photo", cap: "lookbook 01", w: 4, ratio: "3 / 4" },
        { type: "photo", cap: "lookbook 02", w: 4, ratio: "3 / 4" },
        { type: "photo", cap: "lookbook 03", w: 4, ratio: "3 / 4" },
      ],
    },
    {
      id: "p2", title: "Orée", sub: "Film de marque", cat: "video",
      tag: "Vidéo · Motion", span: "span-5", cap: "film de marque 16:9", ratio: "4 / 3",
      client: "Orée", year: "2025", location: "Lyon", role: "Réalisation · Motion · Étalonnage",
      summary: "Un film de marque de 90 secondes mêlant prises de vue réelles et motion design. Récit sobre, rythme maîtrisé, image chaude.",
      credits: [
        { role: "Réalisation", name: "Thomas Vidal" },
        { role: "Motion design", name: "Marc Lefèvre" },
        { role: "Étalonnage", name: "Make Media" },
      ],
      media: [
        { type: "video", cap: "film de marque — 90s 16:9", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "photogramme 01", w: 6, ratio: "16 / 9" },
        { type: "photo", cap: "photogramme 02", w: 6, ratio: "16 / 9" },
        { type: "video", cap: "capsule réseaux 9:16", w: 4, ratio: "9 / 16" },
        { type: "video", cap: "capsule réseaux 9:16", w: 4, ratio: "9 / 16" },
        { type: "photo", cap: "behind the scenes", w: 4, ratio: "9 / 16" },
        { type: "photo", cap: "plan d'ensemble", w: 12, ratio: "21 / 9" },
      ],
    },
    {
      id: "p3", title: "Studio Atlas", sub: "Identité", cat: "design",
      tag: "Design · Branding", span: "span-5", cap: "système de marque", ratio: "4 / 3",
      client: "Studio Atlas", year: "2025", location: "Grenoble", role: "Identité · Direction artistique · Édition",
      summary: "Refonte complète de l'identité : logotype, système typographique, palette et déclinaisons print & écran. Une marque nette, durable et facile à vivre.",
      credits: [
        { role: "Direction artistique", name: "Léa Marchand" },
        { role: "Design graphique", name: "Marc Lefèvre" },
        { role: "Photographie", name: "Sarah Benali" },
      ],
      media: [
        { type: "photo", cap: "logotype — déclinaisons", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "système typographique", w: 7, ratio: "4 / 3" },
        { type: "photo", cap: "palette & couleurs", w: 5, ratio: "4 / 3" },
        { type: "photo", cap: "papeterie", w: 6, ratio: "1 / 1" },
        { type: "photo", cap: "édition — couverture", w: 6, ratio: "1 / 1" },
        { type: "video", cap: "logo animé 1:1", w: 5, ratio: "1 / 1" },
        { type: "photo", cap: "signalétique", w: 7, ratio: "4 / 3" },
      ],
    },
    {
      id: "p4", title: "Nord Festival", sub: "Aftermovie", cat: "video",
      tag: "Vidéo · Captation", span: "span-7", cap: "aftermovie festival", ratio: "4 / 3",
      client: "Nord Festival", year: "2025", location: "Lille", role: "Captation · Montage · Sound design",
      summary: "Captation multi-caméras sur trois jours et aftermovie nerveux pour restituer l'énergie de l'édition. Plus une série de photos live.",
      credits: [
        { role: "Réalisation", name: "Thomas Vidal" },
        { role: "Photographie live", name: "Sarah Benali" },
        { role: "Montage & son", name: "Make Media" },
      ],
      media: [
        { type: "video", cap: "aftermovie — 2 min 16:9", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "live — scène principale", w: 8, ratio: "16 / 9" },
        { type: "photo", cap: "public", w: 4, ratio: "3 / 4" },
        { type: "photo", cap: "ambiance nuit", w: 4, ratio: "3 / 4" },
        { type: "photo", cap: "détail lumière", w: 4, ratio: "3 / 4" },
        { type: "video", cap: "recap stories 9:16", w: 4, ratio: "9 / 16" },
        { type: "photo", cap: "plan large drone", w: 12, ratio: "21 / 9" },
      ],
    },
    {
      id: "p5", title: "Céramique B.", sub: "Catalogue", cat: "photo",
      tag: "Photo · Produit", span: "span-6", cap: "packshot produit", ratio: "1 / 1",
      client: "Céramique B.", year: "2024", location: "Studio Make Media", role: "Photo produit · Stylisme · Retouche",
      summary: "Catalogue produit de 40 références : packshots sur fond neutre et mises en situation texturées. Lumière douce, matières mises en valeur.",
      credits: [
        { role: "Photographie", name: "Sarah Benali" },
        { role: "Stylisme", name: "Léa Marchand" },
        { role: "Retouche", name: "Make Media" },
      ],
      media: [
        { type: "photo", cap: "packshot — fond neutre", w: 6, ratio: "1 / 1" },
        { type: "photo", cap: "packshot — fond neutre", w: 6, ratio: "1 / 1" },
        { type: "photo", cap: "mise en situation", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "détail matière", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "détail matière", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "détail matière", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "gamme complète", w: 7, ratio: "4 / 3" },
        { type: "photo", cap: "packaging", w: 5, ratio: "4 / 3" },
      ],
    },
    {
      id: "p6", title: "Rue Vive", sub: "Réseaux", cat: "design",
      tag: "Design · Social", span: "span-6", cap: "kit réseaux sociaux", ratio: "1 / 1",
      client: "Rue Vive", year: "2026", location: "Paris", role: "Design social · Templates · Contenus",
      summary: "Kit de contenus réseaux : templates de posts, stories animées et carrousels. Un système modulaire tenu sur la durée.",
      credits: [
        { role: "Direction artistique", name: "Marc Lefèvre" },
        { role: "Community management", name: "Inès Dupré" },
        { role: "Motion", name: "Make Media" },
      ],
      media: [
        { type: "photo", cap: "feed — vue d'ensemble", w: 12, ratio: "16 / 9" },
        { type: "photo", cap: "post 1:1", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "post 1:1", w: 4, ratio: "1 / 1" },
        { type: "photo", cap: "post 1:1", w: 4, ratio: "1 / 1" },
        { type: "video", cap: "story animée 9:16", w: 4, ratio: "9 / 16" },
        { type: "video", cap: "story animée 9:16", w: 4, ratio: "9 / 16" },
        { type: "photo", cap: "carrousel — slide", w: 4, ratio: "9 / 16" },
      ],
    },
  ];

  // Réseaux sociaux (contact + pied de page). LinkedIn : page Make Alpes Média.
  const SOCIALS = { instagram: "https://www.instagram.com/make_media.fr/", linkedin: "https://www.linkedin.com/company/make-alpes-m%C3%A9dia/" };

  // Dernières publications Instagram (image dans assets/instagram/<code>.jpg, clic = ouvre le post).
  const INSTAGRAM = [
    ["DdjtVSFCMqm", "austrarocks.gr"], ["DdQ7uVejm3J", "austrarocks.gr"], ["DcMAEw4FEKX", "watercircus"], ["DbyxTHWEX4J", "watercircus"],
    ["DbqJbYojCmS", "make_media.fr"], ["DdRiNArDkE0", "make_media.fr"], ["DYwgFrlITCu", "basketlfb"], ["DYu6RqyRnHX", "basketlfb"],
  ].map(([code, handle]) => ({ id: code, handle, src: `assets/instagram/${code}.jpg`, url: `https://www.instagram.com/p/${code}/` }));

  // Logos clients (blancs, fond transparent) dans assets/clients/.
  const CLIENTS = Array.from({ length: 13 }, (_, i) => `assets/clients/client-${String(i + 1).padStart(2, "0")}.png`);


  /* Catalogue de location de matériel — prix TTC, caution non incluse */
  const RENTAL = [
    {
      cat: "Appareils photo & vidéo",
      items: [
        { name: "Sony A7 V", spec: "Hybride plein format · Photo & vidéo", price: "90 € HT / jour" },
        { name: "Sony A7 IV", spec: "Hybride plein format · 33 Mpx · 4K", price: "80 € HT / jour" },
        { name: "Sony A7 III", spec: "Hybride plein format · 24 Mpx · 4K", price: "60 € HT / jour" },
        { name: "GoPro HERO13 Black", spec: "Caméra d'action · 5.3K · Stabilisation", price: "40 € HT / jour" },
        { name: "Insta360 X5", spec: "Caméra 360° · Stabilisation", price: "50 € HT / jour" },
        { name: "DJI Mini 5 Pro", spec: "Drone compact · Photo & vidéo aérienne", price: "70 € HT / jour" },
      ],
    },
    {
      cat: "Objectifs",
      items: [
        { name: "Tamron 28-75mm f/2.8", spec: "Zoom standard polyvalent", price: "45 € HT / jour" },
        { name: "Sigma 28-70mm f/2.8 DG DN", spec: "Zoom standard compact", price: "45 € HT / jour" },
        { name: "Laowa 10mm", spec: "Ultra grand-angle", price: "40 € HT / jour" },
        { name: "Sony FE 12-24mm", spec: "Ultra grand-angle", price: "50 € HT / jour" },
      ],
    },
    {
      cat: "Son & production vidéo",
      items: [
        { name: "DJI Mic", spec: "Kit microphones sans fil", price: "35 € HT / jour" },
        { name: "Zoom H4", spec: "Enregistreur audio portable", price: "30 € HT / jour" },
        { name: "ATEM Mini Pro", spec: "Mélangeur vidéo HDMI · Streaming & multicam", price: "55 € HT / jour" },
      ],
    },
    {
      cat: "Éclairage",
      items: [
        { name: "SmallRig 120W", spec: "Éclairage LED continu", price: "40 € HT / jour" },
        { name: "Softbox 30 × 120 cm", spec: "Boîte à lumière rectangulaire", price: "20 € HT / jour" },
        { name: "Softbox 90 cm / 35\"", spec: "Boîte à lumière", price: "20 € HT / jour" },
        { name: "Godox V1-S", spec: "Flash cobra compatible Sony", price: "30 € HT / jour" },
        { name: "Godox X3-S", spec: "Déclencheur flash sans fil Sony", price: "15 € HT / jour" },
      ],
    },
    {
      cat: "Studio & accessoires",
      items: [
        { name: "Fond papier blanc 2,72 × 11 m + support 3 × 3 m", spec: "Kit studio complet à emporter. Le rouleau peut être conservé par le client à l'issue de la location — seul le support devra être retourné. Demande à faire à l'avance pour garantir la disponibilité.", price: "150 € HT / jour" },
        { name: "Trépied photo", spec: "Trépied réglable pour appareil photo", price: "15 € HT / jour" },
        { name: "Trépied vidéo", spec: "Trépied vidéo avec tête fluide", price: "25 € HT / jour" },
      ],
    },
  ];

  const RENTAL_INFO = {
    email: "makemediafrance@gmail.com",
    addressLines: ["6 bis Avenue de la Falaise", "38360 Sassenage"],
    note: "Les horaires de retrait et de retour sont convenus au moment de la réservation. Une caution ainsi qu'une pièce d'identité sont demandées lors du retrait du matériel. Tarifs exprimés en HT pour une journée de location. Matériel disponible uniquement sur réservation et sous réserve de disponibilité.",
  };

  // BEST_WORK : sélection de meilleures photos affichée juste après le Hero.
  // Fichiers dans assets/travaux/ (issus de context/import/TOP), redimensionnés en JPEG web.
  const BEST_WORK = [
    { id: "bw01", cap: "Freestyle moto — action nocturne", ratio: "3004 / 3755", src: "assets/travaux/bw01.jpg" },
    { id: "bw33", cap: "Portrait — studio mode", ratio: "3643 / 5464", src: "assets/travaux/bw33.jpg" },
    { id: "bw02", cap: "BMX — figure aérienne", ratio: "4147 / 2765", src: "assets/travaux/bw02.jpg" },
    { id: "bw03", cap: "Concert — chanteur sur scène", ratio: "1170 / 1462", src: "assets/travaux/bw03.jpg" },
    { id: "bw04", cap: "Détail bijou — shooting produit", ratio: "1080 / 1350", src: "assets/travaux/bw04.jpg" },
    { id: "bw05", cap: "Concert — chanteur sur scène", ratio: "1080 / 1350", src: "assets/travaux/bw05.jpg" },
    { id: "bw06", cap: "Concert — danseurs sur scène", ratio: "1080 / 1350", src: "assets/travaux/bw06.jpg" },
    { id: "bw07", cap: "Basket — duel aérien", ratio: "1080 / 1350", src: "assets/travaux/bw07.jpeg" },
    { id: "bw08", cap: "Soirée — moment convivial", ratio: "1080 / 1350", src: "assets/travaux/bw08.jpeg" },
    { id: "bw09", cap: "Soirée à thème — photobooth", ratio: "1080 / 1350", src: "assets/travaux/bw09.jpeg" },
    { id: "bw10", cap: "Portrait basket — rue", ratio: "760 / 1350", src: "assets/travaux/bw10.jpeg" },
    { id: "bw11", cap: "Portrait — golden hour", ratio: "1080 / 1350", src: "assets/travaux/bw11.jpeg" },
    { id: "bw12", cap: "Mariage — sortie de cérémonie", ratio: "1080 / 1350", src: "assets/travaux/bw12.jpeg" },
    { id: "bw13", cap: "Austra Rocks — soirée à thème", ratio: "2560 / 1707", src: "assets/travaux/bw13.jpeg" },
    { id: "bw14", cap: "Lifestyle — dîner", ratio: "819 / 1024", src: "assets/travaux/bw14.jpeg" },
    { id: "bw15", cap: "Concert — scène", ratio: "819 / 1024", src: "assets/travaux/bw15.jpeg" },
    { id: "bw16", cap: "Mariage — cortège", ratio: "1024 / 683", src: "assets/travaux/bw16.jpeg" },
    { id: "bw17", cap: "Soirée — ambiance", ratio: "1024 / 683", src: "assets/travaux/bw17.jpeg" },
    { id: "bw18", cap: "Basket — action match", ratio: "1024 / 683", src: "assets/travaux/bw18.jpeg" },
    { id: "bw19", cap: "Basket — portrait studio trophée", ratio: "683 / 1024", src: "assets/travaux/bw19.jpeg" },
    { id: "bw20", cap: "Mariage — château", ratio: "683 / 1024", src: "assets/travaux/bw20.jpeg" },
    { id: "bw21", cap: "Lifestyle — restaurant", ratio: "1024 / 683", src: "assets/travaux/bw21.jpeg" },
    { id: "bw22", cap: "Austra Rocks — photobooth spatial", ratio: "683 / 1024", src: "assets/travaux/bw22.jpeg" },
    { id: "bw23", cap: "Mariage — musiciens", ratio: "1024 / 683", src: "assets/travaux/bw23.jpeg" },
    { id: "bw24", cap: "Club — dancefloor", ratio: "1024 / 683", src: "assets/travaux/bw24.jpeg" },
    { id: "bw25", cap: "Basket — groupe", ratio: "1024 / 683", src: "assets/travaux/bw25.jpeg" },
    { id: "bw26", cap: "Basket — titre champion", ratio: "1024 / 682", src: "assets/travaux/bw26.jpeg" },
    { id: "bw27", cap: "Centaures de Grenoble — action", ratio: "1024 / 682", src: "assets/travaux/bw27.jpeg" },
    { id: "bw28", cap: "Portrait — tennisman studio", ratio: "682 / 1024", src: "assets/travaux/bw28.jpeg" },
    { id: "bw29", cap: "Soirée — portrait ambiance", ratio: "683 / 1024", src: "assets/travaux/bw29.jpeg" },
    { id: "bw30", cap: "Soirée — entre amis", ratio: "1024 / 683", src: "assets/travaux/bw30.jpeg" },
    { id: "bw31", cap: "Basket — dunk", ratio: "819 / 1024", src: "assets/travaux/bw31.jpeg" },
    { id: "bw32", cap: "Événement — prise de parole", ratio: "1080 / 1350", src: "assets/travaux/bw32.jpg" },
    { id: "bw34", cap: "Austra Rocks — vue depuis la foule", ratio: "4534 / 3627", src: "assets/travaux/bw34.jpg" },
    { id: "bw35", cap: "Portrait — mode bord de mer", ratio: "4028 / 6042", src: "assets/travaux/bw35.jpg" },
    { id: "bw36", cap: "Club — ambiance néon", ratio: "1280 / 720", src: "assets/travaux/bw36.jpeg" },
  ];

  // SHOWCASE : bandeau d'expertises en accordéon vidéo, 3ème section de la home.
  // "image" = photo de couverture (assets/terrains/). "video" prend le dessus si renseignée
  // (ex. "assets/travaux-video/photo.mp4"). Sans les deux => Placeholder.
  const SHOWCASE = [
    { id: "social", label: "Social Media", video: null, image: "assets/terrains/social.jpg" },
    { id: "photo", label: "Photo", video: null, image: "assets/terrains/photo.jpg" },
    { id: "video", label: "Vidéo", video: null, image: "assets/terrains/video.jpg" },
    { id: "mariage", label: "Mariage", video: null, image: "assets/terrains/mariage.jpg" },
    { id: "studio", label: "Studio", video: null, image: "assets/terrains/studio.jpg" },
    { id: "photobooth", label: "Photobooth", video: null, image: "assets/terrains/photobooth.jpg" },
    { id: "location", label: "Location", video: null },
  ];

  // BTS : mood board "coulisses", toutes les photos du shoot en vrac.
  const BTS = [
    { id: "bts04", cap: "Le calme avant le tournage.", ratio: "1080 / 1350", src: "assets/bts/bts04.jpg" },
    { id: "bts05", cap: "Ça tourne.", ratio: "828 / 1472", src: "assets/bts/bts05.jpg" },
    { id: "bts07", cap: "Sélection des meilleures images.", ratio: "1080 / 1350", src: "assets/bts/bts07.jpg" },
    { id: "bts08", cap: "Setup lumière du jour.", ratio: "1600 / 1200", src: "assets/bts/bts08.jpg" },
    { id: "bts09", cap: "Backstage.", ratio: "4672 / 7008", src: "assets/bts/bts09.jpg" },
    { id: "bts10", cap: "On répète le plan.", ratio: "1080 / 1350", src: "assets/bts/bts10.jpg" },
    { id: "bts12", cap: "Vérif du matériel avant le shoot.", ratio: "4032 / 3024", src: "assets/bts/bts12.jpg" },
    { id: "bts14", cap: "Un shoot ne s'improvise pas.", ratio: "4032 / 3024", src: "assets/bts/bts14.jpg" },
    { id: "bts16", cap: "L'équipe au complet sur le shoot.", ratio: "4032 / 3024", src: "assets/bts/bts16.jpg" },
    { id: "bts18", cap: "Derniers réglages avant la prise.", ratio: "2667 / 4000", src: "assets/bts/bts18.jpg" },
    { id: "bts20", cap: "Ce que vous ne voyez pas d'habitude.", ratio: "4032 / 3024", src: "assets/bts/bts20.jpg" },
    { id: "bts23", cap: "Focus, cadrage, action.", ratio: "5712 / 4284", src: "assets/bts/bts23.jpg" },
    { id: "bts24", cap: "On prépare la suite.", ratio: "4032 / 3024", src: "assets/bts/bts24.jpg" },
    { id: "bts25", cap: "Avant le clap.", ratio: "4032 / 3024", src: "assets/bts/bts25.jpg" },
    { id: "bts26", cap: "Réglages avant le shoot.", ratio: "5712 / 4284", src: "assets/bts/bts26.jpg" },
    { id: "bts27", cap: "Entre deux prises.", ratio: "4032 / 3024", src: "assets/bts/bts27.jpg" },
    { id: "bts28", cap: "Le calme avant le tournage.", ratio: "4032 / 3024", src: "assets/bts/bts28.jpg" },
    { id: "bts30", cap: "Montage en cours.", ratio: "5712 / 4284", src: "assets/bts/bts30.jpg" },
    { id: "bts32", cap: "Setup lumière du jour.", ratio: "2268 / 4032", src: "assets/bts/bts32.jpg" },
    { id: "bts33", cap: "Backstage.", ratio: "2268 / 4032", src: "assets/bts/bts33.jpg" },
    { id: "bts34", cap: "On répète le plan.", ratio: "4032 / 3024", src: "assets/bts/bts34.jpg" },
    { id: "bts36", cap: "Vérif du matériel avant le shoot.", ratio: "4032 / 3024", src: "assets/bts/bts36.jpg" },
    { id: "bts37", cap: "Dans les coulisses du studio.", ratio: "2268 / 4032", src: "assets/bts/bts37.jpg" },
    { id: "bts41", cap: "Repérage des lieux.", ratio: "4032 / 3024", src: "assets/bts/bts41.jpg" },
    { id: "bts42", cap: "Derniers réglages avant la prise.", ratio: "2268 / 4032", src: "assets/bts/bts42.jpg" },
    { id: "bts43", cap: "Petit aperçu du travail en cours.", ratio: "4032 / 3024", src: "assets/bts/bts43.jpg" },
    { id: "bts44", cap: "Ce que vous ne voyez pas d'habitude.", ratio: "4032 / 3024", src: "assets/bts/bts44.jpg" },
    { id: "bts45", cap: "Une journée de tournage.", ratio: "4032 / 3024", src: "assets/bts/bts45.jpg" },
    { id: "bts46", cap: "Le making-of.", ratio: "3265 / 4898", src: "assets/bts/bts46.jpg" },
  ];

  window.MM_DATA = { SERVICES, PROJECTS, CLIENTS, INSTAGRAM, SOCIALS, STUDIO_SPECS, RENTAL, RENTAL_INFO, BEST_WORK, SHOWCASE, BTS };
  window.MM_getProject = (id) => PROJECTS.find((p) => p.id === id) || null;
  window.MM_getService = (id) => SERVICES.find((s) => s.id === id) || null;
  // Un service ouvert a sa propre page (indexée par Google), les autres passent par la page générique.
  window.MM_serviceHref = (s) => (s.open && s.page ? s.page : `service.html?id=${s.id}`);
})();
