/* La page /press/ (4 nov., maquette) : la grammaire de /sand3d/ (bande claire, tuiles blanches arrondies, Inter 300 pour les
   titres, texte noir puis gris) pour un kit presse. Le Worker interdit les styles en ligne : tout est ici. */
.pr-page main { --pr-encre: #121117; --pr-gris: #6E6B76; --pr-pale: #8E8B96; --pr-fond: #F7F6F3; --pr-creux: #EFEEEA;
  --pr-filet: rgba(18, 17, 23, .1); background: var(--pr-fond); color: var(--pr-encre); }
.pr-centre { text-align: center; }
.pr-sur { margin: 0 0 14px; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--pr-gris); }
.pr-gris { color: var(--pr-pale); }
.pr-page a:focus-visible, .pr-page button:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 6px; }

/* Ouverture */
.pr-ouverture { padding: clamp(64px, 7vw, 112px) 0 clamp(40px, 4vw, 56px); }
.pr-h1 { margin: 0; font-size: clamp(36px, 6.4vw, 76px); font-weight: 300; line-height: 1.02; letter-spacing: -.035em; text-wrap: balance; }
.pr-h1 > span { display: block; }
.pr-lead { max-width: 30em; margin: 22px auto 0; font-size: clamp(17px, 1.35vw, 20px); font-weight: 300; line-height: 1.45; color: var(--pr-gris); }
@media (max-width: 640px) { .pr-lead br { display: none; } }

/* Boutons : les mesures des boutons de /sand3d/ (38 px, 13 px, coins de 12 px) */
.pr-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 30px; }
.pr-actions.gauche { justify-content: flex-start; }
.pr-btn { display: inline-flex; align-items: center; gap: .5rem; height: 2.375rem; padding: 0 1rem; border-radius: .75rem;
  background: var(--pr-encre); color: #F7F6F3; font-size: .8125rem; font-weight: 500; letter-spacing: .01em; white-space: nowrap;
  transition: opacity .2s ease, background-color .2s ease; }
.pr-btn:hover { opacity: .86; }
.pr-btn:active { transform: scale(.97); }
.pr-btn .ic { width: .9rem; height: .9rem; flex: none; }
.pr-btn-n { font-weight: 400; opacity: .6; }
/* le logo du réseau dans les boutons du contact ; le visage de Hugging Face a du blanc autour : plus grand, comme sur /sand3d/ */
.pr-btn-logo { flex: none; width: 1rem; height: 1rem; }
.pr-btn.second:not(.sombre) .pr-btn-logo { filter: invert(1); }   /* les logos du site sont blancs */
.pr-btn-mini { height: 1.875rem; padding: 0 .75rem; font-size: .75rem; }
.pr-btn-logo[src$="hugging-face.svg"] { width: 1.3125rem; height: 1.3125rem; margin: 0 -.0625rem; }
.pr-btn.second { background: #fff; color: var(--pr-encre); box-shadow: inset 0 0 0 1px rgba(18, 17, 23, .14); }
.pr-btn.second:hover { opacity: 1; background: var(--pr-creux); }
.pr-btn.clair { background: #F7F6F3; color: var(--pr-encre); }
.pr-btn.second.sombre { background: #242329; color: #F7F6F3; box-shadow: inset 0 0 0 1px rgba(142, 139, 150, .28); }
.pr-btn.second.sombre:hover { background: #2E2D33; }
.pr-page .btn-fleche { flex: none; width: .618em; height: .618em; }

/* La barre des ancres, collée sous l'en-tête (60 px) au défilement, comme les barres locales des pages produit d'Apple */
.pr-barre { position: sticky; top: 60px; z-index: 10; border-bottom: 1px solid var(--pr-filet); background: rgba(247, 246, 243, .86);
  -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); }
.pr-barre ul { display: flex; justify-content: center; gap: 4px; width: min(var(--w), 100% - 2rem); margin: 0 auto; padding: 8px 0;
  list-style: none; overflow-x: auto; scrollbar-width: none; }
.pr-barre a { display: block; padding: 6px 12px; border-radius: 999px; font-size: 13px; color: var(--pr-gris); white-space: nowrap;
  transition: color .2s ease, background-color .2s ease; }
.pr-barre a:hover { color: var(--pr-encre); }
.pr-barre a[aria-current="true"] { background: #fff; color: var(--pr-encre); box-shadow: inset 0 0 0 1px var(--pr-filet); }
@media (max-width: 760px) { .pr-barre ul { justify-content: flex-start; } }
.pr-page { scroll-padding-top: 120px; }
html:has(.pr-page) { scroll-padding-top: 120px; }

/* Sections : la tête à gauche, la ligne grise à droite calée sur le bas du titre */
.pr-sec { padding: clamp(56px, 6vw, 96px) 0 0; }
.pr-sec:last-of-type { padding-bottom: clamp(64px, 7vw, 112px); }
.pr-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 48px; flex-wrap: wrap;
  margin-bottom: clamp(24px, 3vw, 36px); }
.pr-h2 { margin: 0; font-size: clamp(30px, 3.6vw, 48px); font-weight: 300; line-height: 1.05; letter-spacing: -.03em; }
.pr-tete-l { max-width: 24em; margin: 0; font-size: 15px; line-height: 1.5; color: var(--pr-gris); }
.pr-k { display: flex; flex-direction: column; gap: 2px; margin: 0; font-size: 15px; font-weight: 500; color: var(--pr-encre); }
.pr-k span { font-size: 13px; font-weight: 400; color: var(--pr-gris); }

/* Les faits : une fiche blanche à filets, deux colonnes de rangées */
.pr-faits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin: 0; padding: 8px 32px;
  border-radius: 20px; background: #fff; }
.pr-fait { display: grid; grid-template-columns: 9rem 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--pr-filet); }
.pr-fait:nth-last-child(-n+2) { border-bottom: 0; }
.pr-fait dt { font-size: 13px; color: var(--pr-gris); }
.pr-fait dd { margin: 0; font-size: 15px; line-height: 1.5; }
.pr-fait a { text-decoration: underline; text-decoration-color: var(--pr-filet); text-underline-offset: 3px; }
.pr-fait a:hover { text-decoration-color: currentColor; }
@media (max-width: 760px) {
  .pr-faits { grid-template-columns: 1fr; padding: 4px 20px; }
  .pr-fait { grid-template-columns: 7rem 1fr; }
  .pr-fait:nth-last-child(2) { border-bottom: 1px solid var(--pr-filet); }
}

/* L'actualité en tête de /press/ : la carte de l'article à la une du blog. L'image à gauche ; la rubrique, le titre, le
   chapeau, la date et le temps de lecture à droite. Toute la carte mène au communiqué. */
/* un filet fin entre les news et le kit qui suit (Tanguy, 4 nov.) */
.pr-une { padding: clamp(48px, 5vw, 80px) 0 clamp(48px, 5vw, 72px); border-bottom: 1px solid var(--pr-filet); }
.pr-une-h1 { margin: 0 0 clamp(24px, 3vw, 36px); text-align: left; }
.pr-une-carte { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); overflow: hidden; border-radius: 24px;
  background: #fff; color: inherit; transition: box-shadow .25s ease; }
.pr-une-carte:hover { box-shadow: 0 1px 2px rgba(18, 17, 23, .05), 0 18px 40px -24px rgba(18, 17, 23, .35); }
.pr-une-v { position: relative; overflow: hidden; background: #fff; }
.pr-une-v img { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pr-une-carte:hover .pr-une-v img { transform: scale(1.02); }
.pr-une-t { display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: clamp(24px, 3.4vw, 48px); }
.pr-une-titre { margin: 0; font-size: clamp(22px, 2.1vw, 30px); font-weight: 300; line-height: 1.18; letter-spacing: -.02em; text-wrap: balance; }
.pr-une-chapo { margin: 0; font-size: 16px; line-height: 1.55; color: var(--pr-gris); }
/* la puce de rubrique et la ligne date · temps de lecture des cartes du blog (blog.css) */
.pr-puce { align-self: flex-start; padding: 3px 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--pr-filet);
  font-size: 12px; font-weight: 500; }
.pr-une-meta { margin: 0; font-size: 13px; color: var(--pr-gris); }
.pr-une-lire { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; }
.pr-une-lire .ic { width: 15px; height: 15px; transition: transform .25s ease; }
.pr-une-carte:hover .pr-une-lire .ic { transform: translateX(3px); }
@media (max-width: 900px) { .pr-une-carte { grid-template-columns: 1fr; } }
/* au-dessus du communiqué : le retour vers /press/ à gauche, le ZIP du communiqué à droite */
.pr-cp-haut { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 20px; }
/* sur la page du communiqué, le retour et les boutons tiennent aux bords du fond blanc (Tanguy, 4 nov.) */
.pr-art .pr-cp-haut { max-width: calc(var(--pr-col) + 2 * clamp(24px, 4vw, 56px)); margin-left: auto; margin-right: auto; }
.pr-retour { margin: 0; }
.pr-retour a { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; color: var(--pr-gris); }
.pr-retour a:hover { color: var(--pr-encre); }
.pr-retour .ic { width: 15px; height: 15px; }
.pr-cp > h2 { max-width: var(--pr-col, 44rem); margin: 40px auto 12px; font-size: 20px; font-weight: 500; letter-spacing: -.01em; }

/* Le communiqué : une tuile blanche, une colonne de lecture ; les visuels prennent toute la largeur de la tuile */
.pr-cp { padding: clamp(28px, 4vw, 64px); border-radius: 24px; background: #fff; }
/* une seule colonne pour le texte et les visuels (Tanguy, 4 nov. : « les visuels doivent être alignés avec les bords du texte ») */
.pr-cp > p, .pr-cp > h1, .pr-cp > h2, .pr-cp > blockquote { max-width: var(--pr-col, 44rem); margin-left: auto; margin-right: auto; }
.pr-cp > .pr-sur { margin-bottom: 18px; font-size: 11px; line-height: 1.4; color: var(--pr-gris); }
.pr-cp-titre { margin-top: 0; margin-bottom: 0; font-size: clamp(26px, 2.8vw, 38px); font-weight: 300; line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.pr-cp-chapo { margin-top: 18px; margin-bottom: 32px; font-size: clamp(17px, 1.4vw, 20px); font-weight: 300; line-height: 1.5; color: var(--pr-gris); }
.pr-cp > p { margin-top: 0; margin-bottom: 18px; font-size: 17px; line-height: 1.65; color: #2A2930; text-wrap: pretty; }
.pr-cp b { font-weight: 600; color: var(--pr-encre); }
.pr-cp a { text-decoration: underline; text-decoration-color: rgba(18, 17, 23, .25); text-underline-offset: 3px; }
.pr-cp a:hover { text-decoration-color: currentColor; }
.pr-cp > blockquote { margin-top: 36px; margin-bottom: 36px; padding: 4px 0 4px 24px; border-left: 2px solid var(--pr-encre); }
.pr-cp > blockquote p:first-child { margin: 0 0 12px; font-size: clamp(19px, 1.6vw, 23px); font-weight: 300; line-height: 1.5; letter-spacing: -.01em; }
.pr-cp-auteur { margin: 0; font-size: 14px; color: var(--pr-gris); }
.pr-cp > .pr-cp-visuel { max-width: 56rem; margin: 32px auto; background: var(--pr-fond); }
.pr-cp-visuel video, .pr-cp-visuel img { aspect-ratio: 16 / 9; object-fit: cover; }

/* La page du communiqué : la tête en colonne de lecture, la bannière vidéo sur toute la largeur, puis le texte sans tuile */
.pr-art { padding: clamp(40px, 4vw, 64px) 0 0; }
.pr-art { --pr-col: 50rem; }
.pr-art-tete { max-width: var(--pr-col); margin: clamp(24px, 3vw, 48px) auto 0; }
.pr-art-tete .pr-cp-titre { font-size: clamp(30px, 3.4vw, 46px); }
.pr-art-tete .pr-cp-chapo { margin: 18px 0 0; }
/* le fond blanc du début autour de tout le communiqué (Tanguy, 4 nov.), juste un peu plus large que la colonne du texte */
.pr-art-tuile { display: block; max-width: calc(var(--pr-col) + 2 * clamp(24px, 4vw, 56px)); margin: 0 auto;
  padding: clamp(32px, 4vw, 56px) clamp(24px, 4vw, 56px) clamp(40px, 4vw, 64px); border-radius: 24px; background: #fff; }
.pr-art-tuile .pr-art-tete { margin-top: 0; }
.pr-art-banniere { max-width: var(--pr-col); margin: clamp(28px, 3vw, 40px) auto 0; overflow: hidden; border-radius: 18px; background: var(--pr-fond); }
.pr-art-banniere video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.pr-cp.pr-art-corps { padding: clamp(32px, 3.5vw, 48px) 0 0; background: none; border-radius: 0; }
/* les visuels : la largeur de la colonne, dans leur cadre blanc (« garde le contour blanc […] rapproche-le de la marge des textes ») */
.pr-art-corps > .pr-cp-visuel { max-width: var(--pr-col); border-radius: 18px; background: var(--pr-fond); }
/* les cinq scènes en petit, sur un rang (« pas de grosse image comme ça ici, que en petit ») */
.pr-images.pr-galerie-cp { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pr-galerie-cp figcaption { flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px 12px; font-size: 12px; }
@media (max-width: 900px) { .pr-images.pr-galerie-cp { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Les annonces : une rangée à filets par annonce, la date à gauche */
.pr-annonces { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--pr-filet); }
.pr-annonce { display: grid; grid-template-columns: 10rem 1fr; gap: 16px; align-items: baseline; padding: 22px 0;
  border-bottom: 1px solid var(--pr-filet); }
.pr-annonce-d { margin: 0; font-size: 13px; color: var(--pr-gris); }
.pr-annonce-t { display: inline-flex; align-items: baseline; gap: 8px; font-size: clamp(18px, 1.6vw, 22px); font-weight: 300; letter-spacing: -.01em; }
a.pr-annonce-t:hover { opacity: .7; }
span.pr-annonce-t { color: var(--pr-gris); }
@media (max-width: 640px) { .pr-annonce { grid-template-columns: 1fr; gap: 4px; } }

/* La marque : quatre tuiles de logo, sur leur fond ; les liens SVG et PNG sous l'aperçu */
.pr-logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pr-logo { margin: 0; overflow: hidden; border-radius: 20px; background: #fff; }
.pr-logo-v { display: grid; place-items: center; aspect-ratio: 4 / 3; }
.pr-logo.sombre .pr-logo-v { background: var(--pr-encre); color: #F7F6F3; }
.pr-logo.clair .pr-logo-v { background: #fff; color: var(--pr-encre); box-shadow: inset 0 -1px 0 var(--pr-filet); }
.pr-sig { width: 58%; height: auto; }
.pr-sym { width: 22%; height: auto; }
.pr-logo figcaption, .pr-image figcaption, .pr-personne figcaption { display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 14px 18px; font-size: 13px; }
.pr-dl { display: flex; gap: 6px; }
.pr-dl a { padding: 3px 9px; border-radius: 999px; background: var(--pr-fond); font-size: 11px; font-weight: 500; letter-spacing: .04em;
  transition: background-color .2s ease; }
.pr-dl a:hover { background: var(--pr-creux); }
@media (max-width: 900px) { .pr-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* le logo et le symbole sur le dégradé de la charte : deux grandes tuiles en 16:9 sous les quatre autres */
.pr-logos-degrade { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 12px; }
.pr-logo.degrade .pr-logo-v { aspect-ratio: 16 / 9; }
.pr-logo.degrade .pr-logo-v img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 560px) { .pr-logos-degrade { grid-template-columns: 1fr; } }

.pr-marque-bas { display: grid; grid-template-columns: 3fr 1fr; gap: 12px; margin-top: 12px; }
.pr-couleurs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 12px; list-style: none;
  border-radius: 20px; background: #fff; }
.pr-couleur { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; padding: 0 0 6px; border: 0;
  background: none; color: var(--pr-encre); font: 500 13px/1.4 "Inter", system-ui, sans-serif; text-align: left; cursor: pointer; }
.pr-pastille { display: block; width: 100%; aspect-ratio: 16 / 10; margin-bottom: 8px; border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--pr-filet); transition: transform .2s ease; }
.pr-couleur:hover .pr-pastille { transform: scale(.97); }
.pr-couleur-h { font-weight: 400; color: var(--pr-gris); font-variant-numeric: tabular-nums; }
.pr-couleur.fait .pr-couleur-h::after { content: " · copied"; }
.c-ink { background: #121117; } .c-chalk { background: #F7F6F3; } .c-violet { background: #793CFF; }
.c-coral { background: #FF456A; } .c-orange { background: #FF6408; }
.pr-police { display: flex; flex-direction: column; justify-content: space-between; padding: 18px 20px; border-radius: 20px; background: #fff; }
.pr-police-a { margin: 0; font-size: clamp(48px, 5vw, 72px); font-weight: 300; line-height: 1; letter-spacing: -.04em; }
@media (max-width: 900px) { .pr-marque-bas { grid-template-columns: 1fr; } .pr-couleurs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pr-regles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 28px 0 0; padding: 0; list-style: none;
  font-size: 14px; line-height: 1.5; color: var(--pr-gris); }
.pr-regles b { display: block; margin-bottom: 2px; font-weight: 500; color: var(--pr-encre); }
@media (max-width: 760px) { .pr-regles { grid-template-columns: 1fr; gap: 16px; } }

/* Les images : trois colonnes de tuiles, aperçu léger, fichier en grand */
.pr-images { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
/* Show the work en petit (Tanguy, 4 nov. : « il faut faire plus petit, et notamment les images ») : les vidéos par rangs de
   quatre, les cinq images sur un rang */
.pr-videos { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 12px; }
/* toutes les vidéos à la même taille (Tanguy, 4 nov. : « une vidéo trop grosse comparé aux autres » ; la passerelle prenait
   deux cases et étirait son rang) : sur huit demi-colonnes, un dernier rang de trois se centre */
@media screen and (min-width: 1101px) {
  .pr-videos { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .pr-videos > * { grid-column: span 2; }
  .pr-videos > :nth-child(4n + 1):nth-last-child(3) { grid-column: 2 / span 2; }
}
.pr-videos figcaption, .pr-galerie figcaption { padding: 10px 12px; font-size: 12px; }
.pr-videos .pr-dl-un, .pr-galerie .pr-dl-un { font-size: 11px; }
.pr-image { margin: 0; overflow: hidden; border-radius: 20px; background: #fff; }
.pr-image img, .pr-image video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--pr-creux); }
.pr-image a:hover img { opacity: .92; }
.pr-image figcaption span { color: var(--pr-gris); }
.pr-dl-un { display: inline-flex; align-items: center; gap: 6px; flex: none; font-size: 12px; font-weight: 500; white-space: nowrap; }
.pr-dl-un .ic { width: 13px; height: 13px; }
a.pr-dl-un:hover { opacity: .7; }
.pr-note { margin: 18px 0 0; font-size: 13px; color: var(--pr-gris); }
.pr-galerie { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 12px; }
.pr-galerie figcaption { flex-direction: column; align-items: flex-start; gap: 4px; }
@media (max-width: 1100px) { .pr-videos { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pr-galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .pr-images { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pr-images, .pr-videos, .pr-galerie { grid-template-columns: 1fr; } }

/* Les dirigeants : deux cartes en largeur, portrait carré à gauche, nom, rôle et photo à droite */
.pr-personnes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pr-personne { display: grid; grid-template-columns: 42% 1fr; margin: 0; overflow: hidden; border-radius: 20px; background: #fff; }
/* le portrait seul : le logo du bouton LinkedIn est aussi une image de la carte */
.pr-personne > img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.pr-personne figcaption { flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 24px 26px; }
.pr-personne .pr-k { font-size: 20px; font-weight: 400; letter-spacing: -.01em; }
.pr-personne .pr-k span { font-size: 14px; }
.pr-personne-liens { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
@media (max-width: 760px) { .pr-personnes { grid-template-columns: 1fr; } }

/* Le contact : la carte sombre de la fin, comme le CTA du modèle sur l'accueil */
.pr-contact { padding: clamp(32px, 4.5vw, 64px); border-radius: 28px; background: var(--pr-encre); color: #F7F6F3; }
.pr-contact .pr-sur { color: rgba(247, 246, 243, .55); }
.pr-contact .pr-h2 a { font-size: clamp(30px, 4.4vw, 60px); transition: opacity .2s ease; }
.pr-contact .pr-h2 a:hover { opacity: .75; }
.pr-contact-l { max-width: 34em; margin: 16px 0 0; font-size: 16px; line-height: 1.55; color: rgba(247, 246, 243, .66); }

/* Le kit presse en PDF : l'impression de cette page (press-outils/pdf.mjs), sans en-tête, barre, pied ni boutons ; les
   vidéos gardent leur affiche ; une tuile ne se coupe pas entre deux pages */
@media print {
  @page { size: A4; margin: 12mm; }
  html, body.lab, .pr-page main { background: #F7F6F3 !important; }
  header.site, .skip, .pr-barre, .v2-pied, .pr-actions, .pr-dl, .pr-dl-un, .pr-personne-liens .pr-btn, .chargeur { display: none !important; }
  .pr-ouverture { padding: 24px 0 8px; }
  .pr-sec { padding-top: 28px; break-inside: auto; }
  .pr-tete { break-after: avoid; }
  .pr-logo, .pr-image, .pr-personne, .pr-fait, .pr-annonce, .pr-couleurs, .pr-police, .pr-contact { break-inside: avoid; }
  .pr-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pr-videos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pr-galerie { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .v2-entree { opacity: 1 !important; transform: none !important; }
  .rb-tech-text__decor, .pr-une, .pr-cp-haut, .pr-tete .pr-btn { display: none !important; }
  /* le PDF du communiqué est son texte seul (Tanguy, 4 nov.) : ni bannière, ni visuels, ni images */
  .pr-art-banniere, .pr-art-corps > .pr-cp-visuel, #images { display: none !important; }
  .pr-art-tuile { padding: 0; }
  ::highlight(rb-tech-text) { color: inherit; }
  .pr-marque-bas { grid-template-columns: 3fr 1fr; }
  .pr-couleurs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .pr-cp { padding: 28px 32px; }
  .pr-cp-visuel { break-inside: avoid; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* sur la page du communiqué, la section des images garde la colonne du texte */
#images .wrap { --w: 50rem; }

/* les deux boutons du communiqué côte à côte */
.pr-boutons { margin-top: 0; }

/* la légende de la comparaison avec NVIDIA, plus grande et centrée (Tanguy, 4 nov.) ; le lien MP4 reste à droite */
.pr-cp-visuel-volume figcaption { position: relative; justify-content: center; padding: 16px 64px; }
.pr-cp-visuel-volume figcaption span { font-size: 18px; font-weight: 400; color: var(--pr-encre); text-align: center; }
.pr-cp-visuel-volume figcaption .pr-dl-un { position: absolute; right: 18px; }

/* l'image en grand (press.js) */
.pr-zoom { max-width: min(92vw, 1600px); max-height: 92vh; padding: 0; border: 0; border-radius: 16px; background: #fff; cursor: zoom-out; }
.pr-zoom::backdrop { background: rgba(18, 17, 23, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.pr-zoom img { display: block; max-width: 100%; max-height: 92vh; width: auto; height: auto; }
a[data-zoom] { cursor: zoom-in; }

/* ---------- Petits écrans (4 nov., « optimise en responsive les deux pages ») ---------- */
@media (max-width: 760px) {
  /* le communiqué : le retour sur sa ligne, les deux boutons côte à côte dessous */
  .pr-art .pr-cp-haut { flex-wrap: wrap; }
  .pr-art .pr-cp-haut .pr-boutons { flex-wrap: nowrap; gap: 8px; }
  /* la légende de la comparaison NVIDIA redevient une légende ordinaire */
  .pr-cp-visuel-volume figcaption { position: static; justify-content: space-between; padding: 12px 14px; }
  .pr-cp-visuel-volume figcaption span { font-size: 13px; color: var(--pr-gris); text-align: left; }
  .pr-cp-visuel-volume figcaption .pr-dl-un { position: static; }
  .pr-art-tuile { border-radius: 20px; }
  .pr-cp > p { font-size: 16px; }
  .pr-cp > blockquote { padding-left: 16px; }
  .pr-cp > blockquote p:first-child { font-size: 18px; }
}
@media (max-width: 560px) {
  .pr-btn { height: 2.25rem; padding: 0 .8rem; font-size: .78rem; }
  .pr-art .pr-cp-haut .pr-btn { flex: 1 1 0; justify-content: center; }
  .pr-art .pr-cp-haut .pr-boutons { width: 100%; }
  /* les logos par deux : le nom au-dessus de ses formats */
  .pr-logo figcaption { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 14px; }
  /* Show the work et les images par deux, légendes courtes, pour garder la section compacte */
  .pr-videos, .pr-galerie, .pr-images.pr-galerie-cp { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pr-videos > :nth-child(7) { grid-column: 1 / -1; }
  .pr-videos figcaption, .pr-galerie figcaption, .pr-galerie-cp figcaption { flex-direction: column; align-items: flex-start; gap: 4px;
    padding: 8px 10px; font-size: 11px; line-height: 1.35; }
  .pr-image, .pr-logo, .pr-personne { border-radius: 14px; }
  /* les dirigeants : portrait plus étroit */
  .pr-personne { grid-template-columns: 38% 1fr; }
  .pr-personne figcaption { padding: 16px; }
  .pr-personne .pr-k { font-size: 17px; }
  .pr-contact .pr-h2 a { font-size: 30px; word-break: break-all; }
  .pr-faits { padding: 4px 16px; }
  .pr-fait { grid-template-columns: 6.5rem 1fr; gap: 10px; padding: 14px 0; }
  .pr-une-t { padding: 20px; gap: 12px; }
}
