/**
 * Archivo de término de `modulo_formacion_tax`. Réplica 1:1 del legacy
 * iplaweb/taxonomy-modulo_formacion_tax.php (utilidades Tailwind traducidas a
 * CSS con tokens de theme.json). Scoped a .ipx-modtax.
 *
 * Encolado por functions.php (orquestador) con is_tax('modulo_formacion_tax').
 * Handle: iplacex26-modulo-formacion-tax.
 */

/* Trap (a): reset box-sizing scoped — el tema lienzo no trae border-box global. */
.ipx-modtax,
.ipx-modtax *,
.ipx-modtax *::before,
.ipx-modtax *::after {
	box-sizing: border-box;
}

.ipx-modtax {
	font-family: var(--wp--preset--font-family--montserrat);
	background-color: var(--wp--preset--color--white);
}

/* Trap (d): figuras sin margen heredado. */
.ipx-modtax figure {
	margin: 0;
}

/* ── Breadcrumb (my-2 / md:my-4, px-5 py-4, gap-x-2, max-w 1400) ────────── */
.ipx-modtax__breadcrumb {
	display: flex;
	flex-direction: row;
	align-items: center;
	column-gap: 0.5rem;
	max-width: 1400px;
	margin: 0.5rem auto;
	padding: 1rem 1.25rem;
}
@media (min-width: 768px) {
	.ipx-modtax__breadcrumb {
		margin-block: 1rem;
	}
}
.ipx-modtax__breadcrumb-icon {
	display: block;
	position: relative;
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	color: var(--wp--preset--color--ipla-lightblue);
}
@media (min-width: 768px) {
	.ipx-modtax__breadcrumb-icon {
		width: 1.25rem;
		height: 1.5rem;
	}
}
.ipx-modtax__breadcrumb-icon svg {
	display: block;
	width: auto;
	height: 100%;
}

/* ── Sección + contenedor (px-5 py-8 / md:py-12 md:pb-44, max-w 1400) ───── */
.ipx-modtax__section {
	width: 100%;
}
.ipx-modtax__container {
	max-width: 1400px;
	margin: 0 auto;
	padding: 2rem 1.25rem;
}
@media (min-width: 768px) {
	.ipx-modtax__container {
		padding-block: 3rem 11rem;
	}
}

/* ── Layout: mobile vertical, desktop con sidebar (md:flex-row, gap) ────── */
.ipx-modtax__layout {
	display: flex;
	flex-direction: column;
}
@media (min-width: 768px) {
	.ipx-modtax__layout {
		flex-direction: row;
		align-items: flex-start;
		gap: 2.5rem;
	}
}
@media (min-width: 1024px) {
	.ipx-modtax__layout {
		gap: 3rem;
	}
}

.ipx-modtax__main {
	flex: 1 1 0%;
	min-width: 0;
}
@media (min-width: 768px) {
	.ipx-modtax__main {
		max-width: 65%;
	}
}

/* ── Hero del módulo (mb-12 / md:mb-16) ────────────────────────────────── */
.ipx-modtax__hero {
	margin-bottom: 3rem;
}
@media (min-width: 768px) {
	.ipx-modtax__hero {
		margin-bottom: 4rem;
	}
}

/* Epígrafe: badge azul institucional, texto blanco (bg-ipla-blue text-white). */
.ipx-modtax__eyebrow {
	display: inline-flex;
	align-items: center;
	margin: 0 0 1rem;
	padding: 0.375rem 0.75rem;
	border-radius: 0.375rem;
	background-color: var(--wp--preset--color--ipla-blue);
	color: var(--wp--preset--color--white);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.025em;
	line-height: 1.4;
}

/* space-y-3 / md:space-y-5 entre título, descripción y contador. */
.ipx-modtax__hero-body > * + * {
	margin-top: 0.75rem;
}
@media (min-width: 768px) {
	.ipx-modtax__hero-body > * + * {
		margin-top: 1.25rem;
	}
}

/* Título (text-3xl / md:4xl / lg:5xl, font-bold, leading-tight). */
.ipx-modtax__title {
	margin: 0;
	font-size: 1.875rem;
	line-height: 1.25;
	font-weight: 700;
	color: var(--wp--preset--color--ipla-black);
}
@media (min-width: 768px) {
	.ipx-modtax__title {
		font-size: 2.25rem;
	}
}
@media (min-width: 1024px) {
	.ipx-modtax__title {
		font-size: 3rem;
	}
}

/* Descripción del término (text-base / md:lg, leading-relaxed). */
.ipx-modtax__description {
	font-size: 1rem;
	line-height: 1.625;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
@media (min-width: 768px) {
	.ipx-modtax__description {
		font-size: 1.125rem;
	}
}
.ipx-modtax__description p {
	margin: 0 0 1em;
}
.ipx-modtax__description p:last-child {
	margin-bottom: 0;
}

/* Contador (flex items-center gap-2, py-3 / md:py-4). */
.ipx-modtax__count {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding-block: 0.75rem;
}
@media (min-width: 768px) {
	.ipx-modtax__count {
		padding-block: 1rem;
	}
}
.ipx-modtax__count-icon {
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	color: var(--wp--preset--color--ipla-lightblue);
}
.ipx-modtax__count-text {
	display: inline-flex;
	align-items: baseline;
	gap: 0.375rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
.ipx-modtax__count-text strong {
	font-weight: 700;
	color: var(--wp--preset--color--ipla-black);
}

/* ── Lista de asignaturas ──────────────────────────────────────────────── */
.ipx-modtax__list-title {
	margin: 0 0 1.5rem;
	font-size: 1.5rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--wp--preset--color--ipla-black);
}
@media (min-width: 768px) {
	.ipx-modtax__list-title {
		margin-bottom: 2rem;
		font-size: 1.875rem;
	}
}

/* Grid 1 / md:2 / xl:3, gap-6. */
.ipx-modtax__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 768px) {
	.ipx-modtax__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 1280px) {
	.ipx-modtax__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Tarjeta de asignatura (border-2 gray-200, rounded-2xl, p-6, hover). */
.ipx-modtax__card {
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	border: 2px solid var(--wp--preset--color--ipla-textgray);
	border-radius: 1rem;
	background-color: var(--wp--preset--color--white);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.ipx-modtax__card:hover {
	border-color: var(--wp--preset--color--ipla-lightblue);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 128, 0.1), 0 4px 6px -4px rgba(0, 0, 128, 0.1);
}

/* Código (text-xs font-mono text-gray-500, mb-2). */
.ipx-modtax__card-code {
	margin-bottom: 0.5rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.75rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}

/* Título de la tarjeta (text-xl font-bold, mb-3, line-clamp-2). */
.ipx-modtax__card-title {
	margin: 0 0 0.75rem;
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--wp--preset--color--ipla-black);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ipx-modtax__card-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.15s ease;
}
.ipx-modtax__card-title a:hover {
	color: var(--wp--preset--color--ipla-lightblue);
}

/* Resumen (text-sm text-gray-600, mb-4, line-clamp-3). */
.ipx-modtax__card-excerpt {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--wp--preset--color--ipla-text-darkgray);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Meta horas / créditos (flex gap-4, mb-4, text-sm gray-600). */
.ipx-modtax__card-meta {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
.ipx-modtax__card-meta-item {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}
.ipx-modtax__card-meta-item svg {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

/* "Ver detalles" empuja al fondo de la tarjeta (mt-auto para igualar alturas). */
.ipx-modtax__card-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: auto;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--ipla-lightblue);
	transition: color 0.15s ease;
}
.ipx-modtax__card-link:hover {
	color: var(--wp--preset--color--ipla-blue);
}
.ipx-modtax__card-link svg {
	width: 1rem;
	height: 1rem;
}

/* ── Estado vacío (text-center py-16, bg-gray-50, border-2, rounded-2xl) ── */
.ipx-modtax__empty {
	text-align: center;
	padding-block: 4rem;
	border: 2px solid var(--wp--preset--color--ipla-textgray);
	border-radius: 1rem;
	background-color: var(--wp--preset--color--ipla-gray);
}
.ipx-modtax__empty-icon {
	display: block;
	width: 4rem;
	height: 4rem;
	margin: 0 auto 1rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
.ipx-modtax__empty-text {
	margin: 0;
	font-size: 1.125rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}

/* ── Footer: volver al catálogo (mt-12 / md:16, pt-8, border-t) ─────────── */
.ipx-modtax__footer {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--ipla-textgray);
}
@media (min-width: 768px) {
	.ipx-modtax__footer {
		margin-top: 4rem;
	}
}

/* Trap (c): botón-enlace hereda la fuente del tema. */
.ipx-modtax__catalog-btn {
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: 0.5rem;
	background-color: var(--wp--preset--color--ipla-blue);
	color: var(--wp--preset--color--white);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s ease;
}
.ipx-modtax__catalog-btn:hover {
	background-color: var(--wp--preset--color--ipla-lightblue);
}
.ipx-modtax__catalog-btn svg {
	width: 1.25rem;
	height: 1.25rem;
}

/* ── Aside: sidebar sticky en desktop, debajo en mobile (md:w-35%, mt-8) ── */
.ipx-modtax__aside {
	margin-top: 2rem;
}
@media (min-width: 768px) {
	.ipx-modtax__aside {
		width: 35%;
		margin-top: 0;
	}
}
@media (min-width: 1024px) {
	.ipx-modtax__aside {
		width: 32%;
	}
}
@media (min-width: 768px) {
	.ipx-modtax__aside-sticky {
		position: sticky;
		top: 2rem;
	}
}

/* Card informacional: gradiente azul (from-ipla-blue to-ipla-lightblue). */
.ipx-modtax__info-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	padding: 1.5rem;
	border-radius: 1rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	background-image: linear-gradient(
		to bottom right,
		var(--wp--preset--color--ipla-blue),
		var(--wp--preset--color--ipla-lightblue)
	);
	color: var(--wp--preset--color--white);
	box-shadow: 0 10px 15px -3px rgba(6, 6, 49, 0.2), 0 4px 6px -4px rgba(6, 6, 49, 0.2);
	transition: box-shadow 0.3s ease;
}
@media (min-width: 768px) {
	.ipx-modtax__info-card {
		padding: 2rem;
	}
}
.ipx-modtax__info-card:hover {
	box-shadow: 0 25px 50px -12px rgba(6, 6, 49, 0.35);
}

/* Emoji flotante decorativo (absolute -top-4 -right-4, opacity al hover). */
.ipx-modtax__info-emoji {
	position: absolute;
	top: -1rem;
	right: -1rem;
	font-size: 3.75rem;
	line-height: 1;
	opacity: 0;
	transform: translate(2rem, 2rem);
	transition: opacity 0.7s ease-out, transform 0.7s ease-out;
	pointer-events: none;
}
@media (min-width: 768px) {
	.ipx-modtax__info-emoji {
		font-size: 4.5rem;
	}
}
.ipx-modtax__info-card:hover .ipx-modtax__info-emoji {
	opacity: 0.3;
	transform: translate(0, 0) scale(1.1) rotate(12deg);
}

.ipx-modtax__info-body {
	position: relative;
	z-index: 10;
}
.ipx-modtax__info-head {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}
.ipx-modtax__info-grad {
	font-size: 1.875rem;
	line-height: 1;
	transition: transform 0.3s ease;
}
@media (min-width: 768px) {
	.ipx-modtax__info-grad {
		font-size: 2.25rem;
	}
}
.ipx-modtax__info-card:hover .ipx-modtax__info-grad {
	transform: scale(1.1) rotate(6deg);
}

/* Trap (b): heading sobre gradiente azul → blanco explícito (theme.json lo
   forzaría a ipla-blue = invisible). */
.ipx-modtax__info-title {
	flex: 1 1 0%;
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--wp--preset--color--white);
}
@media (min-width: 768px) {
	.ipx-modtax__info-title {
		font-size: 1.5rem;
	}
}
.ipx-modtax__info-text {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(255, 255, 255, 0.9);
}
@media (min-width: 768px) {
	.ipx-modtax__info-text {
		font-size: 1rem;
	}
}

.ipx-modtax__info-foot {
	position: relative;
	z-index: 10;
	margin-top: 1.5rem;
}
.ipx-modtax__info-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	border-radius: 0.5rem;
	background-color: rgba(255, 255, 255, 0.95);
	color: var(--wp--preset--color--ipla-blue);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.ipx-modtax__info-link:hover {
	background-color: var(--wp--preset--color--white);
	transform: scale(1.05);
	box-shadow: 0 4px 6px -1px rgba(6, 6, 49, 0.15);
}
.ipx-modtax__info-link svg {
	width: 1rem;
	height: 1rem;
	transition: transform 0.3s ease;
}
.ipx-modtax__info-card:hover .ipx-modtax__info-link svg {
	transform: translateX(0.25rem);
}
