/* ============================================================
   Article List Blog - Styles
   ============================================================
   Namespace de variables --alm-blog-* : entièrement distinct de
   celui de public.css (--alm-*) pour que les deux modes d'affichage
   (mosaïque / blog) restent personnalisables indépendamment dans le
   CSS du thème enfant, sans jamais se marcher dessus.
   ============================================================ */

:root {
  /* Couleur d'accent (liseré en haut de chaque article, liens au survol) */
  --alm-blog-color-accent: var(--ast-global-color-1, #0073aa);

  /* Couleurs de texte */
  --alm-blog-title-color: #222222;
  --alm-blog-text-color:  #444444;
  --alm-blog-text-muted:  #666666;

  /* --- Image à la une ---
     Alimentées par admin/blog-page.php (option alm_blog_settings),
     injectées en style inline sur .sly-alm-blog-container par render_blog(). */
  --alm-blog-image-ratio:      16/9;
  --alm-blog-image-object-fit: cover;
  --alm-blog-image-radius:     10px;
  --alm-blog-image-shadow:     0 4px 12px rgba(0, 0, 0, 0.15);

  /* Boîtes de métadonnées (date / catégorie / auteur) — plates, sans ombre */
  --alm-blog-meta-bg:     #f8f9fa;
  --alm-blog-meta-radius: 8px;

  /* Mise en page */
  --alm-blog-item-gap:      30px;
  --alm-blog-max-width:     800px;
  --alm-blog-accent-height: 2px;

  /* Mode d'affichage "colonnes" (alternative au mode "liste" par défaut) */
  --alm-blog-columns:            3;
  --alm-blog-card-bg:            #ffffff;
  --alm-blog-card-radius:        10px;
  --alm-blog-card-padding:       16px;
  --alm-blog-card-shadow:        0 2px 8px rgba(0, 0, 0, 0.08);
}

/* ============================================================
   CONTENEUR PRINCIPAL
   ============================================================ */

.sly-alm-blog-container {
  max-width: var(--alm-blog-max-width, 800px);
  margin: 20px auto;
  padding: 0 20px;
}

.sly-alm-blog-no-articles {
  text-align: center;
  padding: 40px 20px;
  color: #999;
  font-style: italic;
  font-size: 16px;
}

/* ============================================================
   ARTICLE (item de la liste)
   ============================================================ */

.sly-alm-blog-item {
  display: flex;
  gap: 25px;
  align-items: flex-start;
  padding-top: 20px;
  border-top: var(--alm-blog-accent-height, 3px) solid var(--alm-blog-color-accent);
  margin-bottom: var(--alm-blog-item-gap, 30px);
}

.sly-alm-blog-item:last-child {
  margin-bottom: 0;
}

.sly-alm-blog-image-link {
  flex: 0 0 280px;
  max-width: 280px;
  display: block;
}

.sly-alm-blog-image {
  width: 100%;
  aspect-ratio: var(--alm-blog-image-ratio, 16/9);
  object-fit: var(--alm-blog-image-object-fit, cover);
  border-radius: var(--alm-blog-image-radius, 10px);
  box-shadow: var(--alm-blog-image-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));
  display: block;
}

.sly-alm-blog-content {
  flex: 1;
  min-width: 0;
}

/* ============================================================
   MODE D'AFFICHAGE "COLONNES"
   Alternative au mode "liste" par défaut : les articles sont
   rangés dans une grille, chaque article empilé verticalement
   (image d'abord, puis titre/extrait/méta), un peu à l'image des
   cards du rendu mosaïque de l'onglet Mosaïque.
   ============================================================ */

.sly-alm-blog-container--columns {
  display: grid;
  grid-template-columns: repeat(var(--alm-blog-columns, 3), 1fr);
  gap: var(--alm-blog-item-gap, 30px);
}

.sly-alm-blog-container--columns .sly-alm-blog-item {
  flex-direction: column;
  margin-bottom: 0;
  padding: var(--alm-blog-card-padding, 16px);
  background: var(--alm-blog-card-bg, #ffffff);
  border-radius: var(--alm-blog-card-radius, 10px);
  box-shadow: var(--alm-blog-card-shadow, 0 2px 8px rgba(0, 0, 0, 0.08));
}

.sly-alm-blog-container--columns .sly-alm-blog-image-link {
  flex: 0 0 auto;
  max-width: 100%;
  width: 100%;
}

/* La pagination est aussi un enfant direct de la grille : sans ça, elle
   se retrouve casée dans une seule colonne au lieu de s'étaler sur toute
   la largeur. */
.sly-alm-blog-container--columns .sly-alm-blog-pagination {
  grid-column: 1 / -1;
}

/* ============================================================
   MÉTADONNÉES (date / catégorie / auteur)
   ============================================================ */

.sly-alm-blog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}

.sly-alm-blog-meta-item {
  display: inline-flex;
  align-items: center;
  background: var(--alm-blog-meta-bg, #f8f9fa);
  border-radius: var(--alm-blog-meta-radius, 8px);
  padding: 4px 10px;
  font-size: 12px;
  color: var(--alm-blog-text-muted, #666666);
  text-decoration: none;
  transition: color 0.2s ease;
}

a.sly-alm-blog-meta-category:hover {
  color: var(--alm-blog-color-accent);
}

/* ============================================================
   TITRE & EXTRAIT
   ============================================================ */

.sly-alm-blog-title {
  margin: 0 0 10px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}

.sly-alm-blog-title a {
  color: var(--alm-blog-title-color, #222222);
  text-decoration: none;
  transition: color 0.2s ease;
}

.sly-alm-blog-title a:hover {
  color: var(--alm-blog-color-accent);
}

.sly-alm-blog-excerpt {
  font-size: 15px;
  color: var(--alm-blog-text-color, #444444);
  line-height: 1.6;
}

/* Une info par ligne (date, description, organisateur...) plutôt qu'un
   seul bloc de texte collé — cf. get_excerpt_lines() côté PHP. */
.sly-alm-blog-excerpt-line {
  display: block;
  margin-bottom: 4px;
}

.sly-alm-blog-excerpt-line:last-child {
  margin-bottom: 0;
}

/* ============================================================
   PAGINATION (paginate_links standard WP)
   ============================================================ */

.sly-alm-blog-pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 30px;
}

.sly-alm-blog-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 6px;
  background: #f5f5f5;
  color: var(--alm-blog-text-muted, #666666);
  text-decoration: none;
  font-size: 14px;
  transition: background 0.2s ease, color 0.2s ease;
}

.sly-alm-blog-pagination .page-numbers.current {
  background: var(--alm-blog-color-accent);
  color: #ffffff;
}

.sly-alm-blog-pagination .page-numbers:hover:not(.current) {
  background: #e0e0e0;
}

/* ============================================================
   RESPONSIVE — TABLETTE & MOBILE
   Liste verticale à colonne unique dès 768px : image en pleine
   largeur au-dessus du contenu. En mode "colonnes", le nombre de
   colonnes réglé dans l'admin se réduit progressivement, avec une
   colonne unique forcée en mobile (comme le rendu mosaïque).
   ============================================================ */

@media (max-width: 992px) {
  .sly-alm-blog-container--columns {
    /* Ne jamais dépasser le nombre de colonnes réglé en admin */
    grid-template-columns: repeat(min(var(--alm-blog-columns, 3), 2), 1fr);
  }
}

@media (max-width: 768px) {
  .sly-alm-blog-container {
    padding: 0 10px;
  }
  .sly-alm-blog-container--columns {
    grid-template-columns: 1fr;
  }
  .sly-alm-blog-item {
    flex-direction: column;
    gap: 15px;
  }
  .sly-alm-blog-image-link {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
  }
  .sly-alm-blog-title {
    font-size: 19px;
  }
}

@media (max-width: 480px) {
  .sly-alm-blog-title {
    font-size: 17px;
  }
  .sly-alm-blog-excerpt {
    font-size: 14px;
  }
}
