.swfb-form-wrapper {
    max-width: 600px;
    margin: 0 auto;
    font-family: sans-serif;
    --swfb-primary: #007cba;
}
.swfb-field-group { margin-bottom: 15px; }
.swfb-field-group label { display: block; margin-bottom: 5px; font-weight: bold; }
.swfb-field-group .req { color: red; }

.swfb-input {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    box-sizing: border-box;
    font-size: 15px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.swfb-input:focus {
    border-color: var(--swfb-primary);
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
}

/* Field style: rounded vs square */
.swfb-style-rounded .swfb-input { border-radius: 8px; }
.swfb-style-rounded .swfb-submit-btn { border-radius: 8px; }
.swfb-style-square .swfb-input { border-radius: 0; }
.swfb-style-square .swfb-submit-btn { border-radius: 0; }

.swfb-check-label { display: block; margin-bottom: 5px; font-weight: normal; }

.swfb-submit-btn {
    background: var(--swfb-primary);
    color: #fff;
    padding: 10px 20px;
    border: none;
    cursor: pointer;
    font-size: 16px;
}
.swfb-submit-btn:hover { filter: brightness(0.9); }
.swfb-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.swfb-msg { margin-top: 15px; padding: 10px; border-radius: 4px; }
.swfb-msg.success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.swfb-msg.error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

/* Floating label technique — label sits inside the field until focused/filled.
   Requires markup order: input first, then label (see class-swfb-shortcode.php). */
.swfb-label-floating .swfb-floating-group {
    position: relative;
    margin-top: 8px;
}
.swfb-label-floating .swfb-floating-group input,
.swfb-label-floating .swfb-floating-group textarea {
    padding-top: 18px;
    padding-bottom: 6px;
}
.swfb-label-floating .swfb-floating-group label {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    font-weight: normal;
    color: #888;
    background: transparent;
    pointer-events: none;
    transition: all 0.15s ease;
}
.swfb-label-floating .swfb-floating-group input:focus + label,
.swfb-label-floating .swfb-floating-group input:not(:placeholder-shown) + label,
.swfb-label-floating .swfb-floating-group textarea:focus + label,
.swfb-label-floating .swfb-floating-group textarea:not(:placeholder-shown) + label {
    top: 0;
    left: 8px;
    font-size: 11px;
    color: var(--swfb-primary);
    background: #fff;
    padding: 0 4px;
}