/* Form Builder — public form styles (no inline CSS). */

.pfp-public-form-wrap {
    max-width: 100% !important;
    width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
    overflow: visible;
    position: relative;
}

.pfp-public-form {
    max-width: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
}

.pfp-public-form-wrap .pfp-public-form {
    max-width: 100% !important;
    width: 100% !important;
}

.pfp-public-form-wrap * {
    box-sizing: border-box;
}

.pfp-public-form .pfp-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px;
    margin-bottom: 18px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.pfp-public-form .pfp-row[data-cols="2"] .pfp-col {
    flex: 1 1 200px !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.pfp-public-form .pfp-row[data-cols="3"] .pfp-col {
    flex: 1 1 160px !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.pfp-public-form .pfp-row[data-cols="1"] .pfp-col {
    flex: 1 1 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.pfp-public-form .pfp-col {
    min-width: 0;
    box-sizing: border-box;
    overflow-wrap: break-word;
    max-width: 100%;
}

.pfp-public-form .pfp-field {
    position: relative;
    margin-bottom: var(--pfp-field-spacing, 1em);
    width: 100%;
    max-width: 100%;
}

.pfp-public-form .pfp-field label {
    display: block;
    margin-bottom: 4px;
    font-weight: 500;
    min-width: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
}

.pfp-public-form .pfp-radio-group {
    margin-top: 10px;
}

.pfp-public-form .pfp-radio-group .pfp-radio-option {
    font-weight: normal;
    font-size: var(--pfp-option-font-size, 15px);
}

.pfp-public-form .pfp-radio-group .pfp-radio-option input[type="radio"] {
    flex-shrink: 0;
}

/* Two columns: equal spacing and alignment regardless of text length */
.pfp-public-form .pfp-radio-group.pfp-radio-twocol {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px 24px;
}

.pfp-public-form .pfp-radio-group.pfp-radio-twocol .pfp-radio-option {
    margin-bottom: 0;
    min-width: 0;
}

.pfp-public-form input[type="text"],
.pfp-public-form input[type="email"],
.pfp-public-form input[type="tel"],
.pfp-public-form input[type="url"],
.pfp-public-form input[type="number"],
.pfp-public-form input[type="search"] {
    height: 50px !important;
    min-height: 50px !important;
    max-width: 100% !important;
    padding: 0 14px !important;
    box-sizing: border-box !important;
    line-height: 1.4;
}

.pfp-public-form select {
    height: 50px !important;
    min-height: 50px !important;
    padding: 0 14px !important;
    padding-right: 36px !important;
    box-sizing: border-box !important;
    line-height: 1.4;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23555' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 12px !important;
}

.pfp-public-form textarea {
    min-height: 100px;
    padding: 12px 14px !important;
    box-sizing: border-box !important;
}

.pfp-public-form .pfp-checkbox-wrap {
    display: inline-flex;
    align-items: center;
    gap: 20px;
    margin: 0;
    margin-left: 4px;
    padding-left: 4px;
    font-weight: normal;
    cursor: pointer;
    line-height: 1.4;
    font-size: var(--pfp-option-font-size, 15px); /* px set in per-form style block when design option used */
}

.pfp-public-form .pfp-checkbox-wrap input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin-right: 13px !important;
    min-width: 17px;
    min-height: 17px;
    margin: 0;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #2271b1;
    border-radius: 4px;
    align-self: center;
}

.pfp-public-form .pfp-checkbox-text {
    flex: 1;
    line-height: 1.4;
    font-size: var(--pfp-option-font-size, 15px);
}

.pfp-public-form .pfp-radio-option {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 14px;
    margin-bottom: 10px;
    font-weight: normal;
    cursor: pointer;
    line-height: 1.4;
}

.pfp-public-form .pfp-radio-option input[type="radio"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    margin: 0;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #2271b1;
    align-self: center;
}

.pfp-public-form .pfp-radio-group.pfp-radio-inline .pfp-radio-option {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-right: 20px;
    margin-bottom: 0;
}

.pfp-public-form .pfp-html-block {
    margin: 1em 0;
    font-size: 15px;
    line-height: 1.4;
}

.pfp-public-form .pfp-invalid {
    border: 1px solid #dc3545 !important;
    background-color: #fff5f5 !important;
    box-shadow: 0 0 0 1px #dc3545;
    outline: none;
}

.pfp-public-form .pfp-checkbox-wrap input[type="checkbox"].pfp-invalid,
.pfp-public-form .pfp-radio-option input[type="radio"].pfp-invalid {
    border: none !important;
    box-shadow: none !important;
    background-color: transparent !important;
    outline: none !important;
}

.pfp-public-form .pfp-field-error {
    display: none;
    color: #dc3545;
    font-size: 12px;
    margin-top: 6px;
    line-height: 1.3;
}

.pfp-public-form .pfp-field-error.pfp-error-visible {
    display: block;
}

.pfp-public-form button[type="submit"] {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-top: 8px;
    min-width: 140px;
    height: 50px;
    padding: 0 24px;
    font-size: 16px;
}

@media screen and (max-width: 768px) {
    .pfp-public-form .pfp-row {
        flex-wrap: wrap !important;
        gap: 10px !important;
        margin-bottom: 10px !important;
    }
    .pfp-public-form .pfp-row[data-cols="2"] .pfp-col,
    .pfp-public-form .pfp-row[data-cols="3"] .pfp-col {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    .pfp-public-form .pfp-col {
        width: 100% !important;
    }
    .pfp-public-form .pfp-field {
        margin-bottom: 0.6em !important;
    }
    .pfp-public-form .pfp-radio-option {
        margin-bottom: 6px !important;
    }
}
