/* Carte + titres */
.card {
    border: 1px solid var(--brand-border);
    border-radius: 1rem;
    background: var(--brand-surface);
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}
.card .h3 { font-weight: 800; }

/* Champs */
form .form-control,
form .form-select {
    border-radius: .6rem;
    border-color: var(--brand-border);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
form .form-control:focus,
form .form-select:focus {
    border-color: color-mix(in srgb, var(--brand-primary) 45%, var(--brand-border));
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--brand-primary) 25%, transparent);
}

/* Labels */
form .form-label {
    font-weight: 700;
    color: #172031;
}

/* Aide / erreurs */
form .form-text { color: var(--brand-muted); }
form .is-invalid,
form .is-invalid:focus {
    border-color: #dc3545;
    box-shadow: 0 0 0 .2rem rgba(220,53,69,.15);
}

/* Checkbox RGPD */
form .form-check-input {
    border-radius: .4rem;
}
form .form-check-input:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--brand-primary) 25%, transparent);
}
form .form-check-label {
    color: #2b2f33;
    font-weight: 600;
}

/* Boutons */
.btn-primary {
    border-radius: .6rem;
}
.btn-outline-secondary {
    border-radius: .6rem;
}

/* Espacements */
.row.g-3 > [class^="col"] {
    margin-top: .15rem;
}
