/* Estilos del modal IPC Lab y accesibilidad */
.modal {position: fixed; inset: 0; background: rgba(0,0,0,.45); display: none; align-items: center; justify-content: center; padding: 1rem; z-index: 1000;}
.modal.open {display: flex;}
.modal-content {background: #fff; border-radius: 16px; box-shadow: 0 20px 60px rgba(0,0,0,.2); max-width: 680px; width: 100%; padding: 1.25rem 1.25rem 1.5rem; position: relative;}
.modal-title {margin: 0 0 .75rem; font-size: 1.25rem; color: #0a3a78;}
.modal-close {position: absolute; top: .5rem; right: .75rem; border: none; background: transparent; font-size: 1.75rem; line-height: 1; color: #666; cursor: pointer;}
.modal-close:hover {color: #111;}

.form-grid {display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem;}
.form-field {display: flex; flex-direction: column;}
.form-field label {font-weight: 600; margin-bottom: .25rem; color: #333;}
.form-field input {border: 1px solid #dcdfe6; border-radius: 10px; padding: .65rem .8rem; font-size: 0.95rem;}
.form-field input:focus {outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,.15);} 
.hint {color: #777; font-size: .8rem;}

.btn {background: #0a3a78; color: #fff; border: none; border-radius: 12px; padding: .7rem 1.2rem; font-weight: 700; margin-top: .6rem; cursor: pointer;}
.btn:hover {background: #0c4ba0;}

.form-message {margin-top: .6rem; padding: .6rem .75rem; border-radius: 10px; font-weight: 600; color: #b91c1c; background: #fee2e2;}
.form-message.ok {color: #065f46; background: #d1fae5;}

/* Adaptación de iconos como botones accesibles */
.servicios-grid {gap: 1.1rem;}
.servicio-item {    background-color: #e3f2fd; }

button.servicio-item img:hover {
    transform: translateY(-2px);
    filter: blur(1px) brightness(0.7);
}
.servicio-image {width: 100%; height: auto; display: block;}

@media (max-width: 640px) { .form-grid {grid-template-columns: 1fr;} .modal-content {max-width: 95vw;} }