/**
 * Fichier : assets/css/archive.css
 * Rôle :
 * Styles des vues de listes de contenus :
 * - archives
 * - blog
 * - résultats de recherche
 *
 * Principes :
 * - structure claire
 * - lisibilité forte
 * - aucune hauteur fixe
 * - unités relatives
 * - responsive sans rupture brutale
 * - styles compatibles avec une navigation clavier
 */

/* ------------------------------------ */
/* 1. Conteneurs généraux               */
/* ------------------------------------ */

.site-main .archive-header,
.site-main .page-header {
	margin-bottom: 2rem;
}

.site-main .archive-title,
.site-main .page-title {
	margin: 0 0 0.75rem;
	line-height: 1.3;
	font-size: 2rem;
	font-weight: 700;
	overflow-wrap: break-word;
}

.site-main .archive-description,
.site-main .taxonomy-description,
.site-main .page-description {
	margin: 0;
	font-size: 1rem;
	line-height: 1.7;
}

.site-main .archive-description > *:first-child,
.site-main .taxonomy-description > *:first-child,
.site-main .page-description > *:first-child {
	margin-top: 0;
}

.site-main .archive-description > *:last-child,
.site-main .taxonomy-description > *:last-child,
.site-main .page-description > *:last-child {
	margin-bottom: 0;
}

/* ------------------------------------ */
/* 2. Liste des publications            */
/* ------------------------------------ */

.site-main .posts-list,
.site-main .archive-list,
.site-main .search-results-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-main .posts-list > article,
.site-main .archive-list > article,
.site-main .search-results-list > article,
.site-main article.post,
.site-main article.page,
.site-main article.type-post,
.site-main article.type-page {
	min-width: 0;
}

/*
 * Carte éditoriale de base pour une entrée de liste.
 * On cible aussi .post, .page et les types standards
 * pour rester robuste même si le template n’utilise pas
 * de wrapper dédié comme .posts-list.
 */
.site-main .archive-entry,
.site-main .search-entry,
.site-main .blog-entry,
.site-main article.post,
.site-main article.page,
.site-main article.type-post,
.site-main article.type-page {
	padding: 1.25rem;
	border: 0.0625rem solid currentColor;
	border-radius: 0.5rem;
}

/* ------------------------------------ */
/* 3. En-tête d’article                 */
/* ------------------------------------ */

.site-main .entry-header {
	margin-bottom: 1rem;
}

.site-main .entry-title {
	margin: 0 0 0.75rem;
	font-size: 1.5rem;
	line-height: 1.3;
	font-weight: 700;
	overflow-wrap: break-word;
}

.site-main .entry-title a {
	color: inherit;
	text-decoration-line: underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.16em;
	word-break: break-word;
}

.site-main .entry-title a:hover {
	text-decoration-thickness: 0.14em;
}

.site-main .entry-title a:focus-visible {
	outline: 0.1875rem solid currentColor;
	outline-offset: 0.1875rem;
	text-decoration: none;
}

/* ------------------------------------ */
/* 4. Métadonnées                       */
/* ------------------------------------ */

.site-main .entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.site-main .entry-meta > * {
	min-width: 0;
}

.site-main .entry-meta a {
	color: inherit;
	text-decoration-line: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.14em;
}

.site-main .entry-meta a:focus-visible {
	outline: 0.1875rem solid currentColor;
	outline-offset: 0.1875rem;
	text-decoration: none;
}

/* ------------------------------------ */
/* 5. Résumé / extrait                  */
/* ------------------------------------ */

.site-main .entry-summary,
.site-main .entry-content {
	margin-top: 1rem;
}

.site-main .entry-summary > *:first-child,
.site-main .entry-content > *:first-child {
	margin-top: 0;
}

.site-main .entry-summary > *:last-child,
.site-main .entry-content > *:last-child {
	margin-bottom: 0;
}

.site-main .entry-summary p,
.site-main .entry-content p {
	margin-bottom: 1rem;
	line-height: 1.7;
	overflow-wrap: break-word;
}

/* ------------------------------------ */
/* 6. Image mise en avant               */
/* ------------------------------------ */

.site-main .post-thumbnail,
.site-main .entry-thumbnail {
	margin-bottom: 1rem;
}

.site-main .post-thumbnail a,
.site-main .entry-thumbnail a {
	display: inline-block;
	max-width: 100%;
}

.site-main .post-thumbnail img,
.site-main .entry-thumbnail img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: 0.375rem;
}

.site-main .post-thumbnail a:focus-visible,
.site-main .entry-thumbnail a:focus-visible {
	outline: 0.1875rem solid currentColor;
	outline-offset: 0.1875rem;
}

/* ------------------------------------ */
/* 7. Pied d’article                    */
/* ------------------------------------ */

.site-main .entry-footer {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.site-main .entry-footer > *:first-child {
	margin-top: 0;
}

.site-main .entry-footer > *:last-child {
	margin-bottom: 0;
}

/* ------------------------------------ */
/* 8. Lien "Lire la suite"              */
/* ------------------------------------ */

.site-main .more-link,
.site-main .read-more-link {
	display: inline-block;
	margin-top: 0.5rem;
	font-weight: 700;
	text-decoration-line: underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.16em;
}

.site-main .more-link:hover,
.site-main .read-more-link:hover {
	text-decoration-thickness: 0.14em;
}

.site-main .more-link:focus-visible,
.site-main .read-more-link:focus-visible {
	outline: 0.1875rem solid currentColor;
	outline-offset: 0.1875rem;
	text-decoration: none;
}

/* ------------------------------------ */
/* 9. Résultats de recherche            */
/* ------------------------------------ */

.site-main .search-form {
	margin-bottom: 2rem;
}

.site-main .search-result-count,
.site-main .search-results-count {
	margin: 0 0 1.5rem;
	font-size: 1rem;
	line-height: 1.6;
}

.site-main .search-no-results,
.site-main .no-results,
.site-main .nothing-found {
	padding: 1.25rem;
	border: 0.0625rem solid currentColor;
	border-radius: 0.5rem;
}

.site-main .search-no-results > *:first-child,
.site-main .no-results > *:first-child,
.site-main .nothing-found > *:first-child {
	margin-top: 0;
}

.site-main .search-no-results > *:last-child,
.site-main .no-results > *:last-child,
.site-main .nothing-found > *:last-child {
	margin-bottom: 0;
}

/* ------------------------------------ */
/* 10. Navigation de pagination         */
/* ------------------------------------ */

.site-main .navigation.pagination,
.site-main .posts-navigation,
.site-main .post-navigation {
	margin-top: 2rem;
}

.site-main .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.site-main .nav-links .page-numbers,
.site-main .nav-links .post-page-numbers,
.site-main .nav-links a,
.site-main .nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	padding: 0.625rem 0.875rem;
	border: 0.125rem solid currentColor;
	border-radius: 0.375rem;
	text-decoration: none;
	line-height: 1.4;
	font-weight: 700;
}

.site-main .nav-links a {
	color: inherit;
}

.site-main .nav-links a:hover {
	text-decoration: underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.16em;
}

.site-main .nav-links a:focus-visible {
	outline: 0.1875rem solid currentColor;
	outline-offset: 0.1875rem;
	text-decoration: none;
}

.site-main .nav-links .current {
	text-decoration: none;
}

/* ------------------------------------ */
/* 11. Pages d’archives spécifiques     */
/* ------------------------------------ */

.site-main .archive-meta,
.site-main .term-description {
	margin-bottom: 1.5rem;
}

.site-main .archive-meta > *:first-child,
.site-main .term-description > *:first-child {
	margin-top: 0;
}

.site-main .archive-meta > *:last-child,
.site-main .term-description > *:last-child {
	margin-bottom: 0;
}

/* ------------------------------------ */
/* 12. Espacement entre les entrées     */
/* ------------------------------------ */

/*
 * Sécurité complémentaire :
 * si le template enchaîne directement plusieurs articles
 * sans grille explicite, on conserve un bon rythme vertical.
 */
.site-main article + article {
	margin-top: 1.5rem;
}

/*
 * Si les articles sont dans une grille dédiée,
 * l’écart est déjà porté par gap.
 */
.site-main .posts-list article + article,
.site-main .archive-list article + article,
.site-main .search-results-list article + article {
	margin-top: 0;
}

/* ------------------------------------ */
/* 13. États de focus utiles            */
/* ------------------------------------ */

.site-main article:focus-within {
	outline: 0.125rem solid currentColor;
	outline-offset: 0.1875rem;
}

/* ------------------------------------ */
/* 14. Version en grille large          */
/* ------------------------------------ */

/*
 * À partir d’une largeur confortable,
 * les listes peuvent passer en deux colonnes.
 * Cette règle reste volontairement prudente.
 */
@media (min-width: 62em) {
	.site-main .posts-list,
	.site-main .archive-list,
	.site-main .search-results-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ------------------------------------ */
/* 15. Adaptations intermédiaires       */
/* ------------------------------------ */

@media (max-width: 50em) {
	.site-main .archive-title,
	.site-main .page-title {
		font-size: 1.75rem;
	}

	.site-main .entry-title {
		font-size: 1.375rem;
	}

	.site-main .archive-entry,
	.site-main .search-entry,
	.site-main .blog-entry,
	.site-main article.post,
	.site-main article.page,
	.site-main article.type-post,
	.site-main article.type-page {
		padding: 1rem;
	}

	.site-main .entry-meta {
		gap: 0.375rem 0.75rem;
	}
}

/* ------------------------------------ */
/* 16. Adaptations mobiles              */
/* ------------------------------------ */

@media (max-width: 37.5em) {
	.site-main .archive-title,
	.site-main .page-title {
		font-size: 1.5rem;
	}

	.site-main .entry-title {
		font-size: 1.25rem;
	}

	.site-main .nav-links {
		gap: 0.5rem;
	}

	.site-main .nav-links .page-numbers,
	.site-main .nav-links .post-page-numbers,
	.site-main .nav-links a,
	.site-main .nav-links span {
		padding: 0.5rem 0.75rem;
		min-width: 2.25rem;
	}

	.site-main .entry-meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.375rem;
	}
}