/**
 * Bloque iplacex/continuidad-de-estudios. Listado filtrable de carreras de
 * continuidad de estudios. Paridad con continuidad_de_estudios de iplacex24.
 * El acento por tarjeta (borde inferior + iconos) es el color de la ESCUELA,
 * inyectado en SSR vía la variable --cde-accent. Sin Tailwind, sin jQuery.
 */

.ipx-cde,
.ipx-cde *,
.ipx-cde *::before,
.ipx-cde *::after {
	box-sizing: border-box;
}

.ipx-cde {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 2rem 1.25rem;
	font-family: var(--wp--preset--font-family--montserrat);
	color: var(--wp--preset--color--ipla-text-darkgray);
}
@media (min-width: 768px) {
	.ipx-cde { padding: 5rem 2rem; }
}
@media (min-width: 1024px) {
	.ipx-cde { padding-left: 2rem; padding-right: 2rem; }
}
@media (min-width: 1280px) {
	.ipx-cde { padding-left: 2.5rem; padding-right: 2.5rem; }
}

.ipx-cde button {
	font-family: inherit;
}
.ipx-cde figure {
	margin: 0;
}

.ipx-cde__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Encabezado ---------- */
.ipx-cde__title {
	margin: 0 0 0.5rem;
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--ipla-blue);
}
@media (min-width: 768px) {
	.ipx-cde__title { font-size: 2.25rem; margin-bottom: 1rem; }
}

.ipx-cde__intro {
	margin-bottom: 1.5rem;
	font-size: 1rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
@media (min-width: 768px) {
	.ipx-cde__intro { margin-bottom: 2rem; }
}
.ipx-cde__intro > * { margin: 0 0 0.75rem; }

/* ---------- Barra de herramientas (buscador + filtros) ---------- */
.ipx-cde__toolbar {
	width: 100%;
}
@media (min-width: 768px) {
	.ipx-cde__toolbar { display: flex; flex-direction: row; gap: 1rem; }
}

.ipx-cde__search {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	height: 2.5rem;
	margin-bottom: 1rem;
	padding-left: 0.75rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ipla-text-grayalternative);
	border-radius: 1.5rem;
}
@media (min-width: 768px) {
	.ipx-cde__search { flex: 1; height: 2.75rem; max-width: 900px; }
	.ipx-cde__toolbar .ipx-cde__search { flex: 1 1 50%; }
}
.ipx-cde__search:focus-within {
	outline: 2px solid var(--wp--preset--color--ipla-blue);
	outline-offset: 1px;
}

.ipx-cde__search-icon {
	display: inline-flex;
	flex: 0 0 auto;
	line-height: 0;
	pointer-events: none;
	color: var(--wp--preset--color--ipla-lightblue);
}
.ipx-cde__search-icon svg { width: 1rem; height: 1rem; }
@media (min-width: 768px) {
	.ipx-cde__search-icon svg { width: 1.25rem; height: 1.25rem; }
}

.ipx-cde__search-input {
	flex: 1;
	width: 100%;
	height: 100%;
	padding: 0 0.5rem;
	font-size: 0.875rem;
	background: transparent;
	border: 0;
	outline: none;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
@media (min-width: 768px) {
	.ipx-cde__search-input { font-size: 1rem; }
}
.ipx-cde__search-input::placeholder {
	color: var(--wp--preset--color--ipla-text-grayalternative);
}

.ipx-cde__search-btn {
	flex: 0 0 auto;
	height: 100%;
	padding: 0 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--ipla-blue);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ipla-text-grayalternative);
	border-radius: 1.5rem;
	cursor: pointer;
	transition: background-color 0.2s ease-in, color 0.2s ease-in;
}
.ipx-cde__search-btn:hover {
	background: var(--wp--preset--color--ipla-blue);
	color: var(--wp--preset--color--white);
}

.ipx-cde__filters {
	display: flex;
	flex-direction: row;
	gap: 1rem;
	width: 100%;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}
.ipx-cde__filters::-webkit-scrollbar { display: none; }
@media (min-width: 768px) {
	.ipx-cde__filters { flex: 1; margin-bottom: 0; }
}
.ipx-cde__filter-item {
	flex: 0 0 auto;
}
.ipx-cde__filter-btn {
	display: block;
	min-width: 100%;
	padding: 0.5rem 2rem;
	font-size: 0.875rem;
	font-weight: 700;
	white-space: nowrap;
	color: var(--wp--preset--color--ipla-blue);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ipla-text-grayalternative);
	border-radius: 1.5rem;
	cursor: pointer;
	transition: background-color 0.1s ease-in, color 0.1s ease-in;
}
.ipx-cde__filter-btn:hover,
.ipx-cde__filter-btn.is-active {
	background: var(--wp--preset--color--ipla-blue);
	color: var(--wp--preset--color--white);
}

/* ---------- Layout (panel escuelas + carreras) ---------- */
.ipx-cde__layout {
	width: 100%;
}
@media (min-width: 768px) {
	.ipx-cde__layout { display: flex; flex-direction: row; gap: 3rem; }
}

.ipx-cde__schools {
	display: none;
}
@media (min-width: 768px) {
	.ipx-cde__schools {
		display: block;
		flex: 0 0 auto;
		align-self: flex-start;
		min-width: 300px;
		max-width: 350px;
		height: fit-content;
		padding: 2rem;
		background: var(--wp--preset--color--white);
		border: 1px solid var(--wp--preset--color--ipla-textgray);
		border-radius: 1.5rem;
		box-shadow: 0 0 20px rgba(6, 6, 49, 0.12);
	}
}
.ipx-cde__schools-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ipx-cde__school {
	width: fit-content;
	border-bottom: 2px solid transparent;
}
.ipx-cde__school.is-active {
	font-weight: 600;
	border-bottom-color: var(--wp--preset--color--ipla-blue);
}
.ipx-cde__school:hover {
	border-bottom-color: var(--wp--preset--color--ipla-blue);
}
.ipx-cde__school-btn {
	display: block;
	width: fit-content;
	padding: 0.5rem 0;
	text-align: left;
	color: inherit;
	background: none;
	border: 0;
	cursor: pointer;
}
.ipx-cde__school:hover .ipx-cde__school-btn { font-weight: 600; }

.ipx-cde__main {
	width: 100%;
}
@media (min-width: 768px) {
	.ipx-cde__main { flex: 1; }
}

/* ---------- Chips móviles de escuelas ---------- */
.ipx-cde__chips {
	width: 100%;
	margin-bottom: 1.5rem;
	overflow-x: auto;
	scrollbar-width: none;
}
.ipx-cde__chips::-webkit-scrollbar { display: none; }
@media (min-width: 768px) {
	.ipx-cde__chips { display: none; }
}
.ipx-cde__chips-label {
	display: block;
	margin-bottom: 0.5rem;
	padding: 0 0.25rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--ipla-text-grayalternative);
}
.ipx-cde__chips-list {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.75rem;
	width: max-content;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ipx-cde__chip {
	padding: 0.5rem 1rem;
	font-size: 0.75rem;
	font-weight: 600;
	white-space: nowrap;
	color: var(--wp--preset--color--ipla-blue);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ipla-text-grayalternative);
	border-radius: 1.5rem;
	cursor: pointer;
}
.ipx-cde__chip.is-active {
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--ipla-blue);
	border-color: var(--wp--preset--color--ipla-blue);
}
.ipx-cde__chip--administracion_y_negocios.is-active { background: var(--wp--preset--color--ipla-esc-administracion-y-negocios); border-color: var(--wp--preset--color--ipla-esc-administracion-y-negocios); }
.ipx-cde__chip--construccion.is-active { background: var(--wp--preset--color--ipla-esc-construccion); border-color: var(--wp--preset--color--ipla-esc-construccion); }
.ipx-cde__chip--desarrollo_social_y_servicio_publico.is-active { background: var(--wp--preset--color--ipla-esc-desarrollo-social-y-servicio-publico); border-color: var(--wp--preset--color--ipla-esc-desarrollo-social-y-servicio-publico); }
.ipx-cde__chip--educacion.is-active { background: var(--wp--preset--color--ipla-esc-educacion); border-color: var(--wp--preset--color--ipla-esc-educacion); }
.ipx-cde__chip--gastronomia-y-turismo.is-active { background: var(--wp--preset--color--ipla-esc-gastronomia-y-turismo); border-color: var(--wp--preset--color--ipla-esc-gastronomia-y-turismo); }
.ipx-cde__chip--informatica_y_elecomunicaciones.is-active { background: var(--wp--preset--color--ipla-esc-informatica-y-telecomunicaciones); border-color: var(--wp--preset--color--ipla-esc-informatica-y-telecomunicaciones); }
.ipx-cde__chip--salud.is-active { background: var(--wp--preset--color--ipla-esc-salud); border-color: var(--wp--preset--color--ipla-esc-salud); }
.ipx-cde__chip--tecnologia.is-active { background: var(--wp--preset--color--ipla-esc-tecnologia); border-color: var(--wp--preset--color--ipla-esc-tecnologia); }

/* ---------- Grid de tarjetas ---------- */
.ipx-cde__list {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	width: 100%;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}
@media (min-width: 768px) {
	.ipx-cde__list { display: grid; grid-template-columns: 1fr; gap: 3rem; }
}
@media (min-width: 1280px) {
	.ipx-cde__list { grid-template-columns: repeat(3, 1fr); }
}

.ipx-cde__card {
	--cde-accent: var(--wp--preset--color--ipla-blue);
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 1.5rem;
	background: var(--wp--preset--color--white);
	border-radius: 1.5rem;
	border-bottom: 8px solid var(--cde-accent);
	box-shadow: 0 10px 15px -3px rgba(6, 6, 49, 0.1);
	transition: box-shadow 0.3s ease-in;
}
.ipx-cde__card:hover {
	box-shadow: 0 25px 50px -12px rgba(6, 6, 49, 0.25);
}
.ipx-cde__card[hidden] { display: none; }

.ipx-cde__card-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	font-weight: 700;
}
.ipx-cde__card-title a {
	color: var(--wp--preset--color--ipla-blue);
	text-decoration: none;
}

.ipx-cde__card-desc {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}

.ipx-cde__card-attrs {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	color: var(--wp--preset--color--ipla-black);
}
.ipx-cde__card-attrs li {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.75rem;
}
.ipx-cde__icon {
	display: inline-flex;
	flex: 0 0 auto;
	line-height: 0;
	color: var(--cde-accent);
}
.ipx-cde__prereq {
	font-weight: 600;
	color: inherit;
	text-decoration: underline;
	transition: color 0.2s ease;
}
.ipx-cde__prereq:hover {
	color: var(--wp--preset--color--ipla-lightblue);
}

.ipx-cde__card-btn {
	display: inline-block;
	width: fit-content;
	margin-top: auto;
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.25rem;
	color: var(--wp--preset--color--ipla-black);
	text-decoration: none;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ipla-textgray);
	border-radius: 0.25rem;
	box-shadow: 0 1px 2px rgba(6, 6, 49, 0.08);
	transition: background-color 0.3s ease, color 0.3s ease;
}
.ipx-cde__card-btn:hover {
	color: var(--wp--preset--color--white);
	background: var(--cde-accent);
}

/* ---------- Estado vacío ---------- */
.ipx-cde__empty {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 100%;
	margin-bottom: 2rem;
	padding: 5rem 2rem;
	background: var(--wp--preset--color--ipla-gray);
	border-radius: 1.5rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--ipla-text-grayalternative);
	text-align: center;
}
.ipx-cde__empty[hidden] { display: none; }
@media (min-width: 768px) {
	.ipx-cde__empty { flex-direction: row; justify-content: flex-start; text-align: left; }
}
.ipx-cde__empty-icon {
	display: block;
	width: 100%;
	max-width: 150px;
	height: 90px;
	margin: 0 auto 1rem;
	color: var(--wp--preset--color--ipla-text-grayalternative);
}
.ipx-cde__empty-icon svg {
	display: block;
	height: 100%;
	width: auto;
	margin: 0 auto;
}
@media (min-width: 768px) {
	.ipx-cde__empty-icon { flex: 1; margin-bottom: 0; }
	.ipx-cde__empty-body { flex: 1; }
}
.ipx-cde__empty-body p { margin: 0 0 0.5rem; }
@media (min-width: 768px) {
	.ipx-cde__empty-body p { margin-bottom: 0; }
}
.ipx-cde__empty-links {
	display: flex;
	flex-direction: row;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 600;
	color: var(--wp--preset--color--ipla-lightblue);
}
@media (min-width: 768px) {
	.ipx-cde__empty-links { margin-top: 1rem; justify-content: flex-start; }
}
.ipx-cde__empty-links a {
	color: inherit;
	text-decoration: underline;
}

/* ---------- Pie (paginación + nota) ---------- */
.ipx-cde__footer {
	width: 100%;
}
@media (min-width: 768px) {
	.ipx-cde__footer {
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
		align-items: flex-start;
		gap: 5rem;
	}
}
.ipx-cde__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	margin-bottom: 1rem;
}
@media (min-width: 768px) {
	.ipx-cde__pagination { flex: 1; justify-content: flex-end; }
}
.ipx-cde__pagination:empty { display: none; }

.ipx-cde__page,
.ipx-cde__page-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.25rem 0.75rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--ipla-text-grayalternative);
	border-radius: 1.5rem;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.ipx-cde__page:hover,
.ipx-cde__page-arrow:hover {
	background: var(--wp--preset--color--ipla-blue);
	color: var(--wp--preset--color--white);
}
.ipx-cde__page.is-current {
	font-weight: 600;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--ipla-blue);
}
.ipx-cde__page-arrow svg { width: 1rem; height: 1rem; fill: currentColor; }
.ipx-cde__page-arrow--prev svg { transform: rotate(180deg); }
.ipx-cde__ellipsis {
	display: inline-flex;
	align-items: center;
	padding: 0 0.5rem;
	color: var(--wp--preset--color--ipla-text-grayalternative);
}

.ipx-cde__note {
	margin-bottom: 2rem;
	font-size: 0.75rem;
	color: var(--wp--preset--color--ipla-text-darkgray);
}
@media (min-width: 768px) {
	.ipx-cde__note { flex: 1; }
}
.ipx-cde__note > * { margin: 0 0 0.75rem; }
