/* Marchés — actualités réelles (instantané du 28/07/2026, sources citées : AFP, Reuters, Zonebourse, Investing.com, BCE).
   Les cours restent indicatifs (mis à jour à la main) : ce fichier = le futur /api/marches.json, à brancher sur le flux réel. */

const slugify = (t) => t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 60);

const INDICES = [
  { sym: "PX1", nom: "CAC 40", val: "8 372,28", d: 0.88, spark: [100,99.2,98.6,99.4,98.5,99,99.7,100.3,100.8,101.2,100.9,101.5] },
  { sym: "SPX", nom: "S&P 500", val: "7 486,20", d: 0.42, spark: [100,100.5,100.2,100.8,101.1,100.7,101.3,101.6,101.4,101.9,102.1,102.4] },
  { sym: "IXIC", nom: "Nasdaq", val: "25 640,80", d: 0.65, spark: [100,101,100.2,101.4,100.6,101.8,101.2,102,102.6,102.2,102.9,103.3] },
  { sym: "SX5E", nom: "Euro Stoxx 50", val: "5 501,22", d: 0.18, spark: [100,100.4,100.2,100.9,101.3,101,101.6,101.4,102,101.8,102.2,102.3] },
  { sym: "OR", nom: "Or (once)", val: "3 341 $", d: 0.95, spark: [100,100.6,101.4,101.1,102,102.8,102.5,103.4,104.1,103.8,104.6,105.5] },
  { sym: "BTC", nom: "Bitcoin", val: "65 414 $", d: 0.94, spark: [100,101,99.5,98.8,99.6,98.4,99,99.8,100.6,100.2,100.9,101.4] },
  { sym: "EUR", nom: "EUR/USD", val: "1,0942", d: 0.12, spark: [100,100.1,100,100.2,100.3,100.2,100.4,100.3,100.5,100.4,100.5,100.6] },
  { sym: "BRT", nom: "Pétrole (Brent)", val: "90,10 $", d: -1.35, spark: [100,103,108,112,110,106,102,99,96,93,91.5,90.4] },
];

const PALMARES = {
  hausses: [
    { sym: "MC", nom: "LVMH", d: 3.42 },
    { sym: "RMS", nom: "Hermès", d: 2.81 },
    { sym: "STM", nom: "STMicroelectronics", d: 2.14 },
  ],
  baisses: [
    { sym: "ATO", nom: "Atos", d: -4.62 },
    { sym: "RNO", nom: "Renault", d: -2.35 },
    { sym: "TEP", nom: "Teleperformance", d: -1.88 },
  ],
};

const CATS = ["Tout", "Indices", "Actions", "Macro", "Crypto", "Mes valeurs"];
const CAT_TONE = { Indices: "brand", Actions: "positive", Macro: "warning", Crypto: "neutral", "Pédagogie": "brand" };
const CAT_VISUAL = {
  Indices: { icon: "trending-up", bg: "#EEF3FF", color: "var(--brand-blue)" },
  Actions: { icon: "building-2", bg: "#E4F6EE", color: "var(--positive)" },
  Macro: { icon: "landmark", bg: "#FDF3E2", color: "#B9770A" },
  Crypto: { icon: "bitcoin", bg: "#F1F2F6", color: "var(--text-muted)" },
  "Pédagogie": { icon: "book-open", bg: "#EEF3FF", color: "var(--brand-indigo, #767CFF)" },
};

/* ---- Fiches valeurs (démo) ---- */
const VALEURS = [
  { sym: "PX1", nom: "CAC 40", type: "Indice", val: "8 372,28", d: 0.88, an: 7.2, stats: { ouv: "8 284,68", haut: "8 372,41", bas: "8 278,64" }, spark: [100,101,100.4,102,101.6,103,102.5,103.8,104.2,103.9,104.8,105.3], desc: "L'indice phare de la Bourse de Paris : les 40 plus grandes capitalisations françaises, pondérées par le flottant." },
  { sym: "SPX", nom: "S&P 500", type: "Indice", val: "7 486,20", d: 0.42, an: 16.8, stats: { ouv: "7 455,10", haut: "7 492,60", bas: "7 448,30" }, spark: [100,100.8,101.2,100.9,101.8,102.4,102.1,103,103.6,103.2,104,104.4], desc: "Les 500 plus grandes entreprises cotées américaines — la référence mondiale des marchés actions." },
  { sym: "MC", nom: "LVMH", type: "Action · Luxe", val: "612,30 €", d: 3.42, an: -2.1, stats: { ouv: "594,80 €", haut: "614,10 €", bas: "593,20 €" }, spark: [100,99,98.5,99.5,98,97.2,98.4,99,100.2,101,102.6,103.4], desc: "Numéro un mondial du luxe : mode, maroquinerie, vins et spiritueux, joaillerie et distribution sélective." },
  { sym: "RMS", nom: "Hermès", type: "Action · Luxe", val: "2 410,00 €", d: 2.81, an: 6.8, stats: { ouv: "2 348,00 €", haut: "2 416,50 €", bas: "2 341,00 €" }, spark: [100,100.5,101,100.2,101.4,102,101.6,102.8,103.5,103,104.2,104.8], desc: "Maison de luxe familiale, réputée pour sa maroquinerie et l'une des valorisations les plus élevées de la cote." },
  { sym: "TTE", nom: "TotalEnergies", type: "Action · Énergie", val: "70,86 €", d: -0.48, an: 4.9, stats: { ouv: "71,20 €", haut: "71,45 €", bas: "70,60 €" }, spark: [100,100.8,100.4,101.2,100.9,100.2,100.6,100.1,99.8,100.3,99.9,99.5], desc: "Groupe multi-énergies : pétrole, gaz, électricité et renouvelables. L'un des rendements les plus élevés du CAC 40." },
  { sym: "AI", nom: "Air Liquide", type: "Action · Chimie", val: "186,42 €", d: 0.35, an: 11.6, stats: { ouv: "185,90 €", haut: "186,80 €", bas: "185,30 €" }, spark: [100,100.4,100.8,100.6,101.2,101.6,101.4,102,102.4,102.2,102.8,103.1], desc: "Leader mondial des gaz industriels et médicaux. 39 années de dividende sans interruption." },
  { sym: "STM", nom: "STMicroelectronics", type: "Action · Semi-conducteurs", val: "31,84 €", d: 2.14, an: -8.3, stats: { ouv: "31,20 €", haut: "31,95 €", bas: "31,05 €" }, spark: [100,98,97,98.5,96.8,97.5,96.2,97,98.2,99,100.4,101.2], desc: "Fabricant franco-italien de puces, exposé à l'automobile, l'industriel et l'électronique grand public." },
  { sym: "STLA", nom: "Stellantis", type: "Action · Automobile", val: "5,09 €", d: 1.92, an: -32.4, stats: { ouv: "5,00 €", haut: "5,12 €", bas: "4,98 €" }, spark: [100,96,93,90,88,85,83,84,82,83,84.5,86], desc: "Quatrième constructeur automobile mondial (Peugeot, Fiat, Jeep, Opel…), en pleine restructuration." },
  { sym: "ATO", nom: "Atos", type: "Action · Services numériques", val: "0,42 €", d: -4.62, an: -61.0, stats: { ouv: "0,44 €", haut: "0,45 €", bas: "0,41 €" }, spark: [100,92,85,80,72,68,61,55,50,46,42,39], desc: "Groupe de services numériques en restructuration financière. Dossier très spéculatif." },
  { sym: "RNO", nom: "Renault", type: "Action · Automobile", val: "43,18 €", d: -2.35, an: 12.7, stats: { ouv: "44,10 €", haut: "44,25 €", bas: "43,02 €" }, spark: [100,101,102.4,103,104.2,105,106.5,105.8,107,106.2,105,104.4], desc: "Constructeur automobile français, porté par le succès de sa gamme hybride et de Dacia." },
  { sym: "TEP", nom: "Teleperformance", type: "Action · Services", val: "84,60 €", d: -1.88, an: -18.9, stats: { ouv: "86,10 €", haut: "86,40 €", bas: "84,20 €" }, spark: [100,97,95,93,94,91,90,88,86,84,82.5,81], desc: "Leader mondial de la relation client externalisée, sous pression face à l'automatisation par l'IA." },
  { sym: "BTC", nom: "Bitcoin", type: "Crypto-actif", val: "65 414 $", d: 0.94, an: -44.7, stats: { ouv: "64 850 $", haut: "65 780 $", bas: "64 320 $" }, spark: [100,102,104,103,106,104.5,107,105,103.5,104.5,102,101.2], desc: "Premier crypto-actif par capitalisation. Très volatil : à dimensionner comme une poche de risque, jamais comme un socle." },
  { sym: "ETH", nom: "Ether", type: "Crypto-actif", val: "3 262 $", d: 0.61, an: -38.2, stats: { ouv: "3 242 $", haut: "3 291 $", bas: "3 228 $" }, spark: [100,101,103,102,104,105.5,104.8,106,107.2,106.5,108,108.6], desc: "Le jeton de la blockchain Ethereum, support de la finance décentralisée et de la tokenisation d'actifs." },
  { sym: "BRT", nom: "Pétrole Brent", type: "Matière première", val: "90,10 $", d: -1.35, an: 15.2, stats: { ouv: "91,25 $", haut: "91,60 $", bas: "89,70 $" }, spark: [100,100.5,101,100.6,100.2,100.8,100.4,100,99.6,100,99.4,99.2], desc: "Le baril de référence en Europe. Son cours pèse sur l'inflation, l'énergie et les valeurs pétrolières." },
  { sym: "EUR", nom: "EUR/USD", type: "Devise", val: "1,0942", d: 0.12, an: 1.8, stats: { ouv: "1,0929", haut: "1,0951", bas: "1,0924" }, spark: [100,100.1,100,100.2,100.3,100.2,100.4,100.3,100.5,100.4,100.5,100.6], desc: "La parité euro-dollar, déterminante pour les exportateurs européens et les placements en dollars." },
];

const UNE = {
  cat: "Macro", src: "BCE · Banque de France", time: "23 juil.",
  titre: "La BCE laisse ses taux inchangés, le choc énergétique sous surveillance",
  chapo: "Le taux de dépôt reste à 2,25 %, une pause après la hausse du 11 juin — la première en trois ans, décidée face au rebond de l'inflation lié au conflit au Moyen-Orient. Une nouvelle hausse en septembre n'est pas exclue.",
  impact: "Ce que ça change pour vous : les livrets et fonds euros restent bien orientés, mais le crédit se renchérit tant que les taux longs montent. Pas de raison de bouger votre épargne.",
  body: [
    "Le conseil des gouverneurs a laissé ses trois taux directeurs inchangés jeudi 23 juillet : dépôt à 2,25 %, refinancement à 2,40 %, prêt marginal à 2,65 %. « La décision était unanime », a indiqué Christine Lagarde, tout en reconnaissant que certains gouverneurs s'interrogeaient sur l'opportunité d'une hausse dès cette réunion.",
    "L'inflation de la zone euro est redescendue à 2,8 % sur un an en juin, après 3,2 % en mai, mais la BCE juge que l'incidence du choc énergétique — les prix du pétrole restent très au-dessus de leurs niveaux d'avant le conflit au Moyen-Orient — ne s'est pas encore totalement matérialisée.",
    "Côté taux longs, l'OAT française à 10 ans a franchi le seuil des 4 % le jour même, un plus haut depuis octobre 2008. Conséquences concrètes : des crédits immobiliers qui pourraient remonter dans les prochaines semaines, et des fonds euros mieux rémunérés à terme.",
  ],
  valeurs: ["EUR"],
};

const ACTUS = [
  { cat: "Indices", src: "AFP", time: "27 juil., 19 h 17", titre: "La Bourse de Paris profite de la chute des prix du pétrole",
    chapo: "Le Brent retombe vers 90 dollars après avoir dépassé les 100 dollars la semaine dernière au plus fort des tensions en mer Rouge. Le CAC 40 en profite pour repasser au-dessus des 8 300 points.",
    body: [
      "L'accalmie entre Washington et Téhéran ce week-end a fait chuter les cours du brut : le Brent, référence internationale, évolue autour de 90 dollars le baril, après un pic au-delà des 100 dollars la semaine dernière lié aux attaques en mer Rouge.",
      "La cote parisienne respire : les valeurs sensibles aux coûts de l'énergie et du transport mènent le rebond, et l'indice, brièvement passé sous les 8 300 points la semaine dernière, se rapproche de nouveau des 8 400.",
      "Prudence toutefois : la situation au Moyen-Orient reste volatile, et avec elle le pétrole — donc l'inflation et la trajectoire des banques centrales.",
    ], valeurs: ["PX1", "BRT"] },
  { cat: "Actions", src: "AFP", time: "27 juil., 20 h 10", titre: "LVMH dépasse les attentes au premier semestre",
    chapo: "Le numéro un mondial du luxe publie des résultats stables mais supérieurs aux attentes, dans un secteur qui reprend de l'élan après trois ans de morosité.",
    body: [
      "LVMH a publié lundi des résultats semestriels stables sur un an, au-dessus du consensus des analystes, malgré un contexte que le groupe qualifie encore de perturbé.",
      "Le marché y voit surtout la confirmation que le secteur du luxe sort de trois années de passage à vide, portant l'ensemble du compartiment à la Bourse de Paris.",
      "Lecture Naboo : le luxe pèse lourd dans le CAC 40 — quand LVMH et Hermès vont mieux, votre PEA investi en France le ressent, même sans détenir ces titres en direct.",
    ], valeurs: ["MC", "RMS", "PX1"] },
  { cat: "Crypto", src: "Investing.com", time: "27 juil.", titre: "Le bitcoin repasse les 65 000 $ avec l'accalmie au Moyen-Orient",
    chapo: "La pause dans les frappes entre les États-Unis et l'Iran redonne de l'appétit pour le risque. Les ETF bitcoin au comptant enchaînent sept séances de collecte nette.",
    body: [
      "Le bitcoin est repassé au-dessus des 65 000 dollars lundi, dans le sillage de la détente géopolitique qui a aussi fait chuter le pétrole.",
      "Les ETF bitcoin au comptant américains affichent des flux nets entrants sur sept séances consécutives depuis le 14 juillet — signe d'une demande institutionnelle qui se reconstitue.",
      "Rappel utile : sur un an, le bitcoin reste en baisse d'environ 45 %. Dans une épargne équilibrée, la crypto se dimensionne selon ce que l'on accepte de perdre, pas selon ce que l'on espère gagner.",
    ], valeurs: ["BTC", "ETH"] },
  { cat: "Macro", src: "Reuters", time: "23 juil.", titre: "L'OAT à 10 ans repasse les 4 %, une première depuis 2008",
    chapo: "Le taux d'emprunt de la France à dix ans a franchi jeudi le seuil des 4 %, son plus haut niveau depuis octobre 2008.",
    body: [
      "La remontée s'explique par le rebond de l'inflation énergétique et par le resserrement de la BCE, qui a relevé ses taux en juin pour la première fois en trois ans.",
      "Pour les emprunteurs, c'est le signal à surveiller : si l'OAT reste durablement au-dessus des 4 %, les banques finiront par remonter leurs barèmes de crédit immobilier.",
      "Pour les épargnants, la contrepartie est plus agréable : les fonds euros, gorgés d'obligations, voient leur rendement futur s'améliorer.",
    ], valeurs: ["EUR"] },
  { cat: "Actions", src: "Reuters", time: "27 juil., 19 h 38", titre: "Michelin : résultat opérationnel meilleur que prévu, prudence sur l'Iran",
    chapo: "Le groupe de Clermont-Ferrand dépasse les attentes, mais prévient que la visibilité reste limitée tant que le conflit pèse sur l'énergie et le transport.",
    body: [
      "Michelin a publié lundi un résultat opérationnel semestriel supérieur aux attentes des analystes, porté par la tenue des prix et le mix produits.",
      "La direction reste prudente pour le second semestre : le coût des matières premières et du fret dépendra de l'évolution du conflit au Moyen-Orient.",
    ] },
  { cat: "Indices", src: "Zonebourse", time: "27 juil., 20 h 08", titre: "Apple reprend à Nvidia la première capitalisation de Wall Street",
    chapo: "Les semi-conducteurs marquent le pas avant la réunion de la Fed : Nvidia cède 2,6 %, AMD 4,3 %, Micron 4,2 %.",
    body: [
      "La rotation se poursuit à Wall Street : les grandes valeurs de puces, stars de la cote depuis deux ans, subissent des prises de bénéfices, et Apple redevient la première capitalisation mondiale devant Nvidia.",
      "Le mouvement traduit moins une défiance envers l'IA qu'un repositionnement avant la décision de la Réserve fédérale mercredi et une semaine chargée en résultats technologiques.",
    ], valeurs: ["SPX"] },
  { cat: "Actions", src: "AFP", time: "27 juil.", titre: "Puces : CXMT s'envole de plus de 500 % pour ses débuts à Shanghai",
    chapo: "Le champion chinois des mémoires devient la première capitalisation de Chine continentale dès sa première séance, nouvelle illustration de la fièvre autour de l'IA.",
    body: [
      "Le fabricant de puces mémoires CXMT a vu son titre flamber de plus de 500 % lundi pour sa première journée de cotation à Shanghai.",
      "L'opération illustre l'effort massif de la Chine pour bâtir une filière de semi-conducteurs indépendante — et l'appétit intact des investisseurs pour tout ce qui touche à l'intelligence artificielle, en Asie comme ailleurs.",
    ], valeurs: ["STM"] },
  { cat: "Macro", src: "Reuters", time: "27 juil.", titre: "Wall Street entame une semaine décisive : Fed mercredi, avalanche de résultats",
    chapo: "La Bourse de New York a ouvert la semaine en hausse, aidée par la détente du pétrole. Les compagnies aériennes en profitent, l'énergie recule.",
    body: [
      "Les indices américains ont ouvert lundi dans le vert, portés par la chute des cours du brut : les compagnies aériennes, très sensibles au prix du carburant, mènent la hausse (Delta +2,7 %), tandis que les pétrolières reculent.",
      "Le rendez-vous de la semaine reste la décision de la Réserve fédérale mercredi, suivie d'une avalanche de résultats d'entreprises, notamment dans la technologie.",
      "AstraZeneca a par ailleurs dépassé les attentes au deuxième trimestre, portée par ses traitements contre le cancer (+16 % sur un an).",
    ], valeurs: ["SPX"] },
];

const CONTINU = [
  { cat: "Actions", src: "AFP", time: "9 h 41", titre: "Orange pénalisé par une note prudente de Barclays",
    chapo: "La banque juge le potentiel de hausse limité à court terme. En toile de fond, le dossier Altice avance.",
    body: [
      "Orange évolue en bas du classement du CAC 40 après que Barclays a estimé que le potentiel de hausse du titre était limité à court terme.",
      "Sur le front des télécoms, Iliad, Orange et Bouygues s'apprêtent par ailleurs à notifier aux autorités de la concurrence leur projet de rachat d'Altice France — une opération qui redessinerait le marché français.",
    ] },
  { cat: "Actions", src: "Zonebourse", time: "9 h 18", titre: "EssilorLuxottica recule, doutes sur les lunettes intelligentes",
    chapo: "Le titre perd du terrain, les analystes s'interrogeant sur le rythme de croissance du segment.",
    body: [
      "EssilorLuxottica cède du terrain à Paris : des doutes subsistent quant à la croissance des lunettes connectées, l'un des relais de croissance mis en avant par le groupe.",
      "Le titre reste l'une des grandes réussites de la cote sur cinq ans ; la question du jour porte sur la valorisation, pas sur le modèle.",
    ] },
  { cat: "Macro", src: "Reuters", time: "8 h 52", titre: "Le pétrole se stabilise autour de 90 dollars",
    chapo: "Après une chute de plus de 4 % en fin de semaine dernière, le Brent se pose. Le marché relativise la menace en mer Rouge.",
    body: [
      "Le Brent évolue autour de 90 dollars le baril, loin de son pic au-dessus des 100 dollars atteint au plus fort des tensions : les rebelles houthis assurent ne pas vouloir paralyser le trafic en mer Rouge.",
      "Pour l'épargnant, l'enjeu est indirect mais réel : le pétrole conditionne l'inflation, donc les taux — donc les fonds euros, les livrets et le crédit.",
    ], valeurs: ["BRT"] },
  { cat: "Macro", src: "AFP", time: "8 h 30", titre: "Fed : statu quo attendu mercredi, la conférence de presse scrutée",
    chapo: "Les marchés parient sur des taux inchangés. Le ton du président de la Fed sur l'inflation résiduelle fera la séance.",
    body: [
      "La Réserve fédérale rend sa décision mercredi soir. Le consensus attend un statu quo, mais c'est le discours qui comptera : la banque centrale américaine garde un ton ferme face à une inflation résiduelle entretenue par les prix de l'énergie.",
      "Une Fed plus dure que prévu pèserait sur les actions et le bitcoin ; un ton apaisé prolongerait le rebond entamé lundi.",
    ], valeurs: ["SPX"] },
];

const CONSULTEES = [
  { sym: "BRT", nom: "Pétrole Brent", val: "90,10 $", d: -1.35 },
  { sym: "PX1", nom: "CAC 40", val: "8 372,28", d: 0.88 },
  { sym: "MC", nom: "LVMH", val: "612,30 €", d: 3.42 },
  { sym: "BTC", nom: "Bitcoin", val: "65 414 $", d: 0.94 },
  { sym: "TTE", nom: "TotalEnergies", val: "70,86 €", d: -0.48 },
];

const PEDAGO = [
  { tag: "Les bases", cat: "Pédagogie", src: "Naboo", time: "Guide", titre: "La cotation d'une action en Bourse, expliquée simplement",
    chapo: "Qui fixe le prix d'une action, pourquoi il bouge en permanence, et ce que ça implique quand vous passez un ordre.",
    body: [
      "Le prix d'une action n'est fixé par personne : il résulte en continu de la confrontation entre les ordres d'achat et de vente dans le carnet d'ordres d'Euronext.",
      "Quand il y a plus d'acheteurs que de vendeurs à un prix donné, le cours monte jusqu'à trouver de nouveaux vendeurs — et inversement. C'est pour cela qu'une bonne nouvelle déjà anticipée peut faire baisser un titre : elle était « dans les cours ».",
      "En pratique, pour un particulier : privilégiez les ordres à cours limité, qui fixent le prix maximum (ou minimum) que vous acceptez, plutôt que les ordres « au marché » exécutés à n'importe quel prix.",
    ] },
  { tag: "Guide", cat: "Pédagogie", src: "Naboo", time: "Guide", titre: "Comprendre le PEA pas à pas : avantages, règles et fiscalité",
    chapo: "L'enveloppe la plus avantageuse pour investir en actions européennes — à condition d'en connaître les règles.",
    body: [
      "Le PEA permet d'investir jusqu'à 150 000 € en actions européennes (ou ETF éligibles) avec une fiscalité imbattable : après 5 ans de détention, les gains ne supportent que les prélèvements sociaux de 17,2 %, sans impôt sur le revenu.",
      "La contrepartie : tout retrait avant 5 ans entraîne la clôture du plan. La date qui compte est celle de l'ouverture — d'où l'intérêt de « prendre date » tôt, même avec un petit versement.",
      "Via des ETF éligibles, un PEA peut aussi s'exposer aux marchés mondiaux : c'est la stratégie la plus simple pour un investisseur de long terme.",
    ] },
  { tag: "Comparatif", cat: "Pédagogie", src: "Naboo", time: "Guide", titre: "Assurance-vie ou PEA : lequel pour quel projet ?",
    chapo: "Les deux enveloppes préférées des Français ne servent pas les mêmes objectifs. Le bon réflexe : les combiner.",
    body: [
      "Le PEA est imbattable pour faire fructifier un capital en actions sur le long terme : frais réduits, fiscalité minimale après 5 ans. Mais il est limité aux actions européennes et ne prévoit rien pour la transmission.",
      "L'assurance-vie est plus souple : fonds euros sécurisé, supports diversifiés, retraits possibles à tout moment, et un cadre successoral très avantageux (abattement de 152 500 € par bénéficiaire pour les versements avant 70 ans).",
      "En pratique, les deux se complètent : PEA pour la performance actions, assurance-vie pour la sécurité, les projets à moyen terme et la transmission.",
    ] },
];

const BREVES = [
  { time: "9 h 12", txt: "L'OAT 10 ans évolue au-dessus de 4 %, un plus haut depuis octobre 2008." },
  { time: "8 h 55", txt: "AstraZeneca dépasse les attentes au T2, portée par l'oncologie (+16 % sur un an)." },
  { time: "8 h 40", txt: "Le Brent se stabilise autour de 90 $ après l'accalmie en mer Rouge." },
  { time: "8 h 20", txt: "Fed : décision mercredi, les marchés parient sur un statu quo." },
  { time: "8 h 05", txt: "Inflation zone euro : 2,8 % sur un an en juin, après 3,2 % en mai." },
  { time: "7 h 45", txt: "Semaine chargée de résultats à Wall Street, notamment dans la technologie." },
];

/* Tous les articles, avec slug (pour l'URL) */
const ALL_ARTICLES = [UNE].concat(ACTUS, CONTINU, PEDAGO).map((a) => Object.assign(a, { slug: slugify(a.titre) }));

window.NabooMarchesData = { INDICES, PALMARES, CATS, CAT_TONE, CAT_VISUAL, VALEURS, UNE, ACTUS, CONTINU, CONSULTEES, PEDAGO, BREVES, ALL_ARTICLES, slugify };
