/* ==========================================================================
   SpanishAura — Blog
   Listado, artículo y navegación entre entradas.
   ========================================================================== */

/* --- Listado -------------------------------------------------------------- */

.sa-post-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.sa-post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.sa-post-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.sa-post-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background-color: var(--sa-surface-container-lowest);
	border-radius: var(--sa-radius-card);
	box-shadow: var(--sa-shadow-sm);
	transition: box-shadow var(--sa-transition-fast), transform var(--sa-transition-fast);
}

.sa-post-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--sa-shadow-md);
}

.sa-post-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background-color: var(--sa-surface-container);
}

.sa-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sa-post-card__fallback {
	font-size: 2rem;
	opacity: 0.5;
}

.sa-post-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	flex: 1;
	padding: 1.25rem;
}

.sa-post-card__meta {
	margin: 0;
	color: var(--sa-on-surface-variant);
	font-size: var(--sa-fs-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sa-post-card__title {
	margin: 0;
	font-family: var(--sa-font-serif);
	font-size: 1.125rem;
	line-height: var(--sa-lh-tight);
}

.sa-post-card__title a {
	color: var(--sa-on-surface);
	text-decoration: none;
}

.sa-post-card__title a:hover {
	color: var(--sa-primary);
}

.sa-post-card__excerpt {
	margin: 0;
	color: var(--sa-on-surface-variant);
	font-size: var(--sa-fs-sm);
	line-height: var(--sa-lh-relaxed);
}

.sa-post-card__more {
	margin: auto 0 0;
	padding-block-start: 0.5rem;
}

.sa-post-card__more a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--sa-primary);
	font-size: var(--sa-fs-sm);
	font-weight: 700;
	text-decoration: none;
}

/* --- Artículo -------------------------------------------------------------- */

.sa-post-header {
	padding-block-end: 1.5rem;
	text-align: center;
}

.sa-post-header h1 {
	margin: 0.5rem 0 1rem;
}

.sa-post-header__meta {
	margin: 0;
	color: var(--sa-on-surface-variant);
	font-size: var(--sa-fs-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sa-post-header .sa-lead {
	margin-inline: auto;
}

.sa-post-cover {
	margin-block-end: 1.5rem;
}

.sa-post-cover img {
	width: 100%;
	border-radius: var(--sa-radius-card);
	box-shadow: var(--sa-shadow-lg);
}

/* --- Navegación entre entradas ---------------------------------------------- */

.sa-post-nav {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 640px) {
	.sa-post-nav {
		grid-template-columns: repeat(2, 1fr);
	}
}

.sa-post-nav__link {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1rem 1.25rem;
	background-color: var(--sa-surface-container-low);
	border-radius: var(--sa-radius-card);
	text-decoration: none;
	transition: background-color var(--sa-transition-fast);
}

.sa-post-nav__link:hover {
	background-color: var(--sa-surface-container);
}

.sa-post-nav__link--next {
	text-align: end;
}

.sa-post-nav__label {
	color: var(--sa-on-surface-variant);
	font-size: var(--sa-fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sa-post-nav__title {
	color: var(--sa-on-surface);
	font-family: var(--sa-font-serif);
	font-size: 1rem;
}

.sa-post-nav__link:hover .sa-post-nav__title {
	color: var(--sa-primary);
}

/* --- Paginación -------------------------------------------------------------- */

.pagination .nav-links,
.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding-inline: 0.75rem;
	background-color: var(--sa-surface-container-low);
	border-radius: var(--sa-radius-full);
	color: var(--sa-on-surface-variant);
	font-size: var(--sa-fs-sm);
	font-weight: 700;
	text-decoration: none;
}

.pagination .page-numbers:hover {
	background-color: var(--sa-surface-container);
	color: var(--sa-primary);
}

.pagination .page-numbers.current {
	background-color: var(--sa-primary);
	color: var(--sa-on-primary);
}
