/* Blanc Privé — form di ricerca. Usa le variabili del tema Astra dove possibile. */

.bp-search {
	--bp-radius: 8px;
	--bp-gap: 14px;
	--bp-accent: var(--ast-global-color-0, #1e2a3a);
	--bp-accent-contrast: #fff;
	--bp-border: #d6d9de;
	--bp-error: #b3261e;

	box-sizing: border-box;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: clamp(16px, 3vw, 28px);
	background: var(--ast-global-color-5, #fff);
	border: 1px solid var(--bp-border);
	border-radius: var(--bp-radius);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.06);
	font-family: inherit;
}

.bp-search *,
.bp-search *::before,
.bp-search *::after {
	box-sizing: border-box;
}

.bp-search__title {
	margin: 0 0 var(--bp-gap);
	font-size: clamp(1.1rem, 2.5vw, 1.5rem);
}

.bp-search__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--bp-gap);
	align-items: end;
}

.bp-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.bp-field label {
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--ast-global-color-3, #4a4a4a);
}

.bp-field input,
.bp-field select {
	width: 100%;
	min-height: 46px;
	padding: 8px 12px;
	border: 1px solid var(--bp-border);
	border-radius: var(--bp-radius);
	background: #fff;
	font-size: 1rem;
	color: inherit;
}

.bp-field input:focus,
.bp-field select:focus,
.bp-search__submit:focus-visible {
	outline: 2px solid var(--bp-accent);
	outline-offset: 2px;
	border-color: var(--bp-accent);
}

.bp-field input[aria-invalid="true"] {
	border-color: var(--bp-error);
	box-shadow: 0 0 0 1px var(--bp-error);
}

.bp-search__submit {
	width: 100%;
	min-height: 46px;
	padding: 10px 22px;
	border: 0;
	border-radius: var(--bp-radius);
	background: var(--bp-accent);
	color: var(--bp-accent-contrast);
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: filter 0.15s ease;
}

.bp-search__submit:hover {
	filter: brightness(1.1);
}

.bp-search__errors {
	margin: 0 0 var(--bp-gap);
	padding: 12px 16px;
	border: 1px solid var(--bp-error);
	border-left-width: 4px;
	border-radius: var(--bp-radius);
	background: #fdf3f2;
	color: var(--bp-error);
}

.bp-search__errors ul {
	margin: 0;
	padding-left: 18px;
}

@media (max-width: 480px) {
	.bp-search__grid {
		grid-template-columns: 1fr 1fr;
	}
	.bp-field--location,
	.bp-field--submit {
		grid-column: 1 / -1;
	}
}
