/* ============================================================
   Gestor Académico WP — Estilos v2.0
   Diseño inspirado en tarjetas CAPIT
   ============================================================ */

:root {
    --ga-primary:   #003087;
    --ga-accent:    #e31837;
    --ga-gray:      #f4f7fc;
    --ga-text:      #1a1a2e;
    --ga-muted:     #6c757d;
    --ga-radius:    12px;
    --ga-shadow:    0 4px 20px rgba(0,0,0,.10);
    --ga-shadow-h:  0 8px 32px rgba(0,0,0,.18);
}

/* ── Contenedor ─────────────────────────────────────────── */
.ga-wrap { margin: 0; padding: 0; font-family: inherit; }

.ga-error {
    background: #fff3f3; border: 1px solid #f5c2c2;
    color: #991b1b; border-radius: var(--ga-radius);
    padding: 16px 20px; margin: 20px 0;
}
.ga-empty {
    text-align: center; color: var(--ga-muted);
    padding: 60px 20px; font-size: 1.05rem;
}

/* ── Grid ───────────────────────────────────────────────── */
.ga-grid {
    display: grid;
    gap: 28px;
    margin: 24px 0;
}
.ga-cols-1 { grid-template-columns: 1fr; }
.ga-cols-2 { grid-template-columns: repeat(2, 1fr); }
.ga-cols-3 { grid-template-columns: repeat(3, 1fr); }
.ga-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
    .ga-cols-4, .ga-cols-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .ga-cols-4, .ga-cols-3, .ga-cols-2 { grid-template-columns: 1fr; }
}

/* ── Tarjeta ────────────────────────────────────────────── */
.ga-card {
    background: #fff;
    border-radius: var(--ga-radius);
    overflow: hidden;
    box-shadow: var(--ga-shadow);
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
    border: 1px solid #e8edf5;
}
.ga-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--ga-shadow-h);
}

/* Imagen */
.ga-card-img {
    position: relative;
    height: 210px;
    background-size: cover;
    background-position: center;
    background-color: #dce6f7;
}

/* Badge de tipo sobre la imagen */
.ga-badge-tipo {
    position: absolute;
    bottom: 12px;
    left: 12px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 20px;
    color: #fff;
}
.ga-tipo-especialidad { background: #5c2d91; }
.ga-tipo-diplomado    { background: #003087; }
.ga-tipo-curso        { background: #0074c2; }

/* Cuerpo */
.ga-card-body {
    padding: 20px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Título */
.ga-card-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ga-primary);
    margin: 0 0 12px;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: .02em;
}

/* Barra de modalidad */
.ga-modality-bar {
    background: #dce6f7;
    color: var(--ga-primary);
    font-size: .75rem;
    font-weight: 600;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 6px 0;
    border-radius: 6px;
    margin-bottom: 14px;
}

/* Fechas */
.ga-dates {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .8rem;
    margin-bottom: 10px;
    flex-wrap: wrap;
}
.ga-date-start { color: var(--ga-accent); font-weight: 600; }
.ga-date-end   { color: #0060b0;          font-weight: 600; }
.ga-date-sep   { color: var(--ga-muted);  font-size: .7rem; }

/* Descripción */
.ga-desc {
    font-size: .85rem;
    color: var(--ga-muted);
    margin: 0 0 14px;
    line-height: 1.5;
    flex: 1;
}

/* Footer precio + botón */
.ga-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #eef0f5;
    gap: 10px;
}

.ga-price {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--ga-text);
}

/* ── Botones ────────────────────────────────────────────── */
.ga-btn {
    display: inline-block;
    background: var(--ga-primary);
    color: #fff !important;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 9px 18px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .2s ease, transform .15s ease;
    white-space: nowrap;
}
.ga-btn:hover {
    background: #001f5c;
    transform: translateY(-1px);
    color: #fff !important;
}
.ga-btn-disabled {
    background: #ccc;
    cursor: not-allowed;
}
.ga-btn-lg {
    width: 100%;
    text-align: center;
    padding: 14px 24px;
    font-size: .95rem;
    border-radius: 10px;
}

/* ── Volver ─────────────────────────────────────────────── */
.ga-back {
    display: inline-block;
    color: var(--ga-primary);
    font-size: .85rem;
    font-weight: 600;
    margin-bottom: 20px;
    text-decoration: none;
}
.ga-back:hover { text-decoration: underline; }

/* ── Formulario inscripción ─────────────────────────────── */
.ga-inscripcion-wrap { max-width: 680px; }

.ga-insc-header {
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 2px solid #eef0f5;
}
.ga-insc-header h2 {
    color: var(--ga-primary);
    font-size: 1.3rem;
    margin: 0 0 10px;
}
.ga-insc-meta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: .85rem;
    color: var(--ga-muted);
}
.ga-insc-meta strong { color: var(--ga-accent); font-size: 1.05rem; }

.ga-form-group {
    margin-bottom: 18px;
}
.ga-form-group label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ga-text);
    margin-bottom: 6px;
}
.ga-form-group input {
    width: 100%;
    border: 1.5px solid #d0d7e5;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: .9rem;
    color: var(--ga-text);
    transition: border-color .2s;
    box-sizing: border-box;
    background: #fff;
}
.ga-form-group input:focus {
    outline: none;
    border-color: var(--ga-primary);
    box-shadow: 0 0 0 3px rgba(0,48,135,.1);
}

.ga-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 520px) {
    .ga-form-row { grid-template-columns: 1fr; }
}

.ga-form-submit { margin-top: 24px; }

#ga-form-msg {
    padding: 10px 16px;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: .9rem;
    display: none;
}
#ga-form-msg.success { background:#e6f9ed; color:#166534; display:block; }
#ga-form-msg.error   { background:#fff0f0; color:#991b1b; display:block; }

/* Aviso de configuración (solo visible para admins) */
.ga-admin-notice {
    background: #fff8e1;
    border: 1px solid #f9c74f;
    border-left: 4px solid #f9c74f;
    border-radius: 6px;
    padding: 12px 16px;
    font-size: .88rem;
    color: #5a4a00;
    margin: 12px 0;
}
.ga-admin-notice.ga-error {
    background: #fff0f0;
    border-color: #e74c3c;
    color: #7b1515;
}
.ga-admin-notice a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
}
