/* Module Presse (front portail). Variables canoniques fix-48.
 *
 * ALM_PRESSE_FLUX_v1 — les règles de LISTING ont changé de nom en même temps
 * que le balisage. Les anciennes (.alm-presse-section, .alm-presse-grid,
 * .alm-presse-card*, .alm-presse-empty, .alm-presse-contact) ont été retirées :
 * plus aucun fichier du dépôt ne les émet depuis que les trois sections en dur
 * du gabarit ont laissé place au bloc `alm/presse-flux`. Vérifié par balayage —
 * elles n'apparaissaient que dans ce fichier et dans page-presse.php.
 *
 * Les règles du SINGLE (.alm-presse-single*) sont inchangées : le gabarit
 * single-communique_presse.php n'est pas touché par le lot.
 *
 * Cette feuille n'est enfilée que sur la page portant le gabarit presse et sur
 * les single communique_presse (inc/portail/init.php) : aucune autre page du
 * réseau n'en reçoit un octet. Aucun opt-in n'est donc nécessaire ici.
 */

.alm-presse { background: #fff; }

/* ================================================================== */
/* Flux unique — bloc alm/presse-flux                                  */
/* ================================================================== */

/* Le fond, le padding et le conteneur viennent des utilitaires partagés
   `.alm-block` / `.alm-block--bg-*` / `.alm-container` (portail-blocks.css) :
   on ne redéclare ni l'un ni l'autre, pour que la section respire comme
   toutes les autres sections du portail et suive l'alternance bg-flow. */

/* ALM_PRESSE_ECRAN_v1 — la barre de filtre (.alm-presse-flux__filtre*) et l'étiquette
   de type (.alm-presse-flux__etiquette) sont retirées avec les catégories : plus
   aucun fichier ne les émet. */

/* ===== Grille ===== */
/* minmax(0, 1fr) et NON 1fr : `1fr` vaut `minmax(auto, 1fr)`, dont le plancher
   est le min-content de la colonne. Un titre long sans espace y imposerait sa
   largeur et déséquilibrerait toute la rangée. */
.alm-presse-flux__grille {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 960px) { .alm-presse-flux__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .alm-presse-flux__grille { grid-template-columns: minmax(0, 1fr); } }

/* ===== Carte ===== */
.alm-presse-flux__carte {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--alm-gray-200);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.alm-presse-flux__carte:hover {
  border-color: var(--alm-orange);
  box-shadow: 0 6px 20px rgba(0, 72, 153, 0.08);
  transform: translateY(-2px);
}
/* Une carte sans aucun lien (article sans lien ni document) ne réagit pas au survol :
   rien ne doit laisser croire qu’elle mène quelque part. */
.alm-presse-flux__carte:not(:has(a)):hover {
  border-color: var(--alm-gray-200);
  box-shadow: none;
  transform: none;
}

.alm-presse-flux__media { line-height: 0; background: var(--alm-gray-50, #FBFAF7); }
.alm-presse-flux__media img {
  width: 100%; height: 100%; aspect-ratio: 16 / 9;
  object-fit: cover; display: block;
}
/* Sans vignette : le pictogramme PDF, centré dans une bande de même hauteur
   qu'une image. Les cartes gardent ainsi le même gabarit, avec ou sans image. */
.alm-presse-flux__media--pictogramme {
  aspect-ratio: 16 / 9;
  display: flex; align-items: center; justify-content: center;
}
.alm-presse-flux__media--pictogramme svg { display: block; }

.alm-presse-flux__corps {
  flex: 1 1 auto;
  display: flex; flex-direction: column;
  padding: 22px;
  min-width: 0;
}

.alm-presse-flux__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 0 0 10px;
}
.alm-presse-flux__date {
  font-size: 0.8125rem;
  color: var(--alm-gray-700);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.alm-presse-flux__source {
  font-size: 0.8125rem;
  color: var(--alm-orange);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.alm-presse-flux__titre {
  font-family: 'Manrope', sans-serif;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
  margin: 0 0 10px;
}
/* Un article sans lien ni document garde un titre bleu, sans soulignement ni survol :
   rien ne laisse croire qu'il est cliquable. */
.alm-presse-flux__titre { color: var(--alm-blue); }
.alm-presse-flux__titre a { color: var(--alm-blue); text-decoration: none; }
.alm-presse-flux__titre a:hover { color: var(--alm-orange); }

.alm-presse-flux__extrait {
  font-size: 0.9375rem;
  color: var(--alm-gray-700);
  line-height: 1.5;
  margin: 0 0 14px;
}

/* `margin-top: auto` : les boutons se collent au bas de la carte, donc toutes
   les cartes d'une rangée alignent leurs actions quelle que soit la longueur
   du titre ou de l'extrait. */
.alm-presse-flux__actions {
  margin: auto 0 0;
  display: flex; flex-wrap: wrap; gap: 8px;
}
.alm-presse-flux__cta {
  padding: 8px 16px;
  font-size: 0.875rem;
  border-radius: 6px;
}

/* Texte réservé aux lecteurs d'écran (« nouvelle fenêtre »). */
.alm-presse-flux__sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* ===== Pagination ===== */
.alm-presse-flux__pagination { margin: 32px 0 0; }
.alm-presse-flux__pagination ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6px; justify-content: center;
}
.alm-presse-flux__pagination a,
.alm-presse-flux__pagination span {
  display: inline-block;
  min-width: 40px;
  padding: 8px 12px;
  text-align: center;
  border: 1px solid var(--alm-gray-200);
  border-radius: 6px;
  background: #fff;
  color: var(--alm-blue);
  font-size: 0.875rem;
  text-decoration: none;
}
.alm-presse-flux__pagination a:hover,
.alm-presse-flux__pagination a:focus-visible {
  border-color: var(--alm-orange);
  color: var(--alm-orange);
}
.alm-presse-flux__pagination .current {
  background: var(--alm-blue);
  border-color: var(--alm-blue);
  color: #fff;
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  .alm-presse-flux__carte { transition: none; }
  .alm-presse-flux__carte:hover { transform: none; }
}

/* ================================================================== */
/* Single communiqué — INCHANGÉ                                        */
/* ================================================================== */

.alm-presse-single { background: #fff; }

.alm-presse-single__header {
  padding-block: clamp(40px, 6vw, 72px);
  background: var(--alm-gray-50, #FBFAF7);
  border-bottom: 1px solid var(--alm-gray-200);
}
.alm-presse-single__breadcrumb {
  font-size: 0.8125rem;
  color: var(--alm-gray-700);
  margin-bottom: 16px;
}
.alm-presse-single__breadcrumb a {
  color: var(--alm-gray-700);
  text-decoration: none;
}
.alm-presse-single__breadcrumb a:hover { color: var(--alm-blue); }
.alm-presse-single__breadcrumb > span { margin: 0 6px; color: var(--alm-gray-500); }

.alm-presse-single__eyebrow {
  display: inline-block;
  background: var(--alm-orange);
  color: #fff;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 12px;
}
.alm-presse-single__title {
  font-family: 'Manrope', sans-serif;
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 700;
  color: var(--alm-blue);
  margin: 0 0 12px;
  line-height: 1.2;
}
.alm-presse-single__meta {
  font-size: 0.875rem;
  color: var(--alm-gray-700);
}
.alm-presse-single__source { font-weight: 600; color: var(--alm-orange); }

.alm-presse-single__body { padding-block: clamp(40px, 5vw, 64px); }
.alm-presse-single__body p { line-height: 1.7; color: var(--alm-gray-900); margin: 0 0 18px; }

.alm-presse-single__downloads {
  background: var(--alm-gray-50, #FBFAF7);
  padding-block: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--alm-gray-200);
}
.alm-presse-single__downloads h2 {
  font-family: 'Manrope', sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--alm-blue);
  margin: 0 0 16px;
}
.alm-presse-single__dl-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.alm-presse-single__dl-list small { opacity: 0.8; font-weight: 400; margin-left: 4px; }

.alm-presse-single__footer {
  padding-block: 40px;
  text-align: center;
}
