/* ============================================================================
   LES PARTENAIRES -- bloc commun aux trois vitrines
   ----------------------------------------------------------------------------
   Une grille qui se replie toute seule : repeat(auto-fit, minmax(...)) evite
   une media query par palier, et le bloc tient de 320 px a 1600 px sans qu'on
   ait a decider des points de rupture.

   Les logos ont des formes tres differentes (un carre de 256 px pour oPaddock,
   un rectangle 300x159 pour le Pole Hippolia). On leur donne donc une BOITE de
   hauteur fixe et object-fit: contain : chaque logo s'y inscrit entier, sans
   deformation et sans qu'un rectangle ecrase les autres.
   ========================================================================= */
.part-bloc { margin: 0 auto; max-width: 1100px; padding: 8px 0 4px; }
/* La police des titres est celle du site : les quatre vitrines posent
   --titre-police: inherit depuis le 09/09/2026 (Inter seule, style oPaddock).
   Le repli est `inherit` : un site qui ne la definirait pas garde sa police
   de corps, jamais une serif reintroduite en silence. */
.part-bloc h2 { font-family: var(--titre-police, inherit); font-weight: 800; letter-spacing: -.02em; margin: 0 0 26px; }

.part-liste { list-style: none; margin: 0; padding: 0; display: grid;
              grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 26px; }

.part-item { background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: 22px;
             padding: 26px 24px 22px; display: flex; flex-direction: column;
             box-shadow: 0 10px 30px -18px rgba(15, 23, 42, .28);
             transition: transform .2s ease, box-shadow .2s ease; }
.part-item:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -20px rgba(15, 23, 42, .34); }

.part-lien { display: flex; flex-direction: column; gap: 14px; text-decoration: none;
             color: inherit; min-height: 44px; }
.part-lien:focus-visible { outline: 2px solid var(--primary-darker, #047857); outline-offset: 4px; border-radius: 14px; }

/* La boite a logo : hauteur fixe, image entiere, jamais deformee. */
.part-logo { display: block; width: 100%; height: 84px; object-fit: contain; object-position: left center; }

.part-nom { font-weight: 600; font-size: 1.06rem; display: inline-flex; align-items: center; gap: 8px; }
.part-ext { font-size: .74em; opacity: .5; }
.part-ext svg, svg.part-ext { width: 1em; height: 1em; vertical-align: -.1em; }
.part-lien:hover .part-nom { color: var(--primary-darker, #047857); }

.part-txt { margin: 12px 0 0; font-size: .93rem; line-height: 1.68; opacity: .78; }

/* Texte reserve aux lecteurs d'ecran : « (s'ouvre dans un nouvel onglet) ».
   Il ne doit pas etre display:none, qui le retirerait aussi de l'oral. */
.part-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
           overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) {
    .part-item, .part-item:hover { transition: none; transform: none; }
}
