/* Bootstrap's floating-label form pattern without its global Reboot styles. */
.form-control,
.form-select {
	display: block;
	width: 100%;
	min-height: 3.625rem;
	padding: 1rem .875rem;
	color: var(--wp--preset--color--soft-charcoal);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--bbs-card-border);
	border-radius: .5rem;
	font: inherit;
	line-height: 1.5;
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.form-select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
	background-position: right .875rem center;
	background-repeat: no-repeat;
	background-size: 16px 12px;
	padding-right: 2.5rem;
}

.form-control:focus,
.form-select:focus {
	border-color: var(--bbs-stage-coral, var(--wp--preset--color--coral));
	box-shadow: 0 0 0 .2rem rgba(199, 45, 63, .12);
	outline: 0;
}

.form-floating {
	position: relative;
}

.form-floating > .form-control,
.form-floating > .form-select {
	height: 3.625rem;
}

.form-floating > label {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	padding: 1rem .875rem;
	color: rgba(31, 27, 26, .7);
	font-size: .94rem;
	font-weight: 500;
	pointer-events: none;
	transform-origin: 0 0;
	transition: opacity .1s ease-in-out, transform .1s ease-in-out;
}

.form-floating > .form-control::placeholder {
	color: transparent;
}

.form-floating > .form-control:focus,
.form-floating > .form-control:not(:placeholder-shown),
.form-floating > .form-select {
	padding-top: 1.625rem;
	padding-bottom: .625rem;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
	opacity: .8;
	transform: scale(.82) translateY(-.48rem) translateX(.15rem);
}

.form-floating > textarea.form-control {
	height: auto;
	min-height: 7.75rem;
	resize: vertical;
}
