.kps-form-wrapper {
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto 20px auto;
    background: #ffffff;
    padding: 0;
    font-family: inherit;
}

.kps-frontend-wrapper {
    width: 100%;
    box-sizing: border-box;
}

.kps-pro-form {
    width: 100%;
    box-sizing: border-box;
}

.kps-section h4 {
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 10px;
    margin-bottom: 20px;
    color: #333;
    font-weight: 600;
}

.kps-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
    align-items: flex-start;
}

/* Make each direct child of a row take available space and prevent overflow */
.kps-row > * { flex: 1 1 200px; min-width: 0; box-sizing: border-box; }
.kps-row .kps-small { flex: 0 0 auto; min-width: 150px; }

.kps-pro-form label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    color: #444;
    font-size: 14px;
}

.kps-pro-form input, .kps-pro-form select, .kps-pro-form textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    margin-bottom: 5px;
    font-size: 15px;
    box-sizing: border-box;
    background-color: #fff;
    color: #333;
}

.kps-pro-form input:focus, .kps-pro-form select:focus, .kps-pro-form textarea:focus {
    border-color: #0051ba;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 81, 186, 0.1);
}

.kps-submit-btn {
    background: #0051ba; /* Azul INDECOPI */
    color: white;
    padding: 16px 30px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: bold;
    font-size: 16px;
    width: 100%;
    transition: 0.3s;
    box-sizing: border-box;
}

.kps-submit-btn:hover { background: #003d8c; }

/* Responsive */
@media (max-width: 600px) {
    .kps-row { flex-direction: column; }
    .kps-form-wrapper { padding: 20px; }
}

/* Tabs */
.kps-tabs { display:flex; gap:8px; margin-bottom:18px; }
.kps-tab { padding:10px 14px; border-radius:8px; border:1px solid #e5e7eb; background:#fff; cursor:pointer; }
.kps-tab.active { background:#0051ba; color:#fff; border-color:#004090; }
.kps-tab-content { margin-top:10px; }

.kps-row input[type="text"], .kps-row input[type="email"], .kps-row input[type="date"], .kps-row input[type="number"], .kps-row select, textarea { padding:12px; border:1px solid #ddd; border-radius:8px; font-size:15px; }
.kps-row .kps-small { width:150px; }
.kps-row input, .kps-row select { flex:1 1 0; min-width:0; }
.kps-row textarea { flex:1 1 0; min-width:0; }
.kps-btn-submit { background:#0051ba; color:white; padding:12px 18px; border-radius:8px; border:none; cursor:pointer; }

@media (max-width: 800px) {
    .kps-form-wrapper { padding:20px; }
    .kps-row { flex-direction:column; }
    .kps-tabs { flex-direction:column; }
}

/* Validation styles */
.kps-error { outline: 2px solid rgba(215, 62, 62, 0.15); box-shadow: 0 0 0 3px rgba(215,62,62,0.04); }
.kps-error-msg { color:#d43f3f; font-size:13px; margin-top:6px; margin-bottom:6px; }

/* Form headings */
.kps-form-wrapper h4 { font-size:18px; margin-top:18px; margin-bottom:8px; color:#222; }
.kps-form-wrapper h5 { font-size:15px; margin-top:12px; margin-bottom:8px; color:#333; }

/* Make input placeholders more visible */
::placeholder { color: #7a7a7a; }

/* Wider layout on large screens */
@media (min-width: 900px) {
    .kps-form-wrapper { max-width: 900px; padding:48px; }
    .kps-row { gap:18px; }
}

/* Error summary box */
.kps-error-summary { background:#fff6f6; border:1px solid #f2c6c6; padding:12px 16px; border-radius:8px; color:#8a1f1f; margin-bottom:12px; display:none; }