/* Buccos Forms. Inherits the theme's tokens when they are present. */

.bf-form {
	--bf-accent: var(--bc-yellow, #ffd300);
	--bf-error: #b32d2e;
}

.bf-form__fields { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.bf-w-full { grid-column: span 6; }
.bf-w-half { grid-column: span 3; }
.bf-w-third { grid-column: span 2; }
@media (max-width: 680px) { .bf-w-half, .bf-w-third { grid-column: span 6; } }

.bf-label {
	display: block;
	margin-bottom: 6px;
	font-family: var(--bc-font-heading, inherit);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .4px;
	text-transform: uppercase;
}
.bf-req { margin-left: 3px; color: var(--bf-accent); }

.bf-input {
	width: 100%;
	padding: 12px 14px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .18);
	color: inherit;
	font-family: inherit;
	font-size: 15px;
}
.bf-input:focus { outline: 2px solid var(--bf-accent); outline-offset: 1px; }
.bf-input::placeholder { color: rgba(255, 255, 255, .45); }

select.bf-input {
	appearance: none;
	padding-right: 36px;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: right 18px center, right 13px center;
	background-size: 5px 5px;
	background-repeat: no-repeat;
}

.bf-choices { display: grid; gap: 8px; }
.bf-choice { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; line-height: 1.45; }
.bf-choice input { margin-top: 3px; }
.bf-consent { font-size: 12px; opacity: .85; }

.bf-help { margin: 5px 0 0; font-size: 12px; opacity: .7; }

.bf-error { margin: 5px 0 0; color: var(--bf-error); font-size: 13px; font-weight: 600; }
.bf-field.has-error .bf-input { border-color: var(--bf-error); }

.bf-hp { position: absolute !important; left: -9999px !important; }

.bf-form__actions { margin-top: 18px; }

.bf-submit {
	width: 100%;
	min-height: 54px;
	padding: 15px 28px;
	background: var(--bf-accent);
	border: 2px solid var(--bf-accent);
	color: #111;
	font-family: var(--bc-font-heading, inherit);
	font-size: 16px;
	font-weight: 900;
	letter-spacing: .6px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}
.bf-submit:hover:not(:disabled) { background: transparent; color: var(--bf-accent); }
.bf-submit:disabled { opacity: .7; cursor: not-allowed; }

.bf-submit__spinner {
	display: none;
	width: 16px;
	height: 16px;
	margin-left: 10px;
	border: 2px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	vertical-align: -3px;
	animation: bf-spin .7s linear infinite;
}
.bf-submit.is-busy .bf-submit__spinner { display: inline-block; }
@keyframes bf-spin { to { transform: rotate(360deg); } }

.bf-form__messages { margin-bottom: 16px; padding: 14px 16px; font-size: 15px; }
.bf-form__messages.is-success { background: rgba(46, 125, 50, .14); border-left: 4px solid #2e7d32; }
.bf-form__messages.is-error { background: rgba(179, 45, 46, .12); border-left: 4px solid var(--bf-error); }

.bf-field--heading h3 { margin: 10px 0 0; font-size: 20px; }
.bf-admin-note { padding: 12px; border: 1px dashed #c00; color: #c00; }
