/* ===========================
   DETALLE DE CURSO
=========================== */
.curso-page{
    min-height:100vh;
    padding:130px 0 100px;
    background:var(--bg-primary);
}

.curso-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    text-align:center;
    color:var(--text-muted);
    padding:120px 20px;
}

.curso-state i{
    font-size:32px;
    color:var(--accent-secondary);
}

.curso-back{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--text-muted);
    text-decoration:none;
    font-size:14px;
    margin-bottom:30px;
    transition:var(--transition-fast);
}

.curso-back:hover{
    color:var(--accent-secondary);
}

/* A diferencia de .course-category (cards.css), esta no es absolute:
   no hay miniatura debajo, es un badge normal dentro del flujo. */
.curso-category-badge{
    display:inline-block;
    background:var(--surface-3);
    color:var(--accent-tertiary);
    font-size:12px;
    font-weight:700;
    letter-spacing:.5px;
    text-transform:uppercase;
    padding:6px 14px;
    border-radius:50px;
}

.curso-layout{
    display:grid;
    grid-template-columns:1fr 360px;
    gap:40px;
    align-items:start;
}

/* ---------- Contenido ---------- */
.curso-main h1{
    font-size:clamp(1.75rem, 1.4rem + 1.7vw, 2.75rem);
    font-weight:800;
    color:var(--text-primary);
    margin:14px 0 12px;
}

.curso-meta{
    color:var(--text-muted);
    font-size:15px;
    margin-bottom:24px;
}

.curso-descripcion-corta{
    font-size:18px;
    line-height:1.7;
    color:var(--text-primary);
    margin-bottom:36px;
}

.curso-main h2{
    font-size:22px;
    font-weight:700;
    color:var(--text-primary);
    margin-bottom:16px;
}

.curso-descripcion-larga p{
    color:var(--text-muted);
    font-size:16px;
    line-height:1.8;
    margin-bottom:18px;
}

/* ---------- Temario (contenido del curso) ---------- */
.curso-temario{
    margin-top:40px;
}

.curso-temario-resumen{
    color:var(--text-muted);
    font-size:14px;
    margin-bottom:18px;
}

.temario-lista{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.temario-modulo{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 20px;
    background:var(--surface-1);
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-md);
}

.temario-modulo-titulo{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--text-primary);
    font-size:15px;
    font-weight:700;
}

.temario-modulo-num{
    flex-shrink:0;
    background:var(--surface-3);
    color:var(--accent-tertiary);
    font-size:11px;
    font-weight:700;
    letter-spacing:.3px;
    text-transform:uppercase;
    padding:4px 10px;
    border-radius:50px;
}

.temario-modulo-meta{
    flex-shrink:0;
    color:var(--text-muted);
    font-size:13px;
}

/* ---------- Tarjeta de compra ---------- */
.curso-buy-card{
    position:sticky;
    top:110px;
    background:var(--surface-1);
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-lg);
    padding:32px 28px;
}

.curso-promo-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
    color:var(--text-primary);
    font-size:12px;
    font-weight:700;
    letter-spacing:.3px;
    text-transform:uppercase;
    padding:7px 14px;
    border-radius:50px;
    margin-bottom:14px;
    box-shadow:0 0 20px var(--glow-primary);
}

.curso-price-original{
    font-size:15px;
    color:var(--text-muted);
    text-decoration:line-through;
    margin-bottom:2px;
}

.curso-price{
    font-size:32px;
    font-weight:800;
    color:var(--accent-secondary);
}

.curso-promo-nota{
    font-size:13px;
    color:var(--text-muted);
    margin-top:8px;
}

.curso-cupon-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    margin-top:16px;
    background:none;
    border:none;
    color:var(--accent-secondary);
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    padding:0;
}

.curso-cupon-toggle:hover{
    color:var(--accent-tertiary);
}

.curso-cupon-box{
    margin-top:12px;
}

.curso-cupon-input-row{
    display:flex;
    gap:8px;
}

.curso-cupon-input-row input{
    flex:1;
    padding:10px 12px;
    background:var(--surface-3);
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-sm);
    color:var(--text-primary);
    font-size:13px;
}

.curso-cupon-input-row input:focus{
    outline:none;
    border-color:var(--accent-secondary);
}

.curso-cupon-btn{
    padding:10px 16px;
    background:var(--surface-4);
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-sm);
    color:var(--text-primary);
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    white-space:nowrap;
    transition:var(--transition-fast);
}

.curso-cupon-btn:hover:not(:disabled){
    border-color:var(--border-accent);
    background:var(--accent-primary);
}

.curso-cupon-btn:disabled{
    opacity:.6;
    cursor:not-allowed;
}

.curso-cupon-msg{
    margin-top:10px;
    font-size:13px;
    color:#5ee2ab;
}

.curso-cupon-msg.error{
    color:#ff9f9f;
}

.curso-buy-btn{
    width:100%;
    margin-top:22px;
    text-align:center;
    border:none;
}

/* Botón que reemplaza a "Comprar curso" cuando el usuario ya tiene una
   inscripción activa (ver curso.js: marcarCursoComoAdquirido) — mismo
   verde de éxito usado en el resto del sitio (admin-badge.published,
   admin-msg.success), para que se lea de inmediato como "esto ya es
   tuyo", no como una segunda oportunidad de compra. */
.curso-owned-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:#2dce89;
    color:#fff;
}

.curso-owned-btn:hover{
    background:#26b57a;
    transform:translateY(-4px);
}

.curso-buy-msg{
    margin-top:16px;
    padding:14px 16px;
    border-radius:var(--radius-sm);
    background:rgba(45,206,137,.12);
    border:1px solid rgba(45,206,137,.35);
    color:#5ee2ab;
    font-size:14px;
    line-height:1.6;
}

.curso-buy-msg.error{
    background:rgba(255,107,107,.12);
    border-color:rgba(255,107,107,.35);
    color:#ff9f9f;
}

.curso-buy-perks{
    list-style:none;
    margin-top:26px;
    padding-top:22px;
    border-top:1px solid var(--border-subtle);
}

.curso-buy-perks li{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--text-muted);
    font-size:14px;
    margin-bottom:14px;
}

.curso-buy-perks li:last-child{
    margin-bottom:0;
}

.curso-buy-perks i{
    color:var(--accent-secondary);
    width:18px;
    text-align:center;
}

/* ---------- Reseñas ---------- */
.curso-resenas{
    margin-top:60px;
    padding-top:40px;
    border-top:1px solid var(--border-subtle);
    max-width:820px;
}

.curso-resenas h2{
    font-size:22px;
    font-weight:800;
    color:var(--text-primary);
    margin-bottom:20px;
}

.resenas-resumen{
    display:flex;
    align-items:center;
    gap:18px;
    margin-bottom:30px;
}

.resenas-promedio-num{
    font-size:38px;
    font-weight:800;
    color:var(--text-primary);
}

.resenas-estrellas{
    color:#ffb020;
    font-size:16px;
    letter-spacing:2px;
}

.resenas-total{
    display:block;
    color:var(--text-muted);
    font-size:13px;
    margin-top:2px;
}

.resenas-vacio{
    color:var(--text-muted);
    font-size:14px;
    padding:20px 0;
}

/* ---------- Formulario de reseña ---------- */
.resena-form-box{
    background:var(--surface-1);
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-lg);
    padding:24px 26px;
    margin-bottom:30px;
}

.resena-form-box h3{
    font-size:15px;
    font-weight:700;
    color:var(--text-primary);
    margin-bottom:14px;
}

.resena-estrellas-input{
    font-size:24px;
    color:var(--text-muted);
    margin-bottom:14px;
    cursor:pointer;
}

.resena-estrellas-input i{
    margin-right:4px;
    transition:var(--transition-fast);
}

.resena-estrellas-input i.activa{
    color:#ffb020;
}

.resena-form-box textarea{
    width:100%;
    min-height:90px;
    padding:12px 14px;
    background:var(--surface-3);
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-sm);
    color:var(--text-primary);
    font-size:14px;
    font-family:inherit;
    resize:vertical;
    margin-bottom:14px;
}

.resena-form-box textarea:focus{
    outline:none;
    border-color:var(--accent-secondary);
}

.resena-form-actions{
    display:flex;
    gap:10px;
}

.resena-mensaje{
    margin-top:12px;
    font-size:13px;
    color:#5ee2ab;
}

.resena-mensaje.error{
    color:#ff9f9f;
}

/* ---------- Lista de reseñas ---------- */
.resenas-lista{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.resena-card{
    padding-bottom:20px;
    border-bottom:1px solid var(--border-subtle);
}

.resena-card:last-child{
    border-bottom:none;
}

.resena-card-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:4px;
}

.resena-card-header strong{
    color:var(--text-primary);
    font-size:14px;
}

.resena-card-estrellas{
    color:#ffb020;
    font-size:13px;
}

.resena-card-fecha{
    display:block;
    color:var(--text-muted);
    font-size:12px;
    margin-bottom:8px;
}

.resena-card-comentario{
    color:var(--text-muted);
    font-size:14px;
    line-height:1.7;
}
