/* Formulario de contacto — contraste accesible y avisos de estado.
 * Se carga solo en /contact/ y /en/contact/ (después de style.min.css).
 * Contrastes verificados WCAG AA: etiquetas 14.7:1, texto 17.7:1,
 * borde de campo 3.7:1, botón 4.9:1, avisos 8:1.
 */

/* ---------- Etiquetas y campos ---------- */

.contact-form .form-label,
#contact-form label {
    color: #1f2937;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .1px;
    margin-bottom: 6px;
}

#contact-form .required {
    color: #c62828;
    font-weight: 700;
}

#contact-form .form-control {
    background-color: #ffffff;
    border: 1px solid #7b8794;
    border-radius: 4px;
    color: #111827;
    font-size: 15px;
    min-height: 44px;
    padding: 10px 12px;
}

#contact-form textarea.form-control {
    line-height: 1.55;
    min-height: 170px;
}

#contact-form .form-control::placeholder {
    color: #5b6672;
    opacity: 1;
}

#contact-form .form-control:hover {
    border-color: #5f6b78;
}

#contact-form .form-control:focus {
    border-color: #007d8c;
    box-shadow: 0 0 0 3px rgba(0, 125, 140, .18);
    outline: 2px solid transparent;
    outline-offset: 2px;
}

#contact-form .form-control:user-invalid {
    border-color: #c62828;
}

/* ---------- Botón ---------- */

#contact-form .btn-send {
    background-color: #007d8c;
    border-color: #007d8c;
    color: #ffffff;
    font-weight: 600;
}

#contact-form .btn-send:hover,
#contact-form .btn-send:focus-visible {
    background-color: #00697a;
    border-color: #00697a;
}

#contact-form .btn-send:disabled {
    cursor: not-allowed;
    opacity: .7;
}

/* ---------- Avisos de éxito / error ---------- */

.contacto-aviso {
    align-items: flex-start;
    background: #f1f5f9;
    border-left: 4px solid #007d8c;
    border-radius: 4px;
    color: #1f2937;
    display: flex;
    font-size: 15px;
    gap: 12px;
    line-height: 1.55;
    margin: 0 0 20px;
    padding: 14px 16px;
}

.contacto-aviso__icono {
    flex: 0 0 auto;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
}

.contacto-aviso__titulo {
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 4px;
}

.contacto-aviso__texto {
    margin: 0;
}

.contacto-aviso__acciones {
    margin: 10px 0 0;
}

.contacto-aviso__acciones a {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
}

.contacto-aviso--ok {
    background: #eaf6ec;
    border-color: #2e7d32;
    color: #14532d;
}

.contacto-aviso--error {
    background: #fdecea;
    border-color: #c62828;
    color: #7f1d1d;
}

.contacto-aviso--info {
    background: #f1f5f9;
    border-color: #007d8c;
    color: #1f2937;
}

.contacto-aviso:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
}

@media (max-width: 480px) {
    .contacto-aviso {
        font-size: 14px;
        padding: 12px 13px;
    }
}
