/* Curso en video (curso.aterrizacampo.com). Sobre base.css: una columna en el celular, video y lista lado a lado en la
   computadora. Los subtítulos van en una franja debajo del video, nunca encima; en pantalla completa el video se encoge
   para dejarle su franja. */
.curso-barra { position: sticky; top: 0; z-index: 5; padding: 0 var(--margen); background: var(--vidrio); backdrop-filter: blur(8px); border-bottom: 1px solid var(--linea); }
.curso-barra .sesion { display: flex; align-items: center; gap: 10px; }
.curso-barra .sesion .quien { font-weight: 600; color: var(--titulo); max-width: 22ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.curso-main { max-width: 1180px; margin: 0 auto; padding: 28px var(--margen) 56px; }
.curso-portada h1 { font-size: var(--t-titulo); line-height: 1.08; letter-spacing: -.02em; margin: 6px 0 10px; max-width: 24ch; text-wrap: balance; }
.curso-intro { max-width: 64ch; font-size: var(--t-frase); margin: 0; }
.aviso-pago { margin: 0 0 18px; padding: 12px 16px; border-radius: 10px; background: var(--campo-fondo); color: var(--campo-texto); font-weight: 600; }
.aviso-pago.espera { background: var(--ambar-fondo); color: var(--ambar); }

.curso-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 36px; margin-top: 30px; align-items: start; }
.visor { min-width: 0; }
.visor h2 { font-size: 26px; margin: 22px 0 8px; }
.visor .resumen { max-width: 66ch; margin: 0; }
.visor .nota, .candado .nota { color: var(--texto-suave); font-size: var(--t-etiqueta); margin: 12px 0 0; }
.siguiente { margin: 18px 0 0; }
.error-video { margin: 14px 0 0; padding: 12px 16px; border-radius: 10px; background: var(--error-fondo); color: var(--error); font-weight: 600; }

/* Reproductor */
.caja-video { background: var(--suelo); }
.reproductor { position: relative; aspect-ratio: 16 / 9; background: var(--noche); border-radius: var(--radio); overflow: hidden; outline: none; }
.reproductor video { display: block; width: 100%; height: 100%; object-fit: contain; background: var(--noche); }
.jugar-grande { position: absolute; inset: 0; margin: auto; width: 88px; height: 88px; border: 0; border-radius: 50%; background: var(--vidrio); color: var(--marca); cursor: pointer; display: grid; place-items: center; box-shadow: var(--sombra); transition: transform .15s var(--curva); }
.jugar-grande svg { width: 42px; height: 42px; margin-left: 4px; }
.jugar-grande:hover { transform: scale(1.06); }
.reproductor.tocando .jugar-grande, .reproductor.sin-video .jugar-grande { display: none; }
.cargando { position: absolute; left: 0; right: 0; bottom: 64px; margin: 0; text-align: center; color: #fff; font-weight: 600; }
.controles { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 6px; padding: 10px 12px 8px; color: #fff;
             background: linear-gradient(to top, rgba(10, 17, 21, .82), rgba(10, 17, 21, 0)); opacity: 0; transition: opacity .2s; }
.reproductor:hover .controles, .reproductor:focus-within .controles, .reproductor.pausado .controles, .reproductor.activo .controles { opacity: 1; }
.reproductor.sin-video .controles { display: none; }
.controles button { width: 40px; height: 40px; flex-shrink: 0; border: 0; border-radius: 8px; background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; font: 700 14px var(--f-texto); }
.controles button svg { width: 24px; height: 24px; }
.controles button:hover, .controles button:focus-visible { background: rgba(255, 255, 255, .16); }
.controles button[aria-pressed="true"] { background: #fff; color: var(--marca); }
.reproductor.tocando .ico-jugar, .reproductor:not(.tocando) .ico-pausa { display: none; }
.tiempo { font: 600 14px var(--f-texto); font-variant-numeric: tabular-nums; white-space: nowrap; padding: 0 4px; }
.progreso { flex: 1; min-width: 60px; height: 32px; display: flex; align-items: center; cursor: pointer; outline: none; }
.progreso .pista { position: relative; width: 100%; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .32); }
.progreso:focus-visible .pista { outline: 2px solid #fff; outline-offset: 6px; }
.progreso .visto { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 3px; background: #fff; }
.progreso .perilla { position: absolute; top: 50%; left: 0; width: 14px; height: 14px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); box-shadow: 0 1px 3px rgba(0, 0, 0, .4); }
.velocidad { position: relative; }
.velocidad .menu { position: absolute; right: 0; bottom: 46px; min-width: 120px; padding: 6px; border: 1px solid var(--linea); border-radius: 10px; background: var(--superficie); color: var(--texto); box-shadow: var(--sombra); display: grid; }
.velocidad .menu button { width: 100%; height: 38px; justify-content: start; padding: 0 12px; color: var(--texto); font-weight: 600; display: flex; align-items: center; }
.velocidad .menu button:hover { background: var(--paso); }
.velocidad .menu button[aria-checked="true"] { background: var(--marca-tonal); color: var(--marca-tonal-texto); }

.subtitulo { margin-top: 10px; min-height: 68px; padding: 14px 20px; border: 1px solid var(--linea); border-radius: var(--radio); background: var(--superficie); display: grid; place-items: center; text-align: center; }
.subtitulo p { margin: 0; font: 600 clamp(18px, 2.1vw, 23px)/1.35 var(--f-texto); color: var(--tinta); text-wrap: balance; }

/* Pantalla completa: la caja entera; el video se encoge y los subtítulos conservan su franja. */
.caja-video:fullscreen { display: flex; flex-direction: column; background: var(--noche); padding: 0; }
.caja-video:fullscreen .reproductor { flex: 1; min-height: 0; aspect-ratio: auto; border-radius: 0; }
.caja-video:fullscreen .subtitulo { margin: 0; border: 0; border-radius: 0; background: var(--suelo); min-height: 84px; }
.caja-video:fullscreen .subtitulo[hidden] { display: none; }

/* Lección de pago */
.candado, .preparando { padding: 26px 28px; margin-top: 0; }
.candado h3, .preparando h3 { margin: 4px 0 12px; font-size: 24px; }
.candado ul { margin: 0 0 16px; padding-left: 20px; }
.candado li { margin: 4px 0; }
.candado .precio { font: 700 22px var(--f-titulo); color: var(--tinta); margin: 0 0 16px; }

/* Lista de lecciones */
.lista-titulo { font-size: 18px; margin: 0 0 10px; }
.lista ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.lista li button { width: 100%; display: grid; grid-template-columns: 36px 1fr 28px; align-items: center; gap: 12px; padding: 12px 14px; text-align: left; border: 1px solid var(--linea); border-radius: var(--radio); background: var(--superficie); color: var(--texto); cursor: pointer; font: inherit; transition: border-color .15s, background .15s; }
.lista li button:hover { border-color: var(--linea-fuerte); }
.lista li.actual button { border-color: var(--elegido-borde); background: var(--elegido-fondo); }
.lista .num { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--paso); color: var(--titulo); font: 700 16px var(--f-titulo); }
.lista li.actual .num { background: var(--marca); color: #fff; }
.lista li.terminada .num { background: var(--campo-fondo); color: var(--campo-texto); }
.lista .texto b { display: block; color: var(--tinta); line-height: 1.3; }
.lista .texto small { color: var(--texto-suave); font-size: var(--t-nota); }
.lista .marca { color: var(--texto-suave); display: grid; place-items: center; }
.lista .marca svg { width: 20px; height: 20px; }
.lista li.terminada .marca { color: var(--campo); }
.lista .oferta { margin-top: 16px; padding: 18px 20px; }
.lista .oferta p { margin: 0 0 12px; }

.curso-pie { border-top: 1px solid var(--linea); padding: 22px var(--margen); text-align: center; color: var(--texto-suave); }
.curso-pie p { margin: 0; }

/* Entrar */
.dialogo form { display: grid; gap: 10px; margin-top: 14px; }
.dialogo .error { margin: 0; min-height: 1.4em; color: var(--error); font-weight: 600; font-size: var(--t-etiqueta); }
.dialogo .error:empty { display: none; }
.dialogo .acciones { display: flex; justify-content: flex-end; gap: 8px; }
.dialogo .nota { color: var(--texto-suave); font-size: var(--t-etiqueta); margin: 14px 0 0; }

@media (max-width: 900px) {
  .curso-cuerpo { grid-template-columns: 1fr; gap: 26px; }
  .curso-barra nav { display: none; }
  .curso-main { padding-top: 18px; }
  .tiempo { display: none; }
}
@media (prefers-reduced-motion: reduce) { .jugar-grande, .controles { transition: none; } }
