/* Aula Virtual — catálogo de cursos ([av_catalogo]).
   Misma línea que el campus: tipografía del tema, crema, negro y el color de marca como acento. */
.av-catalog {
	--av-accent: #b8962e;
	--av-accent-ink: color-mix(in srgb, var(--av-accent) 70%, #000);
	--av-accent-soft: color-mix(in srgb, var(--av-accent) 14%, #fff);
	--av-ink: #111111;
	--av-muted: #6f6a62;
	--av-line: #e6e0d6;
	--av-cream: #f3f0eb;
	--av-radius: 14px;
	box-sizing: border-box;
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 24px 0 80px;
	color: var(--av-ink);
	font-size: 16px;
	line-height: 1.6;
	text-align: left;
}
.av-catalog *, .av-catalog *::before, .av-catalog *::after { box-sizing: border-box; }
.av-catalog a { color: inherit; }
.av-catalog .av-icon { flex: none; width: 16px; height: 16px; }
.av-c-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.av-catalog__head { max-width: 680px; margin: 0 auto 36px; text-align: center; }
.av-catalog__eyebrow { margin: 0 0 10px; color: var(--av-accent-ink); font-size: 12px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.av-catalog .av-catalog__title { margin: 0 0 12px; font-size: clamp(32px, 4.5vw, 50px); font-weight: 400; line-height: 1.1; letter-spacing: -.01em; color: var(--av-ink); }
.av-catalog__intro { margin: 0; color: var(--av-muted); font-size: 17px; }

/* Filtros */
.av-catalog__filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 28px; padding: 0 0 20px; border-bottom: 1px solid var(--av-line); }
.av-catalog__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.av-catalog .av-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border: 1px solid var(--av-line); border-radius: 999px; background: #fff; color: var(--av-ink); font-size: 14px; text-decoration: none; transition: border-color .2s, background-color .2s, color .2s; }
.av-catalog .av-chip:hover { border-color: var(--av-ink); }
.av-catalog .av-chip.is-active { border-color: var(--av-ink); background: var(--av-ink); color: #fff; }
.av-catalog__search { position: relative; display: flex; align-items: center; flex: 0 1 300px; min-width: 220px; }
.av-catalog__search .av-icon { position: absolute; left: 14px; color: var(--av-muted); pointer-events: none; }
.av-catalog__search input { width: 100%; min-height: 42px; margin: 0; padding: 0 14px 0 40px; border: 1px solid var(--av-line); border-radius: 999px; background: #fff; color: var(--av-ink); font: inherit; font-size: 15px; box-shadow: none; }
.av-catalog__search input:focus { border-color: var(--av-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--av-accent) 25%, transparent); outline: 0; }
.av-catalog__result { margin: -8px 0 20px; color: var(--av-muted); font-size: 14px; }
.av-catalog__result a { color: var(--av-accent-ink); }

/* Tarjetas */
.av-catalog__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.av-catalog .av-course-card { display: flex; flex-direction: column; margin: 0; overflow: hidden; border: 1px solid var(--av-line); border-radius: var(--av-radius); background: #fff; transition: box-shadow .25s, transform .25s; }
.av-catalog .av-course-card:hover { box-shadow: 0 22px 44px -20px rgba(17, 17, 17, .28); transform: translateY(-3px); }
.av-course-card__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--av-cream); }
.av-course-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.av-catalog .av-course-card:hover .av-course-card__media img { transform: scale(1.04); }
.av-course-card__art { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: radial-gradient(circle at 30% 20%, var(--av-accent-soft), var(--av-cream) 70%); color: var(--av-accent); }
.av-course-card__art .av-icon { width: 56px; height: 56px; stroke-width: 1; }
.av-course-card__status { position: absolute; top: 14px; left: 14px; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--av-ink); font-size: 12px; font-weight: 500; letter-spacing: .02em; }
.av-course-card.is-open .av-course-card__status { background: var(--av-ink); color: #fff; }
.av-course-card.is-full .av-course-card__status { background: #f1e4e2; color: #8f2b22; }
.av-course-card.is-soon .av-course-card__status { color: var(--av-muted); }
.av-course-card__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 22px 24px 24px; }
.av-course-card__cat { margin: 0; color: var(--av-accent-ink); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.av-catalog .av-course-card__title { margin: 0; font-size: 22px; font-weight: 500; line-height: 1.3; letter-spacing: 0; }
.av-course-card__title a { text-decoration: none; }
.av-course-card__title a:hover { color: var(--av-accent-ink); }
.av-course-card__text { display: -webkit-box; margin: 0; overflow: hidden; color: var(--av-muted); font-size: 15px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.av-course-card__facts { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 4px 0 0; padding: 0; list-style: none; }
.av-course-card__facts li { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--av-ink); font-size: 13.5px; }
.av-course-card__facts .av-icon { color: var(--av-accent-ink); }
.av-course-card__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--av-line); }
.av-course-card__price { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.av-course-card__price strong { font-size: 20px; font-weight: 500; }
.av-course-card__price small { margin-top: 3px; color: #8f2b22; font-size: 12px; }
.av-course-card__enrolled { display: inline-flex; align-items: center; gap: 6px; color: var(--av-accent-ink); font-size: 14px; font-weight: 500; }

/* Botones */
.av-catalog .av-c-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 22px; border: 1px solid #000; border-radius: 5px; background: #000; color: #fff; font: inherit; font-size: 14px; font-weight: 500; text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.av-catalog .av-c-btn:hover { border-color: var(--av-accent); background: var(--av-accent); color: #111; }
.av-catalog .av-c-btn.av-c-btn--ghost { background: transparent; color: #000; }
.av-catalog .av-c-btn.av-c-btn--ghost:hover { background: #000; color: #fff; border-color: #000; }

/* Vacío y paginación */
.av-catalog__empty { max-width: 560px; margin: 24px auto; padding: 48px 32px; border-radius: 18px; background: var(--av-cream); text-align: center; }
.av-catalog__empty > .av-icon { width: 44px; height: 44px; margin-bottom: 14px; color: var(--av-accent-ink); stroke-width: 1.4; }
.av-catalog .av-catalog__empty h2 { margin: 0 0 8px; font-size: 24px; font-weight: 400; }
.av-catalog__empty p { margin: 0 0 22px; color: var(--av-muted); }
.av-catalog__pages { display: flex; justify-content: center; gap: 6px; margin: 40px 0 0; }
.av-catalog__pages a, .av-catalog__pages span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--av-line); border-radius: 999px; font-size: 14px; text-decoration: none; }
.av-catalog__pages a:hover { border-color: var(--av-ink); }
.av-catalog__pages .is-current { border-color: var(--av-ink); background: var(--av-ink); color: #fff; }

@media (max-width: 782px) {
	.av-catalog { padding: 8px 0 56px; }
	.av-catalog__head { margin-bottom: 24px; }
	.av-catalog__filters { flex-direction: column; align-items: stretch; }
	.av-catalog__chips { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; scrollbar-width: none; }
	.av-catalog__chips::-webkit-scrollbar { display: none; }
	.av-catalog .av-chip { flex: none; }
	.av-catalog__search { flex: 1 1 auto; }
	.av-catalog__grid { gap: 20px; }
	.av-course-card__foot .av-c-btn { flex: 1; }
}
