/* ===== Look & Feel base ===== */
:root{
    --mc-rojo: #b32e2e;
    --mc-rojo-600:#9d2828;
    --mc-azul: #0D47A1;
    --mc-primario: var(--mc-rojo);
    --mc-texto: #111827;
    --mc-muted: #6b7280;
    --mc-borde: #e5e7eb;
    --mc-card: #ffffff;
    --mc-focus: #3b82f6; /* anillo accesible */
    --mc-shadow: 0 6px 18px rgba(17,24,39,.08);
    --mc-radius: 12px;
    --mc-space-1: .5rem;
    --mc-space-2: .75rem;
    --mc-space-3: 1rem;
    --mc-space-4: 1.25rem;
}




body{
    font-family: Roboto, system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;
    color: var(--mc-texto);
}

/* ===== Contenedores y tarjetas ===== */
.section-card{
    background: var(--mc-card);
    border: 1px solid var(--mc-borde);
    border-radius: var(--mc-radius);
    box-shadow: var(--mc-shadow);
    padding: var(--mc-space-4);
    margin-bottom: var(--mc-space-3);
}
.section-title{
    display:flex; align-items:center; gap:.5rem;
    font-weight:600; font-size:1.1rem; color:var(--mc-texto);
    margin: 0 0 var(--mc-space-2);
}

/* Header institucional */
.mc-header{
    background: var(--mc-primario); color:#fff; border-radius: 14px;
}
.mc-header h5, .mc-header h6{ font-weight:600 }

/* ===== Inputs: look moderno + focus accesible ===== */
.form-control, .custom-select{
    border-radius: 10px;
    border-color: var(--mc-borde);
    transition: box-shadow .18s ease, border-color .18s ease;
}
.form-control:focus, .custom-select:focus{
    border-color: var(--mc-focus);
    box-shadow: 0 0 0 .2rem rgba(59,130,246,.25);
}
.is-invalid.form-control, .is-invalid.custom-select{
    border-color:#dc3545;
    box-shadow: 0 0 0 .2rem rgba(220,53,69,.15);
}
.help, .form-text { color: var(--mc-muted); }

/* Labels requeridos */
.required::after{ content:" *"; color:#dc3545; font-weight:700; }

/* ===== Botones ===== */
.btn-primary{
    background: var(--mc-primario);
    border-color: var(--mc-primario);
    border-radius: 10px;
    box-shadow: 0 6px 16px rgba(179,46,46,.25);
    transition: transform .08s ease, box-shadow .2s ease, background .2s ease;
}
.btn-primary:hover{ background: var(--mc-rojo-600); }
.btn-primary:active{ transform: translateY(1px); box-shadow: 0 4px 10px rgba(179,46,46,.25); }
.btn-outline-primary{
    border-color: var(--mc-primario); color: var(--mc-primario);
    border-radius: 10px;
}
.btn-outline-primary:hover{ background: var(--mc-primario); color:#fff; }

/* ===== Checkbox/Radio (hit-area grande) ===== */
.custom-control-label{
    padding-left:.25rem; cursor:pointer;
}
.custom-control-input:focus ~ .custom-control-label::before{
    box-shadow: 0 0 0 .2rem rgba(59,130,246,.25);
}

/* ===== Barra de acciones fija ===== */
.sticky-actions{
    position: sticky; bottom: 0; z-index: 30;
    background: rgba(255,255,255,.95);
    backdrop-filter: saturate(180%) blur(6px);
    border-top: 1px solid var(--mc-borde);
}

/* ===== Dropzone para adjuntos ===== */
.dropzone{
    border: 2px dashed var(--mc-borde);
    border-radius: 12px;
    padding: var(--mc-space-3);
    text-align: center;
    color: var(--mc-muted);
    transition: border-color .2s ease, background .2s ease;
}
.dropzone:hover{ border-color: var(--mc-primario); background:#fafafa; }
.dropzone input[type=file]{ opacity:0; position:absolute; inset:0; cursor:pointer; }

/* ===== reCAPTCHA + botón misma altura ===== */
:root{ --captcha-h: 78px; }
.same-height{ height: var(--captcha-h); }
.g-recaptcha{ min-height: var(--captcha-h); }

/* ===== Ajustes responsive ===== */
@media (max-width: 767.98px){
    .section-card{ padding: var(--mc-space-3); }
    .sticky-actions .col-md-6{
        flex-direction: column; align-items: stretch !important;
    }
    .g-recaptcha{ margin-bottom: .75rem; align-self:center; }
    .same-height{ height: 56px; }
}
