/* Partenaires : page [hm_partenaires] et bandeau de l'accueil [hm_partenaires_bandeau] (30/09/2026).
   Les logos sont posés sur une réserve claire : un logo en couleurs ne se pose jamais sur le noir. */
.hm-part-grands { display: grid; gap: 28px; margin: 0 0 20px; }
.hm-part-carte { background: var(--tribune); border: 1px solid var(--ligne); border-left: 4px solid var(--rouge); border-radius: 3px; padding: clamp(18px, 3vw, 32px); }
.hm-part-tete { display: grid; grid-template-columns: minmax(180px, 320px) 1fr; gap: 20px 34px; align-items: center; }
@media (max-width: 700px) { .hm-part-tete { grid-template-columns: 1fr; } }
.hm-part-logo-cadre { display: grid; place-items: center; min-height: 150px; padding: 18px; background: var(--craie); border-radius: 3px; text-decoration: none; }
.hm-part-logo { display: block; width: auto; max-width: 100%; max-height: 120px; object-fit: contain; border-radius: 0; }
.hm-part-logo--texte { font-family: var(--display); font-size: 26px; text-transform: uppercase; color: var(--nuit); text-align: center; }
.hm-part-sur { font-family: var(--mono); font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--rouge-vif); margin: 0 0 8px; }
.hm-part-carte h2 { margin: 0 0 12px; font-size: clamp(28px, 4vw, 44px); }
.hm-part-accroche { font-size: 17px; line-height: 1.65; max-width: 60ch; margin: 0 0 20px; }
.hm-part-photos { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.hm-part-photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; }
.hm-part-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.hm-part-photo:hover img { transform: scale(1.04); }
.hm-part-titre { margin: 44px 0 18px; }
.hm-part-mosaique { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
.hm-part-tuile { background: var(--tribune); border: 1px solid var(--ligne); border-radius: 3px; padding: 14px; }
.hm-part-tuile-lien { display: grid; gap: 10px; justify-items: center; text-align: center; color: var(--craie); text-decoration: none; }
.hm-part-tuile-lien .hm-part-logo { max-height: 80px; background: var(--craie); padding: 10px; border-radius: 3px; }
.hm-part-nom { font-family: var(--mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.hm-part-tuile p { margin: 8px 0 0; font-size: 15px; text-align: center; }
/* Bandeau de l'accueil */
.hm-part-bandeau { max-width: 1200px; margin: 0 auto; padding: clamp(48px, 7vw, 86px) clamp(16px, 4vw, 40px) 0; }
.hm-part-bandeau-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 14px 24px; margin-bottom: 24px; }
.hm-part-bandeau h2 { font-family: var(--display); font-size: clamp(28px, 4.6vw, 50px); text-transform: uppercase; color: var(--craie); font-weight: 400; margin: 0; line-height: 1.02; }
.hm-logos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 14px; }
.hm-logos li { flex: 0 1 220px; }
.hm-logos li.principal { flex-basis: 300px; }
.hm-bandeau-logo { display: grid; place-items: center; height: 110px; padding: 14px 20px; background: var(--craie); border-radius: 3px; text-decoration: none; transition: transform .15s; }
.hm-logos li.principal .hm-bandeau-logo { height: 130px; }
.hm-bandeau-logo .hm-part-logo { max-height: 78px; }
a.hm-bandeau-logo:hover, a.hm-part-logo-cadre:hover { transform: translateY(-2px); }
