input[type='range'].form-range {
	height: 0.375rem;
	background: linear-gradient(to right, #28a745 0%, #d3d3d3 100%);
	border-radius: 0.25rem;
	outline: none;
	appearance: none;
}

/* Chrome / Safari */
input[type='range'].form-range::-webkit-slider-runnable-track {
	height: 0.375rem;
	background: #d3d3d3;
	border-radius: 0.25rem;
}

input[type='range'].form-range::-webkit-slider-thumb {
	appearance: none;
	width: 1rem;
	height: 1rem;
	background: var(--primary);
	border-radius: 50%;
	cursor: pointer;
	border: none;
	margin-top: -0.3125rem;
	box-shadow: 0 0 0.5rem var(--primary-transparent-80);
}

/* Firefox */
input[type='range'].form-range::-moz-range-track {
	height: 0.375rem;
	background: #d3d3d3;
	border-radius: 0.25rem;
}

input[type='range'].form-range::-moz-range-thumb {
	width: 1rem;
	height: 1rem;
	background: var(--primary);
	border-radius: 50%;
	cursor: pointer;
	border: none;
	box-shadow: 0 0 0.5rem var(--primary-transparent-80);
}

/* Edge / IE */
input[type='range'].form-range::-ms-track {
	height: 0.375rem;
	background: transparent;
	border-color: transparent;
	color: transparent;
}

input[type='range'].form-range::-ms-fill-lower {
	background: #d3d3d3;
	border-radius: 0.25rem;
}

input[type='range'].form-range::-ms-thumb {
	width: 1rem;
	height: 1rem;
	background: var(--primary);
	border-radius: 50%;
	cursor: pointer;
	border: none;
}

/* Utility classes */
.max-w-form {
	max-width: 40rem;
}

.dropdown-scrollable {
	max-height: 40vh;
}

.selected-category {
	background-color: #d4edda !important;
	box-shadow: -0.5rem 0 0 #d4edda;
}

.form-check-input:focus {
	box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
	border-color: var(--primary);
}

.category-list {
	scrollbar-width: thin;
	scrollbar-color: #ccc transparent;
	-webkit-overflow-scrolling: touch;
	max-height: 20vh;
}

.w-countryCode {
	width: 25%;
}

.w-zipCode {
	width: 75%;
}

.range-layout .range-input {
	flex: 0 0 calc(70% - 1rem);
}

.range-layout .range-input-text {
	flex: 0 0 30%;
	margin-left: 1rem;
}

.street-floating {
	margin-bottom: 1rem;
}

.city-floating {
	margin-bottom: 1rem;
}

@media (max-width: 768px) {
	.city-floating {
		margin-bottom: 0rem !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.street-floating {
		margin-left: -0.25rem;
	}

	.city-floating {
		margin-right: -0.25rem;
	}
}

@media (max-width: 1024px) {
	.filter-panel {
		height: 100vh;
		overflow-y: auto;
		overflow-x: hidden;
	}

	.filter-content {
		height: 100%;
		overflow-x: hidden;
		overflow-y: auto;
		padding-bottom: 6rem;
	}

	.w-countryCode {
		width: 50%;
	}

	.w-zipCode {
		width: 50%;
	}
}

input.form-control.ps-floating-icon {
	padding-left: 2.5rem;
	transition: padding-left 0.2s ease;
}

input.form-control.ps-floating-icon:focus,
input.form-control.ps-floating-icon:not(:placeholder-shown) {
	padding-left: 0.75rem;
}

.form-floating > label svg {
	vertical-align: middle;
	margin-right: 0.3rem;
}

.form-floating > label {
	font-size: 0.85rem;
	display: flex;
	align-items: center;
	gap: 0.3rem;
}
