Citation: 4A_559/2021 E. A

A.a. (...) Depuis 2012, A.________ SA (la demanderesse), sise dans le canton de Berne, était le "sponsor-titre" de concours (...) organisés par Z.________ SPRL (la défenderesse), société à responsabilité limitée ancrée en Belgique. En 2015, les parties ont décidé de remplacer les accords existants par un seul contrat. A.b. A cette fin, elles ont conclu le 4 décembre 2016 un Accord global rédigé en anglais ( Global Agreement) qui devait durer jusqu'au 31 décembre 2022. Z.________ SPRL concédait à A.________ SA des droits de sponsoring dans trois compétitions (...). En contrepartie, cette dernière devait verser une contribution de sponsoring ( Sponsor Fee) atteignant EUR 8'600'000.- pour chacune des cinq saisons sportives comprises entre 2017/2018 et 2021/2022 (art. 6.1). La somme due se décomposait à raison de EUR 3'000'000.- par an pour le concours de Los Angeles, EUR 3'000'000.- pour le concours de Paris et EUR 2'600'000.- pour le concours de Hong Kong. Le tournoi de Los Angeles a ensuite été déplacé dans la ville de New York, ce qui a été réglé par avenant du 8 septembre 2017. L'Accord global prévoyait un versement échelonné des contributions dues pour chaque tournoi (art. 6.1). L'art. 10.1 apportait la précision suivante en cas de résiliation: " Except where expressly stated otherwise, the (...) termination of this Agreement shall be without prejudice to any existing (...) claims that the terminating Party may have against the other (...)." A la fin du contrat, la société belge devait cesser d'utiliser les signes distinctifs de A.________ SA (art. 10.3). L'art. 12.2 permettait de résilier l'accord en cas de force majeure. Un remboursement des contributions de sponsoring était prévu à l'art. 13.4: " If (...) an Event is postponed or cancelled and is not rescheduled, Z.________ SPRL will either: 13.4.1 (...); or 13.4.2 reimburse to A.________ SA a reasonable proportion of the Sponsor Fee taking into account the concerned (...) Event, such proportion to be agreed between the Parties." Enfin, le contrat contenait une élection en faveur du droit suisse (art. 21.1) et déclarait exclusivement compétents les tribunaux du siège de A.________ SA (...) dans le canton de Berne (art. 21.3). A.c. Un concours à Lausanne s'est ajouté à cette série de compétitions sponsorisées. Les parties ont élaboré un contrat du 18 mars 2019 ( Lausanne Agreement) conférant à A.________ SA les mêmes droits de sponsoring que l'Accord global. En échange, A.________ SA s'engageait à payer une contribution de EUR 1'200'000.-. Un échéancier de paiement était également prévu. Le droit au remboursement des contributions de sponsoring était régi par l'art. 14.4, reproduit ci-dessous: " If any of the Events during the Term is postponed or cancelled and is not rescheduled, [Z.________ SPRL] will reimburse to A.________ SA the Sponsor Fee for the Event." A.d. Dès 2019, A.________ SA a commencé à verser les premières tranches de paiement prévues pour les concours 2020. Ainsi, pour Hong Kong 2020, programmé du 14 au 16 février 2020, elle a versé EUR 780'000.- le 7 juin 2019 et EUR 780'000.- le 25 octobre 2019. Pour New York 2020, censé se dérouler du 23 au 26 avril 2020, elle a payé EUR 900'000.- le 26 juillet 2019. Pour Lausanne 2020, planifié du 18 au 21 juin 2020, elle a versé EUR 360'000.- le 17 octobre 2019 et EUR 360'000.- le 9 mars 2020. Enfin, pour Paris 2020, agendé du 3 au 6 décembre 2020, elle a viré EUR 900'000.- le 9 mars 2020. En raison du COVID, le concours de New York 2020 a été annulé le 16 septembre 2019; aucune date de remplacement n'a été trouvée. Les 7 janvier et 6 mars 2020, A.________ SA a vainement exigé le remboursement de son paiement. Le 29 janvier 2020, la compétition de Hong Kong 2020 a elle aussi été annulée à cause de la situation sanitaire. Aucun remplacement n'a été trouvé. Le 18 mars 2020, le concours de Lausanne a à son tour été annulé sans qu'une date de remplacement ait été fixée. A.e. Le 6 mai 2020, A.________ SA a résilié les contrats qui la liaient à Z.________ SPRL. En conséquence, le concours de Paris a dû être annulé.