form[name=contact] {
	.wp-block-group {
		position: relative;
		input, textarea {
			appearance: none;
			border-style: solid;
			border-width: 1px;
			box-sizing: border-box;
			font-family: inherit;
			font-size: 1rem;
			padding: 1.25rem .75rem .75rem;
			width: calc( 100% - 1px );
			&.focused, &:focus, &:focus-within {
				border-width: 2px;
				border-color: var(--wp--preset--color--primary);
				outline: none;
				margin-bottom: -2px;
			}
			&:focus-within~label,
			&:focus~label,
			&:valid[required]~label {
				filter: opacity(0.75);
				font-size: .7rem;
				top: .25rem;
			}
		}
		input:invalid {
			border: 2px solid #ff3860;
		}
		input:valid {
			border: 2px solid #09c372;
		}
		label {
			color: var(--wp--preset--color--primary);
			left: .75rem;
			margin-block-start: unset;
			pointer-events: none;
			position: absolute;
			top: 1rem;
			transition-duration: .1s;
			white-space: nowrap;
		}
	}
}
#loading {
	align-items: center;
	background: rgba(255, 255, 255, 0.75);
	bottom: 0;
	color: var(--wp--preset--color--primary);
	display: flex;
	font-size: 125%;
	font-weight: 700;
	justify-content: center;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 9;
	> svg {
		transform: scale(1);
		animation: pulse 2s infinite;
	}
}

@keyframes pulse {
	0% {
		transform: scale(0.95);
		box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
	}

	70% {
		transform: scale(1);
		box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
	}

	100% {
		transform: scale(0.95);
		box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
	}
}