/**
 * Blog / News (archive + article) au design system Mega-Ique.
 * S'appuie sur la grille blog d'Astra (.ast-article-post) + primitives mq-*.
 */

/* ── Grille : cartes de même hauteur et structure (fini le masonry) ──── */
.ast-blog-layout-4-grid .ast-row {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--mq-space-4);
	column-count: unset;
	column-gap: var(--mq-space-4);
}

.ast-blog-layout-4-grid .ast-article-post {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	break-inside: avoid;
}

.ast-blog-layout-4-grid .ast-article-inner,
.ast-blog-layout-4-grid .ast-article-post > .ast-article-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

/* La zone texte occupe le reste : cartes alignées, structure identique. */
.ast-blog-layout-4-grid .ast-article-inner .entry-content.clear {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

/* Image : même ratio partout. */
.ast-blog-layout-4-grid .ast-blog-featured-section .post-thumb-img-content img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
	display: block;
}

/* Carte sans image : bandeau dégradé de substitution pour garder l'alignement. */
.ast-blog-layout-4-grid .ast-no-thumb .ast-blog-featured-section {
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, rgba(243, 90, 2, 0.12), rgba(0, 25, 76, 0.08));
}

/* Extrait tronqué à 3 lignes → hauteurs homogènes. */
.ast-blog-layout-4-grid .ast-excerpt-container,
.ast-blog-layout-4-grid .entry-content .ast-the-excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Titre : 2 lignes max, hauteur réservée. */
.ast-blog-layout-4-grid .entry-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

@media (max-width: 921px) {
	.ast-blog-layout-4-grid .ast-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.ast-blog-layout-4-grid .ast-row { grid-template-columns: 1fr; }
}

/* ── Cartes d'articles (archive / liste) ─────────────────────────────── */
.blog .ast-article-post,
.archive .ast-article-post,
.search .ast-article-post {
	background: #fff;
	border: 1px solid var(--mq-color-line);
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.blog .ast-article-post:hover,
.archive .ast-article-post:hover {
	transform: translateY(-5px);
	box-shadow: var(--mq-shadow);
	border-color: transparent;
}

/* Image à la une : même ratio partout. */
.ast-article-post .post-thumb img,
.ast-blog-featured-section img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}

.ast-article-post .ast-article-inner { padding-top: 0; }
.blog .ast-article-post .blog-layout-4 .ast-blog-single-element,
.ast-article-post .entry-content,
.ast-article-post .ast-excerpt-container,
.ast-article-post .entry-header,
.ast-article-post .ast-blog-meta-container { padding-inline: var(--mq-space-4); }
.ast-article-post .entry-header { padding-top: var(--mq-space-3); }
.ast-article-post .ast-excerpt-container { padding-bottom: var(--mq-space-4); color: var(--mq-color-body); }

/* Catégorie (orange, majuscules discrètes). */
.cat-links,
.cat-links a,
.ast-terms-link a {
	color: var(--mq-color-primary);
	font-family: var(--mq-font-head);
	font-weight: 700;
	font-size: 0.76rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}

/* Titres. */
.entry-title { font-family: var(--mq-font-head); line-height: 1.25; }
.entry-title a { color: var(--mq-color-ink); text-decoration: none; }
.entry-title a:hover { color: var(--mq-color-primary); }

/* Auteur masqué partout (liste + article), y compris son séparateur. */
.entry-meta .posted-by,
.ast-blog-meta-container .posted-by,
.entry-meta .ast-author-meta,
.ast-blog-single-element.ast-blog-author { display: none !important; }

/* Sur l'article, « By » et le séparateur sont des nœuds texte nus dans
   .entry-meta : on les réduit à zéro et on ne réaffiche que la date. */
.single-post .entry-meta { font-size: 0 !important; }
.single-post .entry-meta .posted-on,
.single-post .entry-meta .posted-on a,
.single-post .entry-meta time { font-size: 0.9rem !important; }

/* Méta (date). */
.entry-meta,
.entry-meta a,
.posted-on,
.ast-blog-meta-container,
.ast-blog-meta-container a,
.ast-blog-meta-container span,
.ast-blog-single-element.ast-blog-meta a { color: var(--mq-color-muted); font-size: 0.85rem; }
.entry-meta a:hover,
.ast-blog-meta-container a:hover { color: var(--mq-color-primary); }

/* Lien « lire la suite ». */
.read-more a,
a.read-more,
.ast-button {
	color: var(--mq-color-primary);
	font-family: var(--mq-font-head);
	font-weight: 600;
	text-decoration: none;
}
.read-more a:hover { color: var(--mq-color-primary-dark); }

/* ── Article seul (single post) ──────────────────────────────────────── */
/* Élargit la colonne de lecture (Astra la bridait trop). L'article est
   centré à largeur fixe et ses enfants remplissent : titre et corps alignés. */
.single-post .site-content > .ast-container { max-width: 1140px; }
.single-post #primary,
.single-post #main { max-width: 100%; width: 100%; }
.single-post .site-main > article,
.single-post .ast-article-single {
	max-width: 900px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}
.single-post .entry-header,
.single-post .entry-meta,
.single-post .entry-content,
.single-post .post-navigation,
.single-post .ast-single-related-posts-container {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	float: none !important;
}

.single-post .entry-title { font-weight: 800; font-size: clamp(1.7rem, 3.4vw, 2.5rem); }
.single-post .entry-content { line-height: 1.75; color: var(--mq-color-body); }
.single-post .entry-content > * + * { margin-top: var(--mq-space-3); }
.single-post .entry-content h2,
.single-post .entry-content h3 { font-family: var(--mq-font-head); color: var(--mq-color-ink); margin-top: var(--mq-space-4); }
.single-post .entry-content a { color: var(--mq-color-primary); }
.single-post blockquote {
	border-left: 3px solid var(--mq-color-primary);
	background: var(--mq-color-bg-soft);
	padding: var(--mq-space-3) var(--mq-space-4);
	border-radius: 0 8px 8px 0;
}

/* Pagination. */
.ast-pagination .page-numbers,
.paging-navigation .page-numbers {
	border-radius: 8px;
}
.ast-pagination .page-numbers.current,
.ast-pagination a.page-numbers:hover {
	background: var(--mq-color-primary);
	color: #fff;
	border-color: var(--mq-color-primary);
}
