.typeahead {
	position: relative;
	width: clamp(40ch, 40%, 50ch);
}

.inputfield {
	position: relative;
	width: 100%;
	display: flex;
	flex-direction: column;
	transition: margin 300ms ease-in-out;
	padding: 1rem 1rem 1rem 0.5rem;
	border: 1px solid var(--clr-neutral-400);
	background-color: var(--clr-neutral-200);
	border-radius: 0.25rem;
	font-size: 1rem;
	height: 3rem;
	line-height: 1.33333;

	align-items: center;
}

input,
label {
	border: 0 solid;
	font-size: 1rem;
	background-color: var(--clr-neutral-200);

	width: 90%;
}

input:active,
input:focus {
	background-color: var(--clr-neutral-100);
	outline-color: var(--clr-link-400);
}

input:focus + label {
	transform: scale(0.7);
	top: -18px;
	background-color: var(--clr-neutral-100);
}

label {
	color: var(--clr-neutral-900);
	font-weight: 400;
	left: 0.55rem;
	line-height: 1.25em;
	pointer-events: none;
	position: absolute;
	transition: all 300ms ease-out;
	text-align: left;
	transform-origin: top left;
	z-index: 0;
	top: 0.75em;
}

.typeahead > ul {
	position: absolute;
	/* Line height + Padding + Border of input - 1px to overlap borders */
	top: calc(1.2rem + 2rem + 2px - 1px);
	border: 1px solid var(--clr-neutral-400);
	background-color: white;
	overflow: auto;
	margin: 0;
	width: 100%;
	border-bottom-left-radius: 0.25rem;
	border-bottom-right-radius: 0.25rem;
	padding: 0;
}

.typeahead > ul:empty {
	visibility: hidden;
}

.typeahead > ul > li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 0.5em 0.75em;
}

.typeahead > ul > li:hover {
	background-color: var(--clr-accent-200);
	border-left: 0.25em solid var(--clr-accent-400);
}

.selected {
	background-color: var(--clr-link-300);
	border-left: 0.25em solid var(--clr-link-400);
}
