/* Diseño de los formularios públicos de ~/Inscripciones (inscripción, entrevista informativa).
   Todo está acotado a .insc-page para no afectar a otras páginas (main.css es global).
   Los ids y clases que usa el JS (form-group, error-group, error-message, requerido, etc.) no cambian. */

.insc-page {
    --insc-border: #d3dad5;
    --insc-text: #25332a;
    --insc-muted: #6a7a70;
    --insc-error: #c62828;
    --insc-accent: var(--bs-primary, #395942);
    --insc-accent-soft: rgba(57, 89, 66, .09);
    background: #f2f4f2;
    padding: 28px 0 40px;
    color: var(--insc-text);
}

.insc-band {
    padding: 0 0 20px;
    margin: 0;
}

    .insc-band:last-child {
        padding-bottom: 0;
    }

/* ---------- Tarjetas de cada sección ---------- */
.insc-page section {
    background: #fff;
    border: 1px solid #e1e6e2;
    border-radius: 14px;
    padding: 28px 32px 32px;
    margin: 0 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 6px 18px rgba(0, 0, 0, .04);
}

/* Título de sección con el número del paso */
.insc-page section > h1 {
    position: relative;
    display: block;
    margin: 0 0 26px;
    padding: 4px 0 0 46px;
    min-height: 34px;
    border: 0;
    font-size: 19px;
    font-weight: 600;
    color: var(--insc-text);
    text-transform: lowercase;
}

    .insc-page section > h1::first-letter {
        text-transform: uppercase;
    }

    .insc-page section > h1::after {
        position: absolute;
        left: 0;
        top: 0;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        background: var(--insc-accent);
        color: #fff;
        font-size: 15px;
        font-weight: 600;
        line-height: 34px;
        text-align: center;
    }

/* El número del paso es un contador: cada sección con título suma uno, en el orden de la página */
.insc-page { counter-reset: paso; }
.insc-page section > h1::after {
    counter-increment: paso;
    content: counter(paso);
}

/* ---------- Bloques de alumno / responsable ---------- */
.insc-persona {
    margin: 0 0 8px !important;
    padding: 26px 0 8px;
    border-top: 1px solid #e8ece9;
}

.insc-page section > h1 + .insc-persona {
    border-top: 0;
    padding-top: 0;
}

.insc-persona > h2 {
    margin: 0 0 18px;
    padding: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--insc-accent);
    text-transform: lowercase;
}

    .insc-persona > h2::first-letter {
        text-transform: uppercase;
    }

/* ---------- Etiquetas y errores ---------- */
.insc-page .form-label {
    display: block;
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--insc-text);
    text-transform: lowercase;
}

    .insc-page .form-label::first-letter {
        text-transform: uppercase;
    }

.insc-page .error-message {
    display: none; /* el JS lo muestra con style.display = "block" */
    float: right;
    font-size: 12px;
    font-weight: 600;
    color: var(--insc-error);
    text-transform: lowercase;
}

    .insc-page .error-message::first-letter {
        text-transform: uppercase;
    }

/* ---------- Campos ---------- */
.insc-page .form-text {
    margin-top: 6px;
    font-size: 12px;
    color: var(--insc-muted);
}

.insc-page .form-control,
.insc-page .form-select {
    height: 46px;
    padding: 0 14px;
    border: 1px solid var(--insc-border);
    border-radius: 8px;
    background-color: #fff;
    font-size: 15px;
    font-weight: 500;
    color: var(--insc-text);
    transition: border-color .15s, box-shadow .15s;
}

.insc-page .form-select {
    padding-right: 2.4rem;
}

.insc-page .form-control::placeholder {
    color: #9aa79e;
    font-weight: 400;
}

.insc-page .form-control:hover,
.insc-page .form-select:hover {
    border-color: #b4c0b8;
}

.insc-page .form-control:focus,
.insc-page .form-select:focus {
    border-color: var(--insc-accent);
    box-shadow: 0 0 0 3px rgba(57, 89, 66, .18);
    outline: 0;
}

.insc-page input[type=file].form-control {
    height: auto;
    padding: 9px 12px;
}

.insc-page .error-group .form-control,
.insc-page .error-group .form-select {
    border-color: var(--insc-error);
    box-shadow: 0 0 0 3px rgba(198, 40, 40, .12);
}

/* ---------- Opciones de radio como botones ---------- */
.insc-page .radio-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 8px 6px 0 !important;
    padding: 11px 18px;
    border: 1px solid var(--insc-border);
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--insc-text);
    cursor: pointer;
    transition: border-color .15s, background-color .15s;
}

    .insc-page .radio-inline input {
        width: 16px;
        height: 16px;
        margin: 0;
        accent-color: var(--insc-accent);
    }

    .insc-page .radio-inline:hover {
        border-color: var(--insc-accent);
    }

    .insc-page .radio-inline:has(input:checked) {
        border-color: var(--insc-accent);
        background: var(--insc-accent-soft);
        font-weight: 600;
    }

.insc-page .error-group .radio-inline {
    border-color: var(--insc-error);
}

/* ---------- Costo de la matrícula ---------- */
.insc-page [id^="valor_matricula_alert"]:not(:empty) {
    padding: 12px 14px;
    border: 1px solid rgba(57, 89, 66, .28);
    border-radius: 10px;
    background: var(--insc-accent-soft);
    font-size: 14px;
    font-weight: 600 !important;
    color: var(--insc-accent);
}

/* ---------- Botones ---------- */
.insc-page #agregarOtroAlumno,
.insc-page #agregarOtroResponsable {
    display: inline-flex;
    margin-bottom: 8px;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    padding: 10px 18px;
    border: 1.5px dashed var(--insc-accent);
    border-radius: 10px;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: var(--insc-accent);
    text-decoration: none;
}

    .insc-page #agregarOtroAlumno::before,
    .insc-page #agregarOtroResponsable::before {
        content: "+";
        font-size: 20px;
        font-weight: 500;
        line-height: 1;
    }

    .insc-page #agregarOtroAlumno:hover,
    .insc-page #agregarOtroResponsable:hover {
        background: var(--insc-accent-soft);
        color: var(--insc-accent);
    }

.insc-acciones {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}

/* Turnstile (verificación anti-robot): debajo de la tarjeta del botón, a la izquierda */
.insc-turnstile {
    margin-top: 14px;
}

.insc-page #Send_btn {
    min-width: 220px;
    padding: 14px 36px;
    border: 0;
    border-radius: 10px;
    background: var(--insc-accent);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .05em;
    color: #fff;
    transition: filter .15s, box-shadow .15s;
}

    .insc-page #Send_btn:hover {
        filter: brightness(1.12);
        box-shadow: 0 4px 12px rgba(57, 89, 66, .3);
    }

    .insc-page #Send_btn.disabled {
        opacity: .7;
    }

/* ---------- Texto introductorio y enlace para quitar un bloque ---------- */
.insc-intro {
    margin: 0 0 18px;
    font-size: 15px;
    color: var(--insc-muted);
}

.insc-page .insc-quitar {
    display: inline-block;
    margin: 4px 0 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--insc-error);
    text-decoration: none;
}

    .insc-page .insc-quitar:hover {
        text-decoration: underline;
    }

/* ---------- Aviso de errores del servidor ---------- */
.insc-page .alert {
    margin: 0 0 20px;
    border-radius: 12px;
    font-size: 14px;
}

/* ---------- Celulares ---------- */
@media (max-width: 575.98px) {
    .insc-page {
        padding: 16px 0 28px;
    }

        .insc-page section {
            padding: 20px 16px 24px;
            border-radius: 12px;
        }

        .insc-page .radio-inline {
            padding: 12px 16px;
        }

        .insc-page #Send_btn {
            width: 100%;
        }

    .insc-acciones {
        flex-direction: column;
        align-items: stretch;
    }
}
