/* PBJ Form Builder — frontend */
.pbj-fb-wrap { max-width: 720px; margin: 1.25rem 0; }
.pbj-fb-form { display: block; }
.pbj-fb-desc { margin: 0 0 1rem; opacity: .85; }
.pbj-fb-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.pbj-fb-field { display: block; }
.pbj-fb-col-full { grid-column: 1 / -1; }
.pbj-fb-col-half { grid-column: span 1; }
@media (max-width: 640px) {
	.pbj-fb-grid { grid-template-columns: 1fr; }
	.pbj-fb-col-half { grid-column: 1 / -1; }
}
.pbj-fb-field label { display: block; font-weight: 600; margin-bottom: .35rem; }
.pbj-fb-field input[type="text"],
.pbj-fb-field input[type="email"],
.pbj-fb-field input[type="tel"],
.pbj-fb-field input[type="url"],
.pbj-fb-field input[type="number"],
.pbj-fb-field input[type="date"],
.pbj-fb-field select,
.pbj-fb-field textarea {
	width: 100%; box-sizing: border-box;
	padding: .55rem .75rem; border: 1px solid #cfd4dc;
	border-radius: 6px; font: inherit; line-height: 1.4;
	background: #fff;
}
.pbj-fb-field textarea { min-height: 6rem; resize: vertical; }
.pbj-fb-options { display: flex; flex-direction: column; gap: .25rem; }
.pbj-fb-opt { font-weight: 400; }
.pbj-fb-consent { font-weight: 400; }
.pbj-fb-required { color: #c00; margin-left: .15rem; }
.pbj-fb-help { font-size: .85em; margin: .25rem 0 0; opacity: .8; }
.pbj-fb-captcha { margin: 1rem 0; }
.pbj-fb-captcha input { max-width: 8rem; }
.pbj-fb-price { font-weight: 700; margin: 1rem 0 .5rem; }
.pbj-fb-card {
	min-height: 88px; padding: .5rem; border: 1px solid #cfd4dc;
	border-radius: 6px; background: #fff; margin-bottom: .75rem;
}
.pbj-fb-paypal { min-height: 50px; margin-bottom: .75rem; }
.pbj-fb-actions { margin-top: 1rem; }
.pbj-fb-submit {
	background: #2271b1; color: #fff; border: 0; padding: .65rem 1.25rem;
	border-radius: 6px; font: inherit; cursor: pointer;
}
.pbj-fb-submit:hover { background: #135e96; }
.pbj-fb-submit[disabled] { opacity: .6; cursor: progress; }
.pbj-fb-errors { color: #b32d2e; margin-top: 1rem; min-height: 1.25rem; }
.pbj-fb-success { color: #2a7a2a; margin-top: 1rem; min-height: 1.25rem; }
