/*
 * Enfoque1 — Sistema visual de páginas de listado
 * masters · cursos-247 · cursos-en-vivo · cursos-grupales
 * cursos-grupales-async · cursos-personalizados
 *
 * Capa exclusivamente presentacional: unifica cabeceras, secciones y cards
 * reutilizando el lenguaje visual de la portada. No altera lógica ni datos.
 */

.listado-page {
    --lp-ink: #132038;
    --lp-copy: #4e5d72;
    --lp-muted: #6b7889;
    --lp-line: #dfe7ef;
    --lp-soft: #f6f9fc;
    --lp-primary: #4586b5;
    --lp-primary-dark: #346b93;
    --lp-secondary: #5d2973;
    --lp-secondary-dark: #4b205e;
    --lp-accent: var(--lp-primary);
    --lp-accent-dark: var(--lp-primary-dark);
    --lp-accent-soft: #edf4f9;
    --lp-radius: 12px;
    background: #fff;
    color: var(--lp-ink);
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* Audiencia empresarial: acento morado corporativo. */
.listado-page--empresas {
    --lp-accent: var(--lp-secondary);
    --lp-accent-dark: var(--lp-secondary-dark);
    --lp-accent-soft: #f4edf7;
}

/* ═══════════════════════════════════════════
   1. CABECERA DE PÁGINA
   Corrige el solape del menú fijo y unifica
   las seis cabeceras en un mismo componente.
   ═══════════════════════════════════════════ */
.listado-page .hero-master,
.listado-page .hero-247,
.listado-page .hero-vivo,
.listado-page .hero-grupal,
.listado-page .hero-ga,
.listado-page .cp-hero {
    position: relative;
    min-height: 0;
    padding: calc(var(--public-header-height, 136px) + 2.75rem) 0 2.25rem !important;
    overflow: visible;
    border-bottom: 1px solid var(--lp-line);
    background: var(--lp-soft) !important;
    color: var(--lp-ink);
    text-align: left;
}
.listado-page .hero-master::before,
.listado-page .hero-247::before,
.listado-page .hero-vivo::before,
.listado-page .hero-grupal::before,
.listado-page .hero-ga::before,
.listado-page .cp-hero::before {
    display: none !important;
    content: none !important;
}

/* Filete de acento a la izquierda del bloque de título. */
.listado-page .hero-master > .container,
.listado-page .hero-247 > .container,
.listado-page .hero-vivo > .container,
.listado-page .hero-grupal > .container,
.listado-page .hero-ga > .container,
.listado-page .cp-hero > .container {
    position: relative;
    padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5 + .95rem);
}
.listado-page .hero-master > .container::before,
.listado-page .hero-247 > .container::before,
.listado-page .hero-vivo > .container::before,
.listado-page .hero-grupal > .container::before,
.listado-page .hero-ga > .container::before,
.listado-page .cp-hero > .container::before {
    position: absolute;
    top: .35rem;
    bottom: .35rem;
    left: calc(var(--bs-gutter-x, 1.5rem) * .5);
    width: 3px;
    border-radius: 2px;
    background: var(--lp-accent);
    content: '';
}

.listado-page .hero-master h1,
.listado-page .hero-247 h1,
.listado-page .hero-vivo h1,
.listado-page .hero-grupal h1,
.listado-page .hero-ga h1,
.listado-page .cp-hero h1 {
    max-width: 22ch;
    margin: .85rem 0 .7rem;
    color: var(--lp-ink);
    font-size: clamp(1.9rem, 3.4vw, 2.75rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.04em;
}
.listado-page .hero-master p,
.listado-page .hero-247 p,
.listado-page .hero-vivo p,
.listado-page .hero-grupal p,
.listado-page .hero-ga p,
.listado-page .cp-hero p {
    max-width: 72ch;
    margin: 0;
    color: var(--lp-copy);
    font-size: .95rem;
    line-height: 1.7;
    opacity: 1;
}

/* Distintivo superior: mismo componente para los seis nombres de clase. */
.listado-page .hero-badge,
.listado-page .live-badge,
.listado-page .grupal-badge,
.listado-page .ga-badge {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: 0 !important;
    padding: .42rem .68rem !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: var(--lp-accent-soft) !important;
    color: var(--lp-accent-dark) !important;
    font-size: .68rem !important;
    font-weight: 800 !important;
    letter-spacing: .07em;
    text-transform: uppercase;
    backdrop-filter: none !important;
}
.listado-page .live-badge::before {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #dc3545;
}

/* Cifras de la cabecera. */
.listado-page .hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-top: 1.6rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--lp-line);
}
.listado-page .hero-stat {
    padding: 0 1.6rem;
    border-right: 1px solid var(--lp-line);
    text-align: left;
}
.listado-page .hero-stat:first-child { padding-left: 0; }
.listado-page .hero-stat:last-child { padding-right: 0; border-right: 0; }
.listado-page .hero-stat strong {
    display: block;
    color: var(--lp-ink);
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
}
.listado-page .hero-stat span {
    display: block;
    margin-top: .3rem;
    color: var(--lp-muted);
    font-size: .74rem;
    font-weight: 650;
    opacity: 1;
}

/* Atributos del programa. */
.listado-page .hero-features {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem !important;
    margin-top: 1.35rem !important;
}
.listado-page .hero-feature {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .42rem .68rem !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: var(--lp-copy) !important;
    font-size: .74rem !important;
    font-weight: 650;
    opacity: 1;
}
.listado-page .hero-feature i { color: var(--lp-accent) !important; font-size: .9rem !important; }

/* ═══════════════════════════════════════════
   2. SECCIONES DEL CATÁLOGO
   Fondos planos, sin degradados ni bloques
   decorativos, con separadores de 1 px.
   ═══════════════════════════════════════════ */
.listado-page .hero-master + section,
.listado-page .hero-247 + section,
.listado-page .hero-vivo + section,
.listado-page .hero-grupal + section,
.listado-page .hero-ga + section,
.listado-page .cp-hero + section {
    padding: 3.25rem 0 !important;
    background: #fff !important;
}
.listado-page .courses-section,
.listado-page .cp-section {
    padding: 3.25rem 0 !important;
    background: #fff !important;
}
.listado-page .cp-section--alt { background: #fbfcfd !important; }
.listado-page .cp-section + .cp-section { border-top: 1px solid var(--lp-line); }

.listado-page .catalog-section,
.listado-page .live-catalog-section {
    padding: 0 0 3rem !important;
    overflow: visible;
    background: none !important;
}
.listado-page .catalog-section + .catalog-section,
.listado-page .live-catalog-section + .live-catalog-section {
    margin-top: 1rem;
    padding-top: 3rem !important;
    border-top: 1px solid var(--lp-line) !important;
}

/* Encabezado de sección: editorial y alineado a la izquierda. */
.listado-page .catalog-heading,
.listado-page .live-catalog-heading {
    align-items: flex-end;
    gap: 1.25rem;
    margin-bottom: 1.6rem !important;
    padding-left: .95rem;
    border-left: 3px solid var(--lp-accent);
}
.listado-page .catalog-heading h2,
.listado-page .live-catalog-heading h2,
.listado-page .section-title,
.listado-page .cp-section-title {
    margin: .55rem 0 .4rem !important;
    color: var(--lp-ink) !important;
    font-size: clamp(1.45rem, 2.4vw, 1.95rem) !important;
    font-weight: 800 !important;
    letter-spacing: -.035em !important;
    text-align: left !important;
    opacity: 1 !important;
}
.listado-page .catalog-heading p,
.listado-page .live-catalog-heading p,
.listado-page .section-subtitle,
.listado-page .cp-section-sub {
    max-width: 72ch;
    margin: 0 auto 0 0 !important;
    color: var(--lp-copy) !important;
    font-size: .88rem !important;
    line-height: 1.65;
    text-align: left !important;
}
.listado-page .section-subtitle,
.listado-page .cp-section-sub { margin-bottom: 1.5rem !important; }

.listado-page .catalog-kicker,
.listado-page .live-catalog-kicker {
    padding: .4rem .65rem !important;
    border-radius: 6px !important;
    background: var(--lp-accent-soft) !important;
    color: var(--lp-accent-dark) !important;
    font-size: .67rem !important;
    font-weight: 800 !important;
    letter-spacing: .07em;
}
.listado-page .catalog-total,
.listado-page .live-catalog-total {
    min-width: 68px;
    padding: .7rem !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: var(--lp-ink) !important;
    font-size: 1.2rem !important;
}
.listado-page .catalog-total small,
.listado-page .live-catalog-total small {
    color: var(--lp-muted) !important;
    font-size: .56rem !important;
}

/* Separador entre "próximos" y "anteriores". */
.listado-page hr.my-5 {
    margin: 2.75rem 0 !important;
    border: 0;
    border-top: 1px solid var(--lp-line);
    opacity: 1;
}

/* ═══════════════════════════════════════════
   3. CARDS UNIFORMES
   Un solo lenguaje visual para las seis
   variantes de card que existen hoy.
   ═══════════════════════════════════════════ */
.listado-page .course-card,
.listado-page .c247-card,
.listado-page .vivo-card,
.listado-page .grupal-card,
.listado-page .ga-card,
.listado-page .cp-course-card {
    display: flex;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--lp-line) !important;
    border-radius: var(--lp-radius) !important;
    background: #fff;
    box-shadow: none !important;
    color: var(--lp-ink);
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.listado-page .course-card:hover,
.listado-page .c247-card:hover,
.listado-page .vivo-card:hover,
.listado-page .grupal-card:hover,
.listado-page .ga-card:hover,
.listado-page .cp-course-card:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(69,134,181,.34) !important;
    box-shadow: 0 10px 26px rgba(16,36,60,.10) !important;
    color: var(--lp-ink);
}

/* Miniaturas 1:1 sin velos ni degradados. */
.listado-page .course-card-img,
.listado-page .c247-card-img,
.listado-page .vivo-card-img,
.listado-page .grupal-card-img,
.listado-page .ga-card-img,
.listado-page .cp-course-img,
.listado-page .cp-course-img-placeholder {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    flex: 0 0 auto;
    overflow: hidden;
    background-color: var(--lp-soft) !important;
    background-position: center;
    background-size: cover;
    object-fit: cover;
}
.listado-page .course-card-img::after,
.listado-page .c247-card-img::after,
.listado-page .vivo-card-img::after,
.listado-page .grupal-card-img::after,
.listado-page .ga-card-img::after {
    display: none !important;
    content: none !important;
}
.listado-page .cp-course-img-placeholder {
    display: grid;
    place-items: center;
    color: var(--lp-muted);
    font-size: 1.9rem;
}

/* Rótulos sobre la imagen: superficie plana, sin degradado. */
.listado-page .c247-badge,
.listado-page .type-badge,
.listado-page .badge-master,
.listado-page .badge-launch {
    position: absolute;
    z-index: 2;
    top: .6rem;
    left: .6rem;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .32rem .55rem !important;
    border-radius: 6px !important;
    background: rgba(13,24,43,.82) !important;
    color: #fff !important;
    font-size: .6rem !important;
    font-weight: 750 !important;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.listado-page .badge-launch { top: auto; bottom: .6rem; background: rgba(69,134,181,.94) !important; }
.listado-page .date-chip,
.listado-page .sesiones-chip,
.listado-page .info-chip {
    position: absolute;
    z-index: 2;
    top: .6rem;
    right: .6rem;
    padding: .38rem .55rem !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: rgba(255,255,255,.95) !important;
    box-shadow: 0 2px 8px rgba(13,24,43,.14);
    color: var(--lp-ink) !important;
    font-size: .64rem !important;
    font-weight: 700 !important;
    backdrop-filter: none !important;
}
.listado-page .date-chip .day { font-size: 1.15rem !important; letter-spacing: -.04em; }

/* Título sobre la imagen: franja sólida legible. */
.listado-page .vivo-card-img-overlay,
.listado-page .grupal-card-img-overlay,
.listado-page .ga-card-img-overlay {
    padding: .7rem .8rem !important;
    background: rgba(13,24,43,.78) !important;
}
.listado-page .vivo-card-img-overlay h5,
.listado-page .grupal-card-img-overlay h5,
.listado-page .ga-card-img-overlay h5 {
    font-size: .95rem !important;
    font-weight: 750 !important;
    line-height: 1.32 !important;
    letter-spacing: -.015em;
    text-shadow: none !important;
}

/* Cuerpo de la card. */
.listado-page .course-card-body,
.listado-page .c247-card-body,
.listado-page .vivo-card-body,
.listado-page .grupal-card-body,
.listado-page .ga-card-body,
.listado-page .cp-course-body {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    padding: 1.1rem !important;
}
.listado-page .course-card-name,
.listado-page .c247-card-name,
.listado-page .cp-course-body h3 {
    display: -webkit-box;
    min-height: 2.7em;
    margin: 0 0 .6rem !important;
    overflow: hidden;
    color: var(--lp-ink) !important;
    font-size: 1.05rem !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;
    letter-spacing: -.02em !important;
    text-transform: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.listado-page .course-card-desc,
.listado-page .c247-card-desc {
    margin-bottom: .8rem !important;
    color: var(--lp-copy) !important;
    font-size: .82rem !important;
    line-height: 1.6 !important;
    -webkit-line-clamp: 2;
}

/* Metadatos: chips homogéneos en todas las variantes. */
.listado-page .course-card-meta,
.listado-page .c247-card-meta,
.listado-page .cp-course-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem !important;
    margin-bottom: .8rem !important;
    border: 0 !important;
}
.listado-page .course-card-meta span,
.listado-page .c247-card-meta span,
.listado-page .cp-course-tag {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 24px;
    padding: .26rem .45rem !important;
    border-radius: 6px !important;
    background: var(--lp-soft) !important;
    color: var(--lp-copy) !important;
    font-size: .68rem !important;
    font-weight: 650 !important;
}
.listado-page .course-card-meta span i,
.listado-page .c247-card-meta span i,
.listado-page .cp-course-tag i { color: var(--lp-accent) !important; font-size: .74rem !important; opacity: 1 !important; }

/* Metadatos en lista de las variantes en vivo y grupales. */
.listado-page .vivo-card-body .meta,
.listado-page .grupal-card-body .meta,
.listado-page .ga-card-body .meta {
    margin-bottom: .75rem !important;
    color: var(--lp-copy) !important;
    font-size: .78rem !important;
    line-height: 1.7 !important;
}
.listado-page .vivo-card-body .meta i,
.listado-page .grupal-card-body .meta i,
.listado-page .ga-card-body .meta i { color: var(--lp-accent) !important; }
.listado-page .vivo-card-body .tema,
.listado-page .grupal-card-body .tema,
.listado-page .ga-card-body .tema {
    margin-bottom: .6rem !important;
    color: var(--lp-accent-dark) !important;
    font-size: .68rem !important;
    font-weight: 750 !important;
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* Avisos de sesión y cuentas atrás. */
.listado-page .course-card-session,
.listado-page .master-sesion-info {
    margin-bottom: .7rem !important;
    padding: .5rem .58rem !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: 8px !important;
    background: var(--lp-soft) !important;
    color: var(--lp-copy) !important;
    font-size: .72rem !important;
    line-height: 1.45;
}
.listado-page .countdown-box,
.listado-page .master-countdown {
    margin-bottom: .7rem !important;
    padding: .55rem !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
}
.listado-page .countdown-label { color: var(--lp-muted) !important; font-size: .62rem !important; }
.listado-page .countdown-value { color: var(--lp-ink) !important; font-size: .85rem !important; }

/* Descuentos. */
.listado-page .course-card-discount,
.listado-page .c247-card-discount {
    align-self: flex-start;
    margin-bottom: .55rem !important;
    padding: .24rem .48rem !important;
    border-radius: 999px !important;
    background: #b42342 !important;
    color: #fff !important;
    font-size: .62rem !important;
    font-weight: 800 !important;
}
.listado-page .price-old,
.listado-page .c247-card-price .price-old {
    color: var(--lp-muted) !important;
    font-size: .7rem !important;
    text-decoration: line-through;
}

/* Pie: precio y acción en una sola línea. */
.listado-page .course-card-footer,
.listado-page .c247-card-footer,
.listado-page .vivo-card-footer,
.listado-page .grupal-card-footer,
.listado-page .ga-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem !important;
    margin-top: auto;
    padding: .8rem 1.1rem 1rem !important;
    border-top: 1px solid var(--lp-line) !important;
}
.listado-page .course-card-footer,
.listado-page .c247-card-footer { padding: .8rem 0 0 !important; }
.listado-page .course-card-price,
.listado-page .c247-card-price,
.listado-page .vivo-price,
.listado-page .grupal-price,
.listado-page .ga-price,
.listado-page .cp-course-precio {
    min-width: 0;
    color: var(--lp-ink) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.25;
}
.listado-page .course-card-price small,
.listado-page .c247-card-price small,
.listado-page .vivo-price small,
.listado-page .grupal-price small,
.listado-page .ga-price small,
.listado-page .cp-course-precio small {
    color: var(--lp-muted) !important;
    font-size: .6rem !important;
    font-weight: 600 !important;
}
.listado-page .c247-card-price.is-free,
.listado-page .ga-price--free { color: #0f9f72 !important; }
.listado-page .cp-course-precio { margin-top: auto; padding-top: .7rem; border-top: 1px solid var(--lp-line); }

/* Acciones: un único botón corporativo. */
.listado-page .btn-ver,
.listado-page .btn-vivo,
.listado-page .btn-grupal,
.listado-page .btn-ga,
.listado-page .btn-curso,
.listado-page .btn-master {
    display: inline-flex;
    min-height: 36px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .5rem .72rem !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: var(--lp-accent) !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    text-decoration: none;
    white-space: nowrap;
    transition: background .18s ease;
}
.listado-page .btn-ver:hover,
.listado-page .btn-vivo:hover,
.listado-page .btn-grupal:hover,
.listado-page .btn-ga:hover,
.listado-page .btn-curso:hover,
.listado-page .btn-master:hover {
    transform: none !important;
    background: var(--lp-accent-dark) !important;
    box-shadow: none !important;
    color: #fff !important;
}
.listado-page .master-info-button {
    border-radius: 8px !important;
    background: var(--lp-soft) !important;
    color: var(--lp-accent-dark) !important;
    font-size: .72rem !important;
}

/* Sesiones y programas finalizados. */
.listado-page .vivo-card[style*="opacity"],
.listado-page .grupal-card[style*="opacity"] { opacity: 1 !important; }
.listado-page .vivo-card[style*="opacity"] .vivo-card-img,
.listado-page .grupal-card[style*="opacity"] .grupal-card-img { filter: grayscale(1); opacity: .75; }

/* ═══════════════════════════════════════════
   4. BLOQUES DE APOYO
   ═══════════════════════════════════════════ */
.listado-page .empty-state {
    padding: 2.75rem 1.5rem !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: var(--lp-radius) !important;
    background: var(--lp-soft) !important;
    box-shadow: none !important;
    color: var(--lp-copy) !important;
    text-align: center;
}
.listado-page .empty-state i { color: var(--lp-muted) !important; font-size: 2.1rem !important; }
.listado-page .empty-state h4,
.listado-page .empty-state h5 { margin: .75rem 0 .4rem; color: var(--lp-ink); font-size: 1.02rem; font-weight: 780; }
.listado-page .empty-state p { margin: 0; color: var(--lp-copy); font-size: .86rem; }

.listado-page .how-it-works,
.listado-page .cp-mode-card {
    padding: 1.75rem !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: var(--lp-radius) !important;
    background: #fff !important;
    box-shadow: none !important;
}
.listado-page .cp-mode-card:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(69,134,181,.28) !important;
    box-shadow: 0 10px 26px rgba(16,36,60,.10) !important;
}
.listado-page .how-it-works h3,
.listado-page .cp-mode-card h3 {
    margin-bottom: .6rem !important;
    color: var(--lp-ink) !important;
    font-size: 1.05rem !important;
    font-weight: 780 !important;
    letter-spacing: -.02em;
}
.listado-page .how-it-works h3 { margin-bottom: 1.35rem !important; }
.listado-page .step-num {
    width: 34px !important;
    height: 34px !important;
    border-radius: 8px !important;
    background: var(--lp-accent-soft) !important;
    color: var(--lp-accent-dark) !important;
    font-size: .88rem !important;
}
.listado-page .step-item { text-align: left !important; }
.listado-page .step-item h6 { margin-bottom: .3rem; color: var(--lp-ink); font-size: .88rem; font-weight: 750; }
.listado-page .step-item p { margin: 0; color: var(--lp-copy); font-size: .8rem; line-height: 1.6; }
.listado-page .cp-mode-icon {
    width: 46px !important;
    height: 46px !important;
    margin-bottom: 1rem !important;
    border-radius: 10px !important;
    background: var(--lp-accent-soft) !important;
    color: var(--lp-accent-dark) !important;
    font-size: 1.2rem !important;
}
.listado-page .cp-features li,
.listado-page .cp-mode-card p { color: var(--lp-copy); font-size: .82rem; line-height: 1.65; }
.listado-page .cp-features i { color: var(--lp-accent) !important; }

/* ═══════════════════════════════════════════
   5. RESPONSIVE
   ═══════════════════════════════════════════ */
@media (max-width: 991px) {
    .listado-page .hero-master,
    .listado-page .hero-247,
    .listado-page .hero-vivo,
    .listado-page .hero-grupal,
    .listado-page .hero-ga,
    .listado-page .cp-hero {
        padding: calc(var(--public-header-height, 64px) + 1.9rem) 0 1.9rem !important;
    }
    .listado-page .hero-master + section,
    .listado-page .hero-247 + section,
    .listado-page .hero-vivo + section,
    .listado-page .hero-grupal + section,
    .listado-page .hero-ga + section,
    .listado-page .cp-hero + section,
    .listado-page .courses-section,
    .listado-page .cp-section { padding: 2.5rem 0 !important; }
    .listado-page .catalog-section,
    .listado-page .live-catalog-section { padding-bottom: 2.25rem !important; }
    .listado-page .catalog-section + .catalog-section,
    .listado-page .live-catalog-section + .live-catalog-section { padding-top: 2.25rem !important; }
    .listado-page .catalog-heading,
    .listado-page .live-catalog-heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767px) {
    .listado-page .hero-master h1,
    .listado-page .hero-247 h1,
    .listado-page .hero-vivo h1,
    .listado-page .hero-grupal h1,
    .listado-page .hero-ga h1,
    .listado-page .cp-hero h1 { max-width: none; font-size: 1.7rem; }
    .listado-page .hero-stat { padding: 0 1.1rem; }
    .listado-page .course-card-name,
    .listado-page .c247-card-name,
    .listado-page .cp-course-body h3 { font-size: .95rem !important; }
    .listado-page .course-card-footer,
    .listado-page .c247-card-footer,
    .listado-page .vivo-card-footer,
    .listado-page .grupal-card-footer,
    .listado-page .ga-card-footer { align-items: flex-start; flex-direction: column; gap: .55rem !important; }
    .listado-page .btn-ver,
    .listado-page .btn-vivo,
    .listado-page .btn-grupal,
    .listado-page .btn-ga,
    .listado-page .btn-curso,
    .listado-page .btn-master { width: 100%; }
}

@media (max-width: 575px) {
    .listado-page .hero-stats { gap: 1.1rem; }
    .listado-page .hero-stat { padding: 0 !important; border-right: 0; }
    .listado-page .step-grid { grid-template-columns: 1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
    .listado-page .course-card,
    .listado-page .c247-card,
    .listado-page .vivo-card,
    .listado-page .grupal-card,
    .listado-page .ga-card,
    .listado-page .cp-course-card,
    .listado-page .cp-mode-card { transition: none; }
    .listado-page .live-badge::before { animation: none; }
}

/* Cierre de página: bloque de contacto plano, sin degradados. */
.listado-page .cp-cta {
    padding: 3.25rem 0 !important;
    border-top: 1px solid var(--lp-line);
    background: #10243c !important;
    text-align: left !important;
}
.listado-page .cp-cta h2 {
    margin-bottom: .55rem !important;
    color: #fff !important;
    font-size: clamp(1.45rem, 2.4vw, 1.95rem) !important;
    font-weight: 800 !important;
    letter-spacing: -.035em;
}
.listado-page .cp-cta p {
    max-width: 68ch;
    margin-bottom: 1.35rem !important;
    color: rgba(255,255,255,.72) !important;
    font-size: .92rem !important;
    line-height: 1.7;
}
.listado-page .cp-cta-buttons { justify-content: flex-start !important; }
