/* Capa propia de la app de cursos sobre el sistema del prototipo. Solo lee tokens. */
a { color: var(--acento-tinta); }
.btn--primario { color: #000; }
.saltar { position: absolute; left: -9999px; }
.saltar:focus { left: 12px; top: 12px; z-index: 200; background: var(--superficie); padding: 8px 12px; border-radius: var(--r-1); }
h1 { font-weight: 800; }

/* Logo MM: color en claro, negativo en oscuro. Proporción 11,76 : 1 */
.marca-mm { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 7px; text-decoration: none !important; }
.marca-mm__logo { display: block; width: 164px; height: 14px; background: url(/assets/morgansmedia_color.svg) left center / contain no-repeat; }
.marca-mm__sub { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-3); font-weight: 500; }
.marca-mm--neg .marca-mm__logo { background-image: url(/assets/morgansmedia_negativo.svg); }
.marca-mm--neg .marca-mm__sub { color: #8a929b; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .marca-mm__logo { background-image: url(/assets/morgansmedia_negativo.svg); } }
:root[data-tema="oscuro"] .marca-mm__logo { background-image: url(/assets/morgansmedia_negativo.svg); }
.al__lado .logo { padding: 2px 12px 26px; }
.al__lado .marca-mm__logo { width: 176px; height: 15px; }
.lado-yo { margin-top: auto; display: flex; align-items: center; gap: 10px; padding: 10px 8px 0; border-top: 1px solid var(--hilo); font-size: .9375rem; }
.lado-yo small { display: block; color: var(--tinta-3); font-size: .8125rem; }
.al__barra .btn-icono[data-tema-cambiar], .al__barra .avatar { display: none; }
@media (max-width: 900px) { .al__barra .btn-icono[data-tema-cambiar], .al__barra .avatar { display: inline-grid; } .al__barra .marca-mm { flex-direction: row; align-items: center; gap: 10px; } .al__barra .marca-mm__logo { width: 140px; height: 12px; } }
.volver { margin-left: -10px; }
.toast-fijo { margin-bottom: var(--e-5); }

/* ---------- Acceso (ingresar / unirse) ---------- */
body.acceso { background: var(--superficie); }
.acceso__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; }
.acceso__lado { background: #000; color: #fff; padding: 48px clamp(24px, 5vw, 72px); display: flex; flex-direction: column; justify-content: space-between; gap: 48px; position: relative; overflow: hidden; }
.acceso__lado::after { content: ""; position: absolute; right: -90px; bottom: -90px; width: 320px; height: 320px; border-radius: 50%; background: var(--acento); }
.acceso__lado .marca-mm__logo { width: 210px; height: 18px; }
.acceso__mensaje { max-width: 30rem; position: relative; z-index: 1; }
.acceso__mensaje h1 { color: #fff; font-size: clamp(2.25rem, 4.4vw, 3.5rem); line-height: .92; letter-spacing: -0.03em; margin-bottom: 20px; }
.acceso__mensaje p { color: #c9ced4; font-size: 1.0625rem; }
.acceso__rotulo { font-family: var(--font-mono); font-size: 12px !important; letter-spacing: .14em; text-transform: uppercase; color: var(--acento) !important; margin-bottom: 18px; }
.acceso__pie { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8a929b; position: relative; z-index: 1; }
.acceso__form { display: flex; flex-direction: column; justify-content: center; padding: 48px clamp(20px, 6vw, 96px); gap: 20px; max-width: 560px; width: 100%; }
.acceso__form h2 { font-size: 1.75rem; line-height: 1.05; }
.acceso__form .btn { min-height: 50px; font-size: 1rem; }
@media (max-width: 860px) {
  .acceso__in { grid-template-columns: 1fr; min-height: 0; }
  .acceso__lado { padding: 28px 20px 32px; gap: 28px; }
  .acceso__lado::after { width: 120px; height: 120px; right: -50px; top: -50px; bottom: auto; }
  .acceso__mensaje h1 { font-size: 2rem; margin-bottom: 12px; }
  .acceso__mensaje p:not(.acceso__rotulo) { font-size: 1rem; }
  .acceso__pie { display: none; }
  .acceso__form { padding: 28px 20px 48px; max-width: none; }
}
.ojo { position: relative; }
.ojo .entrada { padding-right: 48px; }
.ojo button { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
.campo__ayuda { font-size: var(--t-micro); color: var(--tinta-3); }

/* ---------- Inicio ---------- */
.saludo h1 { font-size: clamp(2rem, 4vw, 2.75rem); line-height: .94; letter-spacing: -0.03em; }
.seguir { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 0; background: #000; color: #fff; border-radius: var(--r-3); overflow: hidden; text-decoration: none !important; }
.seguir__img { background: #000 center / cover no-repeat; position: relative; min-height: 170px; aspect-ratio: 16 / 9; }
.seguir__img .cod { font-family: var(--font-titulo); font-weight: 800; font-size: 4.5rem; letter-spacing: -0.04em; color: var(--acento); line-height: 1; }
.seguir__img .play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 6px rgba(0,0,0,.35); width: 48px; height: 48px; border-radius: 50%; background: var(--acento); color: #000; display: grid; place-items: center; }
.seguir__txt { padding: 24px 28px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.seguir__txt h2 { color: #fff; font-size: 1.5rem; line-height: 1.08; }
.seguir__txt .t-2 { color: #b9bfc7; }
.seguir__txt .rotulo { color: var(--acento); font-family: var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }
.seguir:hover .play { background: var(--acento-hover); }
@media (max-width: 720px) { .seguir { grid-template-columns: 1fr; } .seguir__img { min-height: 0; } .seguir__txt { padding: 18px 20px 22px; } .seguir__txt h2 { font-size: 1.25rem; } }
.cifra { font-family: var(--font-titulo); font-weight: 800; font-size: 2.5rem; line-height: .9; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.cifra small { font-size: 1rem; color: var(--tinta-3); font-weight: 600; letter-spacing: 0; }
.modulos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); }
@media (max-width: 720px) { .modulos { grid-template-columns: 1fr; } }
.modulo-t { display: flex; flex-direction: column; gap: 10px; }
.modulo-t .barra { height: 5px; }

/* ---------- Programa ---------- */
.mod-cabeza { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.mod-cabeza .t-mono { color: var(--acento-tinta); font-size: .8125rem; letter-spacing: .1em; }
.lista .leccion-fila { display: flex; align-items: center; gap: 14px; padding: 14px 18px; }
.leccion-fila b { font-weight: 600; }
.leccion-fila .cod { font-family: var(--font-mono); font-size: .8125rem; color: var(--tinta-3); width: 44px; flex: none; }
.leccion-fila .dur { font-family: var(--font-mono); font-size: .8125rem; color: var(--tinta-3); flex: none; }
.leccion-fila .mini { width: 64px; flex: none; }
@media (max-width: 720px) { .leccion-fila .cod { display: none; } .leccion-fila .mini { display: none; } .lista .leccion-fila { padding: 14px; } }

/* ---------- Lección ---------- */
.video-caja { position: relative; background: #000; border-radius: var(--r-3); overflow: hidden; aspect-ratio: 16 / 9; }
.video-caja video { width: 100%; height: 100%; display: block; background: #000; }
.leccion-cab .t-mono { color: var(--acento-tinta); letter-spacing: .1em; font-size: .8125rem; }
.leccion-cab h1 { font-size: clamp(1.625rem, 3vw, 2.25rem); line-height: 1.02; letter-spacing: -0.025em; }
.estado-vista { display: inline-flex; align-items: center; gap: 8px; font-size: .9375rem; color: var(--tinta-2); }
.estado-vista--ok { color: var(--ok); font-weight: 600; }
.bloque { display: flex; flex-direction: column; gap: 14px; }
.bloque > h2 { font-size: 1.25rem; line-height: 1.15; }
.prosa p { margin-bottom: 12px; color: var(--tinta-2); }
.prosa ul { margin: 0 0 12px; padding-left: 20px; color: var(--tinta-2); }
.prosa b { color: var(--tinta); }
.capitulos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.capitulos li { display: flex; gap: 10px; color: var(--tinta-2); font-size: 1rem; line-height: 1.4; }
.capitulos li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--acento); flex: none; margin-top: 8px; }
@media (max-width: 720px) { .capitulos { grid-template-columns: 1fr; } }
.prompt { border: 1px solid var(--hilo); border-radius: var(--r-2); background: var(--superficie); overflow: hidden; }
.prompt__cab { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 16px; border-bottom: 1px solid var(--hilo); background: var(--superficie-2); }
.prompt__cab b { font-size: .9375rem; flex: 1; min-width: 0; }
.prompt pre { margin: 0; padding: 14px 16px; white-space: pre-wrap; word-break: break-word; font-family: var(--font-texto); font-size: .9375rem; line-height: 1.6; color: var(--tinta); }
.reto { background: #000; color: #fff; border-radius: var(--r-3); padding: 26px 28px; display: flex; flex-direction: column; gap: 14px; }
.reto h2 { color: #fff; }
.reto .rotulo { color: var(--acento); font-family: var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }
.reto p { color: #d5d9de; font-size: 1.0625rem; }
.reto textarea.entrada { background: #14181d; border-color: #343b45; color: #e8eaed; min-height: 150px; }
.reto textarea.entrada:focus { border-color: var(--acento); box-shadow: 0 0 0 3px rgba(0,174,240,.25); }
.reto .t-3 { color: #8a929b; }
.reto .btn--secundario { background: transparent; color: #fff; border-color: #343b45; }
.comentario-profe { background: #0b2633; border-radius: var(--r-2); padding: 14px 16px; color: #e8eaed; }
.comentario-profe b { color: var(--acento); }
@media (max-width: 720px) { .reto { padding: 20px 18px; border-radius: var(--r-2); } }
.recordar { border-left: 3px solid var(--acento); padding: 4px 0 4px 18px; display: flex; flex-direction: column; gap: 6px; color: var(--tinta-2); }
.recordar b { color: var(--tinta); }
.archivo { display: flex; align-items: center; gap: 14px; padding: 14px 16px; color: inherit; text-decoration: none !important; }
.archivo:hover { background: var(--superficie-2); }
.archivo__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--acento-suave); color: var(--acento-tinta); display: grid; place-items: center; flex: none; }
.archivo__ico svg { width: 20px; height: 20px; }
.archivo b { font-weight: 600; display: block; }
.archivo .fila-meta { font-size: .875rem; }
.pasos-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); }
.pasos-nav a { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid var(--hilo); border-radius: var(--r-2); color: inherit; text-decoration: none !important; background: var(--superficie); }
.pasos-nav a:hover { border-color: var(--hilo-fuerte); }
.pasos-nav a small { color: var(--tinta-3); font-family: var(--font-mono); font-size: .75rem !important; letter-spacing: .08em; text-transform: uppercase; }
.pasos-nav .sig { text-align: right; grid-column: 2; }
@media (max-width: 720px) { .pasos-nav { grid-template-columns: 1fr; } .pasos-nav .sig { grid-column: 1; } }
.nota-estado { font-size: .8125rem; color: var(--tinta-3); min-height: 1.2em; }
.lado-leccion { position: sticky; top: 16px; }
@media (max-width: 1100px) { .lado-leccion { position: static; } }

/* ---------- Tarjeta ---------- */
.tarjeta-plan { border: 2px solid var(--tinta); border-radius: var(--r-3); padding: 26px; background: var(--superficie); }
.tarjeta-plan .t-mono { letter-spacing: .1em; font-size: .8125rem; color: var(--acento-tinta); }
.metas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--hilo); border-radius: var(--r-3); background: var(--superficie); }
.metas > div { padding: 18px 20px; border-left: 1px solid var(--hilo); }
.metas > div:first-child { border-left: 0; }
@media (max-width: 720px) { .metas > div { padding: 14px 12px; } .metas .cifra { font-size: 1.75rem; } .tarjeta-plan { padding: 18px; } }
.puntos3 { display: flex; gap: 8px; }
.puntos3 i { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--hilo-fuerte); }
.puntos3 i.si { background: var(--acento); border-color: var(--acento); }
.plan-grilla { align-items: start; gap: var(--e-6); }
.dos-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); }
@media (max-width: 720px) { .dos-col { grid-template-columns: 1fr; } }

/* ---------- Admin ---------- */
.copiar-enlace { display: flex; gap: 8px; align-items: center; }
.copiar-enlace input { font-family: var(--font-mono); font-size: .8125rem; }
.mini-barra { display: inline-block; width: 80px; height: 6px; border-radius: 99px; background: var(--hilo); overflow: hidden; vertical-align: middle; margin-right: 8px; }
.mini-barra i { display: block; height: 100%; background: var(--acento); }
.reto-item { border: 1px solid var(--hilo); border-radius: var(--r-2); background: var(--superficie); padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.reto-item blockquote { margin: 0; white-space: pre-wrap; color: var(--tinta); font-size: .9375rem; background: var(--superficie-2); border-radius: var(--r-1); padding: 12px 14px; max-height: 280px; overflow: auto; }
.tabla td .t-mono, .tabla td small { color: var(--tinta-3); }
@media (max-width: 720px) {
  .tabla--apila thead { display: none; }
  .tabla--apila tr { display: block; border-bottom: 1px solid var(--hilo); padding: 8px 0; }
  .tabla--apila td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 6px 16px; }
  .tabla--apila td::before { content: attr(data-rotulo); color: var(--tinta-3); font-size: .8125rem; }
}
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .reto, :root:not([data-tema="claro"]) .seguir { border: 1px solid var(--hilo-fuerte); } }
:root[data-tema="oscuro"] .reto, :root[data-tema="oscuro"] .seguir { border: 1px solid var(--hilo-fuerte); }
.pista-movil { margin: 0; } .pista-movil svg { display: inline-block; vertical-align: -3px; margin-right: 4px; }

/* ---------- Contrata tus cuentas ---------- */
.planes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-5); align-items: start; }
@media (max-width: 900px) { .planes { grid-template-columns: 1fr; } }
.plan { background: var(--superficie); border: 1px solid var(--hilo); border-radius: var(--r-3); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.plan--destacado { border: 2px solid var(--acento); }
.plan__cab { display: flex; gap: 14px; align-items: center; }
.plan__cab h2 { font-size: 1.375rem; line-height: 1.1; margin-top: 2px; }
.plan__marca { width: 48px; height: 48px; border-radius: 16px; background: var(--acento); color: #000; display: grid; place-items: center; flex: none; }
.plan__marca--negro { background: #000; color: var(--acento); }
.plan__precio { margin: 0; font-size: 1rem; color: var(--tinta-2); }
.plan__precio b { font-family: var(--font-titulo); font-size: 1.75rem; color: var(--tinta); letter-spacing: -0.02em; margin-right: 4px; }
.incluye { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.incluye li { display: flex; gap: 10px; align-items: flex-start; color: var(--tinta-2); line-height: 1.45; }
.incluye li svg { color: var(--ok); flex: none; margin-top: 3px; }
.incluye b { color: var(--tinta); font-weight: 600; }
.codigo-ref { background: var(--acento-suave); border-radius: var(--r-2); padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.codigo-ref__fila { display: flex; gap: 10px; align-items: center; }
.codigo-ref code { font-family: var(--font-mono); font-size: 1.0625rem; font-weight: 500; letter-spacing: .06em; flex: 1; color: var(--tinta); }
@media (max-width: 720px) { .plan { padding: 20px; } }

/* ---------- Ronda de diseño (QA 1-oct) ---------- */
.al [id] { scroll-margin-top: 80px; }
.al .btn--chico { min-height: 42px; font-size: .9375rem; }
.al__pestanas a { font-size: 13px !important; }
.avatar.a2 { background: #000; color: #fff; }
.video-caja { position: relative; }
.video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: 50%; border: 0; background: var(--acento); color: #000; display: grid; place-items: center; cursor: pointer; box-shadow: 0 0 0 8px rgba(0,0,0,.35); }
.video-play svg { width: 32px; height: 32px; fill: #000; margin-left: 4px; }
.video-play:hover { background: var(--acento-hover); }
.estado-fila #btn-siguiente { min-height: 46px; }
.archivos-reto { display: flex; flex-direction: column; gap: 6px; }
.archivo-reto { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: var(--r-2); background: #14181d; color: #e8eaed !important; text-decoration: none !important; border: 1px solid #252b33; }
.archivo-reto:hover { border-color: var(--acento); }
.archivo-reto svg { color: var(--acento); flex: none; }
.archivo-reto .t-mono { font-size: .75rem; color: #8a929b; }
.reto .rotulo { font-size: .8125rem; }
.reto-editar summary, .mas-prompts summary { cursor: pointer; font-weight: 600; font-size: .9375rem; display: inline-flex; align-items: center; gap: 6px; padding: 8px 0; list-style: none; }
.reto-editar summary::-webkit-details-marker, .mas-prompts summary::-webkit-details-marker { display: none; }
.reto .reto-editar summary { color: #c9ced4; }
.mas-prompts summary { color: var(--acento-tinta); }
.mas-prompts[open] summary svg { transform: rotate(180deg); }
.mas-prompts > .pila-3 { margin-top: 8px; }
.mod-fila { display: flex; align-items: center; gap: 16px; padding: 16px 18px !important; }
.mod-fila b { display: block; font-weight: 600; }
.mod-fila__barra { width: 32%; flex: none; }
.avance3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.avance3 > div { display: flex; flex-direction: column; gap: 6px; }
.avance3 .cifra { font-size: 2rem; }
.avance3 span:not(.cifra) { font-size: .875rem; color: var(--tinta-2); line-height: 1.25; }
.plan-dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
.plan-dl dt { font-size: .8125rem; color: var(--tinta-3); }
.plan-dl dd { margin: 2px 0 0; font-weight: 600; }
.tarjeta-plan .reto-editar summary { color: var(--acento-tinta); }
.kpi--link { color: inherit !important; text-decoration: none !important; }
.kpi--link .t-chico { color: var(--acento-tinta); font-weight: 600; }
.kpi--link:hover { background: var(--superficie-2); }
@media (max-width: 720px) {
  .pasos-nav .sig { text-align: left; }
  .estado-fila { flex-direction: column; align-items: stretch; }
  .estado-fila > .fila { justify-content: space-between; }
  .estado-fila #btn-siguiente { width: 100%; order: 3; }
  .mod-fila__barra { width: 28%; }
  .plan-dl { grid-template-columns: 1fr; }
  .video-play { width: 60px; height: 60px; }
}
/* En oscuro, el reto pasa a celeste con texto negro (un protagonista por pantalla) */
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .reto { background: var(--acento); color: #000; border: 0; } }
:root[data-tema="oscuro"] .reto { background: var(--acento); color: #000; border: 0; }
:root[data-tema="oscuro"] .reto h2, :root[data-tema="oscuro"] .reto p, :root[data-tema="oscuro"] .reto .rotulo, :root[data-tema="oscuro"] .reto .reto-editar summary { color: #000; }
:root[data-tema="oscuro"] .reto .btn--primario { background: #000; color: #fff; }
:root[data-tema="oscuro"] .reto textarea.entrada { background: #fff; color: #000; border-color: #000; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .reto h2, :root:not([data-tema="claro"]) .reto p, :root:not([data-tema="claro"]) .reto .rotulo, :root:not([data-tema="claro"]) .reto .reto-editar summary { color: #000; }
  :root:not([data-tema="claro"]) .reto .btn--primario { background: #000; color: #fff; }
  :root:not([data-tema="claro"]) .reto textarea.entrada { background: #fff; color: #000; border-color: #000; }
}
.leccion, .leccion-cuerpo, .prosa, .recordar, .reto, .prompt { min-width: 0; overflow-wrap: break-word; }
.prosa .t-mono, .recordar .t-mono, .prompt pre { overflow-wrap: anywhere; }

/* ---------- Sesiones en vivo ---------- */
.encuentro::before { display: none; }
.encuentro__dia { color: var(--acento-tinta); }
.encuentro--vivo { border: 2px solid var(--acento); }
.encuentro .btn--fantasma.btn--chico { min-height: 42px; }
@media (max-width: 720px) {
  .encuentro { grid-template-columns: 1fr; gap: 14px; padding: 18px; }
  .encuentro__hora { border-right: 0; padding-right: 0; display: flex; align-items: baseline; gap: 12px; }
  .encuentro .fila.envuelve > .btn { width: 100%; }
}

/* ---------- Páginas públicas: catálogo, ficha, condiciones ---------- */
body.pub-mm { background: var(--superficie); }
.pubm-in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.pubm-cab { border-bottom: 1px solid var(--hilo); background: var(--superficie); position: sticky; top: 0; z-index: 20; }
.pubm-cab .pubm-in { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 16px; }
.pubm-cab .marca-mm { flex-direction: row; align-items: center; gap: 10px; }
.pubm-nav { display: flex; align-items: center; gap: 8px; }
.pubm-nav > a:not(.btn) { color: var(--tinta-2); font-weight: 600; padding: 8px 12px; }
.pubm-hero { background: #000; color: #fff; padding: 72px 0 64px; }
.pubm-hero h1 { color: #fff; font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: .92; letter-spacing: -0.035em; max-width: 18ch; }
.pubm-rotulo { font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--acento); margin: 0; }
.pubm-bajada { color: #c9ced4; font-size: 1.125rem; max-width: 56ch; margin: 0; }
.pubm-datos span { display: inline-flex; align-items: center; gap: 6px; color: #c9ced4; font-size: .9375rem; }
.pubm-datos svg { color: var(--acento); }
.pubm-sec { padding-top: 56px; padding-bottom: 72px; }
.cursos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; }
.curso-card { display: flex; flex-direction: column; border: 1px solid var(--hilo); border-radius: var(--r-3); overflow: hidden; color: inherit; text-decoration: none !important; background: var(--superficie); transition: border-color var(--dur), box-shadow var(--dur); }
.curso-card:hover { border-color: var(--hilo-fuerte); box-shadow: var(--sombra-2); }
.curso-card__img { aspect-ratio: 16 / 9; background: #000 center / cover no-repeat; }
.curso-card__txt { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.curso-card__txt h2 { font-size: 1.375rem; line-height: 1.08; }
.curso-card__txt .fila { margin-top: auto; padding-top: 8px; }
.precio-chico { font-family: var(--font-titulo); font-size: 1.25rem; }
.ficha-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; }
.compra-caja { background: var(--superficie); color: var(--tinta); border-radius: var(--r-3); padding: 28px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--sombra-3); }
.precio-grande { font-family: var(--font-titulo); font-weight: 800; font-size: 2.75rem; letter-spacing: -0.03em; line-height: 1; }
.ficha-cuerpo { max-width: 760px; margin-left: max(24px, calc((100vw - 1120px) / 2 + 24px)); }
.temario { border: 1px solid var(--hilo); border-radius: var(--r-2); padding: 0 18px; background: var(--superficie); }
.temario + .temario { margin-top: 8px; }
.temario summary { display: flex; align-items: center; gap: 12px; padding: 16px 0; cursor: pointer; list-style: none; }
.temario summary::-webkit-details-marker { display: none; }
.temario summary b { display: block; font-weight: 600; }
.temario[open] summary svg { transform: rotate(180deg); }
.temario > p { margin: -4px 0 12px; }
.temario__lista { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; }
.temario__lista li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--hilo); font-size: .9375rem; color: var(--tinta-2); }
.temario__lista .t-mono { font-size: .8125rem; }
.profe { border-left: 0; }
.pubm-pie { border-top: 1px solid var(--hilo); padding: 40px 0 56px; background: var(--lienzo); }
.pubm-pie .pubm-in { display: flex; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.pubm-pie a { color: var(--tinta-2); }
@media (max-width: 900px) {
  .ficha-grid { grid-template-columns: 1fr; gap: 28px; }
  .ficha-cuerpo { margin-left: auto; }
  .pubm-hero { padding: 40px 0 36px; }
  .compra-caja { box-shadow: none; }
  .pubm-in { padding: 0 16px; }
  .pubm-sec { padding-top: 36px; }
}

/* Ficha: la caja de compra queda fija a la derecha y sube sobre el hero */
.ficha-hero-txt { max-width: 640px; }
.pubm-hero--ficha { padding-bottom: 72px; }
.ficha-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 56px; align-items: start; padding-top: 48px; padding-bottom: 80px; }
.ficha-layout .compra-caja { grid-column: 2; grid-row: 1; position: sticky; top: 96px; margin-top: -300px; border: 1px solid var(--hilo); }
.ficha-layout .ficha-main { grid-column: 1; grid-row: 1; min-width: 0; }
@media (max-width: 900px) {
  .ficha-layout { grid-template-columns: 1fr; gap: 32px; padding-top: 0; }
  .ficha-layout .compra-caja { grid-column: 1; grid-row: 1; position: static; margin-top: -24px; }
  .ficha-layout .ficha-main { grid-row: 2; }
  .pubm-hero--ficha { padding-bottom: 48px; }
  .pubm-cab .marca-mm__sub, .pubm-nav > a:not(.btn) { display: none; }
  .pubm-cab .marca-mm__logo { width: 150px; height: 13px; }
}

/* ---------- Certificado ---------- */
.cert-marco { container-type: inline-size; border: 1px solid var(--hilo); border-radius: var(--r-2); overflow: hidden; box-shadow: var(--sombra-2); }
.cert { display: grid; grid-template-columns: 28% 1fr; aspect-ratio: 297 / 210; background: #fff; color: #1a1a1a; font-size: 1cqw; }
.cert__lado { background: #000; display: flex; flex-direction: column; justify-content: flex-start; gap: 2.4em; padding: 6em 3.6em; position: relative; overflow: hidden; }
.cert__lado::after { content: ""; position: absolute; width: 22em; height: 22em; border-radius: 50%; background: #00aef0; right: -8em; bottom: -8em; }
.cert__logo { display: block; width: 100%; aspect-ratio: 11.76 / 1; background: url(/assets/morgansmedia_negativo.svg) left center / contain no-repeat; }
.cert__sello { font-family: var(--font-mono); font-size: 1.15em; letter-spacing: .14em; text-transform: uppercase; color: #00aef0; position: relative; z-index: 1; }
.cert__cuerpo { padding: 6em 6em 4.6em; display: flex; flex-direction: column; }
.cert__rotulo { font-family: var(--font-mono); font-size: 1.15em; letter-spacing: .16em; text-transform: uppercase; color: #0077a8; margin: 0 0 3em; }
.cert__texto { font-size: 1.6em; color: #444a52; margin: 0 0 .6em; }
.cert__nombre { font-family: var(--font-titulo); font-weight: 800; font-size: 5.4em; line-height: .95; letter-spacing: -0.03em; color: #000; margin: 0 0 .45em; }
.cert__curso { font-family: var(--font-titulo); font-weight: 700; font-size: 2.6em; line-height: 1.05; color: #000; margin: 0 0 .6em; }
.cert__detalle { font-size: 1.35em; color: #666; margin: 0; }
.cert__pie { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 2em; border-top: .12em solid #e0e0e0; padding-top: 1.8em; }
.cert__firma { font-family: var(--font-titulo); font-weight: 700; font-size: 1.7em; margin: 0; color: #000; }
.cert__cargo { font-size: 1.2em; color: #666; margin: .3em 0 0; }
.cert__cod { text-align: right; font-family: var(--font-mono); font-size: 1.05em; color: #666; }
.cert__cod p { margin: 0 0 .3em; }
.cert-aviso { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-radius: var(--r-2); background: var(--acento); color: #000 !important; text-decoration: none !important; }
.cert-aviso b { font-weight: 700; }
body.cert-impresion { margin: 0; }
@media print {
  body.cert-impresion .cert { width: 297mm; height: 210mm; aspect-ratio: auto; font-size: 2.97mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.lista > li.pila-2 { flex-direction: column; align-items: stretch; }
@container (max-width: 640px) {
  .cert { grid-template-columns: 1fr; aspect-ratio: auto; font-size: 2.6cqw; }
  .cert__lado { flex-direction: row; justify-content: space-between; align-items: center; padding: 4.5em 5em; }
  .cert__lado::after { width: 12em; height: 12em; right: -5em; bottom: -6em; }
  .cert__logo { width: 55%; }
  .cert__cuerpo { padding: 5em 5em 4.5em; }
  .cert__pie { flex-direction: column; align-items: flex-start; }
  .cert__cod { text-align: left; }
}

/* ---------- Comunidad ---------- */
.anuncio { border: 2px solid var(--acento); border-radius: var(--r-3); padding: 20px 22px; background: var(--superficie); display: flex; flex-direction: column; gap: 8px; }
.anuncio .fila-2 svg { color: var(--acento-tinta); }
.pregunta { background: var(--superficie); border: 1px solid var(--hilo); border-radius: var(--r-2); padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; }
.pregunta__txt p { color: var(--tinta); font-size: 1.0625rem; }
.respuesta { border-left: 2px solid var(--hilo); padding: 4px 0 4px 14px; display: flex; flex-direction: column; gap: 4px; }
.respuesta--oficial { border-left-color: var(--acento); background: var(--acento-suave); border-radius: 0 var(--r-1) var(--r-1) 0; padding: 10px 14px; }
.respuesta .prosa p { margin-bottom: 6px; }
.responder { display: flex; gap: 8px; align-items: flex-start; }
.responder textarea { min-height: 64px; resize: vertical; }
.pregs-mini { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.pregunta .fin { margin-left: auto; }
@media (max-width: 720px) { .responder { flex-direction: column; align-items: stretch; } }

/* ---------- Editor de cursos ---------- */
.ed-lecciones { display: flex; flex-direction: column; border: 1px solid var(--hilo); border-radius: var(--r-2); overflow: hidden; }
.ed-leccion { display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 14px; border-top: 1px solid var(--hilo); }
.ed-leccion:first-child { border-top: 0; }
.ed-leccion a { color: inherit; }
.ed-leccion .t-mono { width: 44px; flex: none; font-size: .8125rem; }
.ed-mod-cab .t-mono { font-size: .75rem; letter-spacing: .1em; }
.ed-prompt { border: 1px dashed var(--hilo-fuerte); border-radius: var(--r-2); padding: 12px; }
.video-caja iframe { width: 100%; height: 100%; border: 0; display: block; }
.subida__barra { max-width: 420px; height: 8px; }
.ed-guardar { position: sticky; bottom: 0; background: var(--lienzo); padding: 12px 0; z-index: 5; }
@media (max-width: 900px) { .ed-guardar { bottom: 64px; } .ed-leccion .chip { display: none; } }

.subida__error { color: var(--riesgo); font-weight: 600; }
.formato { display: flex; gap: 6px; margin-bottom: 6px; }
.formato button { border: 1px solid var(--hilo-fuerte); background: var(--superficie); border-radius: var(--r-1); padding: 6px 12px; font-size: .875rem; cursor: pointer; color: var(--tinta); }
.formato button:hover { border-color: var(--acento); }
.archivos-claros .archivo-reto { background: var(--superficie); color: var(--tinta) !important; border-color: var(--hilo); }
.archivos-claros .archivo-reto .t-mono { color: var(--tinta-3); }
@media (max-width: 720px) { .ed-leccion { flex-wrap: wrap; } .ed-leccion a.crece { flex-basis: calc(100% - 60px); } }
.video-caja { width: 100%; }
