/* Project-only layout; the home search keeps its existing presentation. */
.bsw-search,
.bsw-search * {
	box-sizing: border-box;
}

.bsw-search {
	/* Existing Bollmann frontend values verified on staging. */
	--bsw-color-primary: #085d67;
	--bsw-color-primary-rgb: 8, 93, 103;
	--bsw-color-companion: #cabfa5;
	--bsw-color-neutral: #a2a9ad;
	--bsw-color-dark-blue-grey: #253746;
	--bsw-color-dark-blue-grey-rgb: 37, 55, 70;
	--bsw-color-border: #d9d9d9;
	--bsw-color-surface-soft: #f4f4f4;
	--bsw-color-white: #ffffff;
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	font-family: inherit;
	color: var(--bsw-color-dark-blue-grey);
}

.bsw-search__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 72px;
	padding: 10px 14px;
	background: var(--bsw-color-white);
	border: 1px solid rgba(var(--bsw-color-primary-rgb), .12);
	border-radius: 4px 16px 4px 16px;
}

.bsw-search__switch {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 4px;
	padding: 4px;
	background: transparent;
	border-radius: 4px 16px 4px 16px;
}

.bsw-search__mode,
.bsw-search-dropdown__toggle,
.bsw-search-dropdown__menu button,
.bsw-search__submit {
	font: inherit;
}

.bsw-search__mode {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 15px;
	border: 0;
	border-radius: 4px 16px 4px 16px;
	background: transparent;
	color: var(--bsw-color-neutral);
	cursor: pointer;
	white-space: nowrap;
}

.bsw-search__key-visual {
	display: inline-block;
	flex: 0 0 15px;
	width: 15px;
	height: 15px;
	background-color: var(--bsw-color-primary);
	-webkit-mask-image: url('../admin/bollmann-admin-icon.png');
	mask-image: url('../admin/bollmann-admin-icon.png');
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.bsw-search__mode.is-active {
	background: var(--bsw-color-primary);
	color: var(--bsw-color-white);
}

.bsw-search__mode.is-active .bsw-search__key-visual {
	background-color: var(--bsw-color-white);
}

.bsw-search__mode:not(.is-active):hover {
	background: var(--bsw-color-companion);
	color: var(--bsw-color-dark-blue-grey);
}

.bsw-search__panel {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.bsw-search__panel[hidden] {
	display: none;
}

.bsw-search__validation {
	margin: 0;
	color: var(--bsw-color-primary);
	font-size: 13px;
}

.bsw-search__field,
.bsw-search__range {
	position: relative;
	min-width: 0;
}

.bsw-search__field {
	flex: 1 1 230px;
}

.bsw-search-dropdown__toggle,
.bsw-search-autocomplete input {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--bsw-color-border);
	border-radius: 4px 16px 4px 16px;
	background: var(--bsw-color-white);
	color: var(--bsw-color-dark-blue-grey);
	text-align: left;
	cursor: pointer;
}

.bsw-search-autocomplete input {
	font-size: inherit;
	outline: 0;
}

.bsw-search-dropdown__toggle:focus-visible,
.bsw-search-autocomplete input:focus-visible,
.bsw-search__mode:focus-visible,
.bsw-search__submit:focus-visible {
	outline: 2px solid var(--bsw-color-primary);
	outline-offset: 2px;
}

.bsw-search-dropdown__menu,
.bsw-search-autocomplete__menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 20;
	width: 100%;
	min-width: 100%;
	width: max-content;
	max-width: min(420px, calc(100vw - 24px));
	max-height: 420px;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 6px;
	border: 1px solid var(--bsw-color-border);
	border-radius: 4px 16px 4px 16px;
	background: var(--bsw-color-white);
	box-shadow: 0 12px 26px rgba(var(--bsw-color-dark-blue-grey-rgb), .16);
}

.bsw-search-dropdown__menu[hidden],
.bsw-search-autocomplete__menu[hidden] {
	display: none;
}

.bsw-search-dropdown__menu button,
.bsw-search-autocomplete__menu button {
	display: block;
	width: 100%;
	padding: 9px 10px;
	border: 0;
	border-radius: 4px 16px 4px 16px;
	background: transparent;
	color: var(--bsw-color-dark-blue-grey);
	text-align: left;
	cursor: pointer;
}

.bsw-search-dropdown__menu button:hover,
.bsw-search-dropdown__menu button[aria-selected="true"],
.bsw-search-autocomplete__menu button:hover,
.bsw-search-autocomplete__menu button:focus-visible {
	background: var(--bsw-color-companion);
	color: var(--bsw-color-dark-blue-grey);
}

.bsw-search-dropdown__menu--geography .bsw-search-dropdown__country-toggle {
	font-weight: 600;
	color: var(--bsw-color-primary);
}
.bsw-search-dropdown__menu--geography [data-bsw-country-options] button {
	padding-left: 26px;
	white-space: normal;
	overflow-wrap: anywhere;
}
.bsw-search-dropdown__menu--geography [data-bsw-country-options][hidden] { display: none; }

.bsw-search__panel--filters {
	flex-wrap: wrap;
}

.bsw-search__panel--filters .bsw-search__field {
	flex: 1 1 150px;
}

.bsw-search__range {
	flex: 1 1 145px;
	padding: 4px 4px 0;
}

.bsw-search__range-label,
.bsw-search__range-values {
	display: block;
	font-size: 11px;
	line-height: 1.2;
}

.bsw-search__range-label {
	color: var(--bsw-color-neutral);
}

.bsw-search__range-values {
	margin-top: 2px;
	color: var(--bsw-color-dark-blue-grey);
}

.bsw-search__range-values output + span {
	padding: 0 3px;
	color: var(--bsw-color-neutral);
}

.bsw-search__range-track {
	position: relative;
	height: 25px;
}

.bsw-search__range-track::before {
	content: "";
	position: absolute;
	top: 13px;
	left: 0;
	right: 0;
	height: 3px;
	border-radius: 4px 16px 4px 16px;
	background: var(--bsw-color-border);
}

.bsw-search__range-track input {
	position: absolute;
	top: 4px;
	left: 0;
	width: 100%;
	height: 20px;
	margin: 0;
	background: transparent;
	appearance: none;
	pointer-events: none;
}

.bsw-search__range-track input::-webkit-slider-thumb {
	width: 14px;
	height: 14px;
	border: 2px solid var(--bsw-color-primary);
	border-radius: 50%;
	background: var(--bsw-color-white);
	appearance: none;
	cursor: pointer;
	pointer-events: auto;
}

.bsw-search__range-track input::-moz-range-thumb {
	width: 11px;
	height: 11px;
	border: 2px solid var(--bsw-color-primary);
	border-radius: 50%;
	background: var(--bsw-color-white);
	cursor: pointer;
	pointer-events: auto;
}

.bsw-search__submit {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 0;
	width: 44px;
	min-height: 44px;
	padding: 0;
	border: 0;
	border-radius: 4px 16px 4px 16px;
	background: var(--bsw-color-primary);
	color: var(--bsw-color-white);
	cursor: pointer;
}

/* Elementor's global button skin is more specific than the component rule. */
.bsw-search .bsw-search__submit {
	padding: 0;
	border: 0;
	border-radius: 4px 16px 4px 16px;
	background: var(--bsw-color-primary);
	background-color: var(--bsw-color-primary);
	color: var(--bsw-color-white);
}

.bsw-search__submit-icon {
	display: block;
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (min-width: 1281px) and (max-width: 1440px) {
	.bsw-search__bar {
		gap: 8px;
		min-height: 64px;
		padding: 8px 10px;
	}

	.bsw-search__mode {
		gap: 5px;
		padding: 8px 10px;
		font-size: 14px;
	}

	.bsw-search__key-visual {
		flex-basis: 13px;
		width: 13px;
		height: 13px;
	}

	.bsw-search__panel,
	.bsw-search__switch {
		gap: 8px;
	}

	.bsw-search-dropdown__toggle {
		padding-right: 10px;
		padding-left: 10px;
		font-size: 14px;
	}
}

@media (max-width: 1280px) {
	.bsw-search__bar {
		align-items: stretch;
		flex-wrap: wrap;
		gap: 8px;
		padding: 10px 12px;
	}

	.bsw-search__switch {
		width: 100%;
		flex: 1 1 100%;
		justify-content: flex-start;
	}

	.bsw-search__panel {
		width: 100%;
		flex: 1 1 0;
		gap: 8px;
	}

	.bsw-search__submit {
		flex: 0 0 44px;
		width: 44px;
	}

	.bsw-search-dropdown__menu,
	.bsw-search-autocomplete__menu {
		box-shadow: none;
	}
}


@media (max-width: 767px) {
	.bsw-search__bar {
		min-height: 0;
		padding: 10px;
	}

	.bsw-search__switch {
		gap: 4px;
		padding: 0;
	}

	.bsw-search__mode {
		flex: 1 1 0;
		justify-content: center;
		min-width: 0;
		padding: 8px 6px;
		gap: 5px;
		font-size: 14px;
	}

	.bsw-search__panel,
	.bsw-search__panel--filters {
		flex-direction: row;
		align-items: center;
		min-width: 0;
	}

	.bsw-search__field,
	.bsw-search__range {
		flex: 1 1 0;
		width: auto;
	}

	.bsw-search-dropdown__toggle {
		padding-right: 9px;
		padding-left: 9px;
	}

	.bsw-search-dropdown__menu,
	.bsw-search-autocomplete__menu {
		max-width: calc(100vw - 24px);
		max-height: min(420px, 60vh);
	}
}

@media (max-width: 380px) {
	.bsw-search__mode {
		padding-right: 4px;
		padding-left: 4px;
		font-size: 13px;
	}

	.bsw-search__mode {
		gap: 4px;
	}
}

/* Home search: one spacing contract for the visible controls in every layout. */
.bsw-search--home .bsw-search__bar {
	--bsw-home-search-gap: 10px;
	gap: var(--bsw-home-search-gap);
}
.bsw-search--home .bsw-search__switch,
.bsw-search--home .bsw-search__panel { gap: var(--bsw-home-search-gap); }
@media (min-width: 1281px) {
	.bsw-search--home .bsw-search__switch,
	.bsw-search--home .bsw-search__panel[data-bsw-panel="property"],
	.bsw-search--home .bsw-search__panel[data-bsw-panel="text"] { display: contents; }
	.bsw-search--home .bsw-search__panel[hidden] { display: none; }
	.bsw-search--home .bsw-search__switch { padding: 0; }
}
@media (min-width: 1281px) and (max-width: 1440px) {
	.bsw-search--home .bsw-search__bar { --bsw-home-search-gap: 8px; }
}
@media (max-width: 1280px) {
	.bsw-search--home .bsw-search__bar { --bsw-home-search-gap: 8px; gap: var(--bsw-home-search-gap); }
	.bsw-search--home .bsw-search__switch,
	.bsw-search--home .bsw-search__panel { gap: var(--bsw-home-search-gap); }
}
@media (max-width: 767px) {
	.bsw-search--home .bsw-search__switch,
	.bsw-search--home .bsw-search__panel { gap: var(--bsw-home-search-gap); }
}

/* Project search: one shared surface with a collapsible second row. */
.bsw-search--projects {
	margin-left: auto;
	margin-right: 0;
}
.bsw-search--projects .bsw-search__bar {
	border-color: transparent;
	display: grid;
	grid-template-columns: auto minmax(0, 1.65fr) minmax(112px, .55fr) 56px;
	align-items: center;
	gap: 12px;
}
.bsw-search--projects .bsw-search__switch {
	grid-column: 1; grid-row: 1; width: auto; padding: 0;
	gap: 12px;
}
.bsw-search--projects .bsw-search__switch .bsw-search__mode.is-active {
	cursor: default;
}
.bsw-search--projects [data-bsw-panel="property"] {
	grid-column: 2; grid-row: 1; width: auto;
	gap: 12px;
}
.bsw-search--projects .bsw-search__status-field {
	grid-column: 3; grid-row: 1; width: auto; min-width: 0;
}
.bsw-search--projects .bsw-search__panel--filters {
	grid-column: 1 / 4; grid-row: 2;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px; align-items: center; width: auto;
}
.bsw-search--projects .bsw-search__panel--filters[hidden] { display: none; }
.bsw-search--projects .bsw-search__submit {
	grid-column: 4; grid-row: 1; width: 56px; align-self: stretch;
}
.bsw-search--projects.is-filter-open .bsw-search__submit { grid-row: 1 / 3; }
.bsw-search--projects .bsw-search__filter-toggle { color: var(--bsw-color-primary); }
.bsw-search--projects .bsw-search__filter-toggle[aria-expanded="true"] > span:first-child { transform: rotate(90deg); }

/* Fill Elementor's shortcode host even when its flex parent aligns items to start. */
.elementor-widget-shortcode:has(.bsw-search--projects),
.elementor-widget-container:has(> .elementor-shortcode > .bsw-search--projects),
.elementor-shortcode:has(> .bsw-search--projects) {
	width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box;
}
.bsw-search--projects .bsw-search__range-label { color: var(--bsw-color-primary); }
.bsw-search--projects .bsw-search__range-values { font-size: 12px; }
.bsw-search--projects .bsw-search__range-track { height: 30px; }
.bsw-search--projects .bsw-search__range-track::before {
	top: 7px; height: 16px; border: 1px solid var(--bsw-color-neutral);
	border-radius: 16px; background: transparent;
}
.bsw-search.bsw-search--projects .bsw-search__range-track input[type="range"] {
	top: 0; height: 30px; padding: 0; border: 0;
	box-shadow: none; background: transparent; touch-action: pan-y;
}

/* Top-layer menus escape the verified Elementor overflow:hidden ancestors. */
.bsw-search--projects .bsw-search-dropdown__menu[popover] {
	position: fixed;
	inset: auto;
	margin: 0;
	min-width: 0;
	max-width: calc(100vw - 24px);
	box-sizing: border-box;
}
.bsw-search--projects .bsw-search-dropdown__menu[popover]::backdrop { background: transparent; pointer-events: none; }
.bsw-search--projects .bsw-search__range-track input::-webkit-slider-runnable-track { background: transparent; border: 0; }
.bsw-search--projects .bsw-search__range-track input::-moz-range-track { background: transparent; border: 0; }
.bsw-search--projects .bsw-search__range-track input::-moz-range-progress { background: transparent; }
.bsw-search--projects .bsw-search__range-track input:focus-visible { outline: 2px solid var(--bsw-color-primary); outline-offset: 2px; }
@media (max-width: 900px) {
	.bsw-search--projects .bsw-search__bar { grid-template-columns: minmax(0, 1fr) 48px; gap: 12px; }
	.bsw-search--projects .bsw-search__switch { grid-column: 1; }
	.bsw-search--projects [data-bsw-panel="property"] { grid-column: 1; grid-row: 2; }
	.bsw-search--projects .bsw-search__status-field { grid-column: 1; grid-row: 3; }
	.bsw-search--projects .bsw-search__panel--filters { grid-column: 1; grid-row: 4; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.bsw-search--projects .bsw-search__submit { grid-column: 2; grid-row: 1 / 4; width: 48px; }
	.bsw-search--projects.is-filter-open .bsw-search__submit { grid-row: 1 / 5; }
	.bsw-search--projects .bsw-search-dropdown__toggle { font-size: 13px; white-space: normal; }
}
/* Mobile only: the submit control follows the fields instead of spanning them. */
@media (max-width: 767px) {
	.bsw-search--projects .bsw-search__bar { grid-template-columns: minmax(0, 1fr); }
	.bsw-search--projects .bsw-search__submit {
		grid-column: 1;
		grid-row: 4;
		width: 100%;
	}
	.bsw-search--projects.is-filter-open .bsw-search__submit { grid-row: 5; }
}
@media (max-width: 480px) {
	.bsw-search--projects .bsw-search__panel--filters { grid-template-columns: minmax(0, 1fr); }
	.bsw-search--projects [data-bsw-panel="property"] { flex-direction: column; align-items: stretch; }
	.bsw-search--projects [data-bsw-panel="property"] .bsw-search__field { flex: auto; }
	.bsw-search--projects .bsw-search__switch { flex-wrap: wrap; }
	.bsw-search--projects .bsw-search-dropdown__menu { max-width: min(240px, calc(100vw - 110px)); }
}

/* Keep visible Search Bar text comfortably readable on small mobile screens. */
@media (max-width: 480px) {
	.bsw-search .bsw-search__mode,
	.bsw-search .bsw-search-dropdown__toggle,
	.bsw-search .bsw-search-dropdown__menu button,
	.bsw-search .bsw-search__field.bsw-search-autocomplete input,
	.bsw-search .bsw-search-autocomplete__menu button {
		font-size: 14px;
	}
}
