/* ============================================================================
 * Página de mixtapes · indabeat
 *
 * Usa los tokens que ya define style.css del tema hijo. No introduce ninguno
 * nuevo. El acento de esta sección es el verde palma, que es el color del
 * pilar Data en el sistema de redes: el archivo es una pieza de datos.
 * ========================================================================== */

.ib-mix {
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 24px 120px;
	color: var(--ib-texto);
}

.ib-mix *,
.ib-mix *::before,
.ib-mix *::after {
	box-sizing: inherit;
}

/* ── Portada ─────────────────────────────────────────────────────────── */

.ib-mix__hero {
	border-bottom: 1px solid var(--ib-border);
	padding-bottom: 48px;
	margin-bottom: 56px;
}

.ib-mix__kicker {
	font-family: "Space Mono", monospace;
	font-size: 12px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--ib-verde);
	margin: 0 0 18px;
}

.ib-mix__titulo {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(48px, 9vw, 104px);
	line-height: 0.92;
	letter-spacing: 1px;
	color: #fff;
	margin: 0 0 28px;
}

/* La cifra manda: es el argumento de la página. */
.ib-mix__cifra {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0 0 32px;
}

.ib-mix__numero {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(56px, 11vw, 120px);
	line-height: 0.85;
	color: var(--ib-verde);
}

.ib-mix__unidad {
	font-family: "Manrope", sans-serif;
	font-size: clamp(15px, 2.2vw, 20px);
	font-weight: 600;
	color: var(--ib-subtexto);
}

.ib-mix__intro {
	max-width: 62ch;
}

.ib-mix__intro p {
	font-family: "Manrope", sans-serif;
	font-size: 17px;
	line-height: 1.65;
	color: var(--ib-texto);
	margin: 0 0 14px;
}

.ib-mix__aviso-enlace {
	margin: 28px 0 0;
}

.ib-mix__aviso-enlace a {
	font-family: "Space Mono", monospace;
	font-size: 13px;
	letter-spacing: 1px;
	color: var(--ib-verde);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

.ib-mix__aviso-enlace a:hover,
.ib-mix__aviso-enlace a:focus-visible {
	color: #fff;
}

/* ── Rejilla de descargas ────────────────────────────────────────────── */

.ib-mix__rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 28px;
}

.ib-mix__card {
	min-width: 0;
}

.ib-mix__enlace {
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-decoration: none;
	color: inherit;
	outline-offset: 4px;
}

.ib-mix__enlace:focus-visible {
	outline: 2px solid var(--ib-verde);
}

/* La carátula siempre cuadrada: con imagen o sin ella, la rejilla no salta. */
.ib-mix__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--ib-radius);
	border: 1px solid var(--ib-border);
	background: var(--ib-gris);
}

.ib-mix__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease, opacity .25s ease;
}

.ib-mix__enlace:hover .ib-mix__media img,
.ib-mix__enlace:focus-visible .ib-mix__media img {
	transform: scale(1.04);
}

/* Respaldo para las entradas sin imagen destacada: un campo de color con las
   iniciales del título. Son muchas, así que esto no es un caso excepcional. */
.ib-mix__media.is-sin-imagen {
	display: grid;
	place-items: center;
	background:
		repeating-linear-gradient(135deg,
			rgba(0, 255, 127, .07) 0 10px,
			transparent 10px 20px),
		var(--ib-gris2);
}

.ib-mix__respaldo {
	font-family: "Bebas Neue", sans-serif;
	font-size: 56px;
	letter-spacing: 2px;
	color: var(--ib-verde);
	opacity: .75;
	text-transform: uppercase;
}

.ib-mix__texto {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.ib-mix__card-titulo {
	font-family: "Bebas Neue", sans-serif;
	font-size: 22px;
	line-height: 1.1;
	letter-spacing: .5px;
	color: #fff;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ib-mix__enlace:hover .ib-mix__card-titulo {
	color: var(--ib-verde);
}

.ib-mix__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	font-family: "Space Mono", monospace;
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ib-subtexto);
}

.ib-mix__descargar {
	color: var(--ib-verde);
}

/* ── Paginación ──────────────────────────────────────────────────────── */

.ib-mix__paginacion {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-top: 56px;
}

.ib-mix__paginacion .page-numbers {
	font-family: "Space Mono", monospace;
	font-size: 13px;
	padding: 10px 16px;
	border: 1px solid var(--ib-border);
	border-radius: 6px;
	color: var(--ib-texto);
	text-decoration: none;
}

.ib-mix__paginacion .page-numbers:hover,
.ib-mix__paginacion .page-numbers:focus-visible {
	border-color: var(--ib-verde);
	color: var(--ib-verde);
}

.ib-mix__paginacion .page-numbers.current {
	background: var(--ib-verde);
	border-color: var(--ib-verde);
	color: var(--ib-negro);
	font-weight: 700;
}

.ib-mix__vacio {
	font-family: "Manrope", sans-serif;
	color: var(--ib-subtexto);
	padding: 48px 0;
}

/* ── Contenido propio de la página, si lo hay ────────────────────────── */

.ib-mix__contenido {
	max-width: 70ch;
	margin: 72px auto 0;
	font-family: "Manrope", sans-serif;
	line-height: 1.7;
}

/* ── Bloque de derechos ──────────────────────────────────────────────── */

.ib-mix__derechos {
	margin-top: 96px;
	padding-top: 56px;
	border-top: 1px solid var(--ib-border);
	scroll-margin-top: 90px;
}

.ib-mix__h2 {
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(32px, 5vw, 52px);
	line-height: 1;
	color: #fff;
	margin: 0 0 20px;
}

.ib-mix__derechos a {
	color: var(--ib-verde);
}

/* ── Móvil ───────────────────────────────────────────────────────────── */

@media (max-width: 640px) {

	.ib-mix {
		padding: 40px 18px 80px;
	}

	.ib-mix__rejilla {
		grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
		gap: 20px;
	}

	.ib-mix__card-titulo {
		font-size: 18px;
	}

	.ib-mix__respaldo {
		font-size: 38px;
	}

	.ib-mix__cifra {
		gap: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.ib-mix__media img {
		transition: none;
	}

	.ib-mix__enlace:hover .ib-mix__media img {
		transform: none;
	}
}
