/* news_cards — LA carte d'actualité, en un seul endroit.
   ------------------------------------------------------------------------
   Ces règles vivaient dans le <style> de News.php, et l'accueil en avait sa
   PROPRE copie (.mmhome-*) : deux rendus jumeaux qui divergeaient à chaque
   retouche. Elles sont maintenant partagées par /actualite ET l'accueil, qui
   affichent tous deux le fragment produit par news_card_html().

   Toute modification ici se voit AUX DEUX ENDROITS : c'est le but. */

.mmnews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.mmnews-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(40,50,90,.12);border:1px solid #eceff6;
  display:flex;flex-direction:column;transition:.18s;text-decoration:none}
.mmnews-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(40,50,90,.2);border-color:#dfe4f2}
/* Miniature : image ENTIÈRE (jamais rognée, object-fit contain) posée sur un
   fond flou de la même image → aucun bandeau vide, aucun recadrage, taille maîtrisée. */
.mmnews-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#e9edf6}
.mmnews-thumb.has-img::before{content:"";position:absolute;inset:0;z-index:1;background:var(--thumb) center/cover no-repeat;filter:blur(16px) brightness(.9);transform:scale(1.12)}
.mmnews-thumb.has-img::after{content:"";position:absolute;inset:0;z-index:2;background:var(--thumb) center/contain no-repeat}
/* Vignette EMOJI. Un champ image peut contenir un emoji (&#x1F349;) plutot
   qu'un nom de fichier -- c'est le cas des 54 articles de la base. Le
   launcher les peint depuis toujours ; la carte du site fait pareil. */
.mmnews-thumb.is-emoji{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f4f6fb,#e4e9f6)}
.mmnews-emoji{position:relative;z-index:2;font-size:clamp(48px,7vw,84px);line-height:1;filter:drop-shadow(0 4px 10px rgba(40,50,90,.25))}
.mmnews-badge{position:absolute;top:10px;left:10px;z-index:3;color:#fff;font-size:11px;font-weight:700;
  padding:4px 10px;border-radius:20px;letter-spacing:.3px;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.mmnews-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
/* BADGE date des cartes (icône + « 15 juillet 2025 · 16:37 »). Classe DISTINCTE de
   l'input (mmnews-date) → plus aucun conflit. Pilule autonome, non pleine largeur. */
.mmnews-cardate{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px 6px;align-self:center;max-width:100%;box-sizing:border-box;font-size:12px;line-height:1.35;color:#8a93ad;font-weight:600;margin:0 auto 10px;text-align:center;background:#f4f6fb;border:1px solid #e0e6f2;border-radius:16px;padding:4px 12px;overflow-wrap:anywhere}
.mmnews-cardate i{color:#8a93ad;flex-shrink:0}
@media(max-width:360px){.mmnews-cardate{font-size:11px;padding:3px 9px}}
.mmnews-title{font-size:17px;font-weight:700;color:#2a3350;margin:0 0 8px;line-height:1.3}
.mmnews-excerpt{font-size:13.5px;color:#5c6480;line-height:1.55;flex:1}
.mmnews-more{margin-top:12px;font-weight:700;color:#6072AC;font-size:13px}
/* Bouton « En savoir plus » (cartes news/events + lien changelog). */
.mm-more-btn{display:inline-flex;align-items:center;gap:7px;align-self:center;margin-top:14px;padding:8px 16px;border-radius:9px;
  background:#eef1fb;color:#5566c4;font-weight:700;font-size:13px;text-decoration:none;border:1px solid #e2e8fb;transition:.14s}
.mm-more-btn i{font-size:11px;transition:.14s}
.mmnews-card:hover .mm-more-btn,.ev-card:hover .mm-more-btn,a.mm-more-btn:hover{background:#6072AC;border-color:#6072AC;color:#fff;box-shadow:0 4px 12px rgba(96,114,172,.4)}
.mmnews-card:hover .mm-more-btn i,.ev-card:hover .mm-more-btn i,a.mm-more-btn:hover i{transform:translateX(3px)}
.mmnews-empty{background:rgba(255,255,255,.92);border-radius:12px;padding:44px;text-align:center;color:#5c6480;font-size:16px}
