
/* Clean rebuild. No selectors depend on Voxel Search Form markup. */
.sp-fresh-search{
	--sp-navy:#102b57;
	--sp-purple:#7048ee;
	--sp-border:#dce4ee;
	--sp-text:#26374d;
	--sp-muted:#7d899a;
	width:100%;
	position:relative;
	z-index:20;
	background:#fff;
	border:1px solid #e4eaf1;
	border-radius:14px;
	box-shadow:0 14px 35px rgba(16,43,87,.13);
	padding:10px 16px 16px;
	font-family:Manrope,Arial,sans-serif;
	color:var(--sp-text);
}
.sp-fresh-search *{box-sizing:border-box}

.sp-fresh-tabs{
	display:flex;
	align-items:center;
	gap:7px;
	padding:0 0 10px;
	margin:0 0 13px;
	border-bottom:1px solid #e9eef4;
}
.sp-fresh-tab{
	appearance:none;
	border:0;
	outline:0;
	cursor:pointer;
	height:34px;
	padding:0 17px;
	border-radius:7px;
	background:#f5f7fa;
	color:#67758a;
	font:600 12px/1 Manrope,Arial,sans-serif;
	transition:.18s ease;
}
.sp-fresh-tab:hover{background:#eef2f7;color:#34465e}
.sp-fresh-tab.is-active{
	background:var(--sp-navy);
	color:#fff;
	box-shadow:0 3px 8px rgba(16,43,87,.16);
}

.sp-fresh-fields{
	display:grid;
	grid-template-columns:minmax(260px,1.45fr) minmax(220px,1fr) minmax(150px,.72fr) minmax(150px,.72fr) 128px;
	gap:14px;
	align-items:end;
}
.sp-fresh-field label{
	display:block;
	margin:0 0 7px;
	color:#536278;
	font-size:10px;
	font-weight:650;
	line-height:1;
}
.sp-fresh-control,
.sp-fresh-select-trigger{
	width:100%;
	height:44px;
	min-height:44px;
	border:1px solid var(--sp-border);
	border-radius:8px;
	background:#fff;
	box-shadow:none;
	transition:border-color .16s ease,box-shadow .16s ease;
}
.sp-fresh-control:focus-within,
.sp-fresh-select.is-open .sp-fresh-select-trigger{
	border-color:#9eb0c6;
	box-shadow:0 0 0 3px rgba(112,72,238,.07);
}
.sp-fresh-control{
	display:flex;
	align-items:center;
	gap:9px;
	padding:0 12px;
}
.sp-fresh-control input{
	flex:1;
	min-width:0;
	height:42px;
	padding:0;
	border:0!important;
	outline:0!important;
	background:transparent!important;
	box-shadow:none!important;
	color:var(--sp-text);
	font:500 12px/1 Manrope,Arial,sans-serif;
}
.sp-fresh-control input::placeholder{color:#a0aaba}
.sp-fresh-icon{
	display:flex;
	width:19px;
	height:19px;
	flex:0 0 19px;
	color:var(--sp-purple);
}
.sp-fresh-icon svg{width:100%;height:100%;fill:currentColor}
.sp-fresh-euro{
	color:#69788c;
	font-size:12px;
	font-weight:700;
}

.sp-fresh-select{position:relative}
.sp-fresh-select-trigger{
	appearance:none;
	display:flex;
	align-items:center;
	gap:9px;
	padding:0 12px;
	cursor:pointer;
	color:var(--sp-text);
	font:500 12px/1 Manrope,Arial,sans-serif;
	text-align:left;
}
.sp-fresh-select-label{
	flex:1;
	min-width:0;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.sp-fresh-chevron{
	width:8px;height:8px;
	border-right:1.5px solid #8593a5;
	border-bottom:1.5px solid #8593a5;
	transform:rotate(45deg) translateY(-2px);
	transition:transform .16s ease;
}
.sp-fresh-select.is-open .sp-fresh-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.sp-fresh-menu{
	position:absolute;
	top:calc(100% + 7px);
	left:0;
	width:100%;
	min-width:250px;
	max-height:330px;
	overflow:auto;
	z-index:99999;
	background:#fff;
	border:1px solid var(--sp-border);
	border-radius:10px;
	box-shadow:0 14px 30px rgba(18,42,75,.16);
	padding:6px;
}
.sp-fresh-option{
	appearance:none;
	display:block;
	width:100%;
	min-height:40px;
	padding:9px 11px 9px calc(11px + (var(--depth,0) * 17px));
	border:0;
	border-radius:7px;
	background:transparent;
	color:#334257;
	cursor:pointer;
	text-align:left;
	font:500 13px/1.35 Manrope,Arial,sans-serif;
}
.sp-fresh-option:hover{background:#f5f7fa}
.sp-fresh-option.is-selected{background:#eef2f8;color:var(--sp-navy);font-weight:650}

.sp-fresh-submit-wrap{padding-top:17px}
.sp-fresh-submit{
	appearance:none;
	width:100%;
	height:44px;
	border:0;
	border-radius:8px;
	background:var(--sp-navy);
	color:#fff;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	box-shadow:0 6px 14px rgba(16,43,87,.18);
	font:700 12px/1 Manrope,Arial,sans-serif;
	transition:.18s ease;
}
.sp-fresh-submit:hover{background:#173e78;transform:translateY(-1px)}
.sp-fresh-submit svg{width:15px;height:15px;fill:currentColor}

.sp-fresh-location-control.is-loading{opacity:.62;pointer-events:none}
.sp-fresh-error{
	padding:14px;
	border:1px solid #e1e6ed;
	border-radius:10px;
	background:#fff;
	color:#8b1d1d;
	font:600 13px/1.4 Arial,sans-serif;
}

@media(max-width:1024px){
	.sp-fresh-fields{
		grid-template-columns:1fr 1fr;
	}
	.sp-fresh-submit-wrap{padding-top:0}
	.sp-fresh-submit{height:46px}
}
@media(max-width:767px){
	.sp-fresh-search{padding:10px 11px 12px;border-radius:12px}
	.sp-fresh-tabs{overflow-x:auto;white-space:nowrap}
	.sp-fresh-fields{grid-template-columns:1fr;gap:11px}
	.sp-fresh-submit-wrap{padding-top:1px}
	.sp-fresh-menu{position:fixed;left:14px;right:14px;top:auto;bottom:18px;width:auto;max-height:60vh}
}

/* 1.6.0 compact range popovers */
.sp-fresh-fields-v2{grid-template-columns:minmax(260px,1.45fr) minmax(220px,1.05fr) minmax(150px,.72fr) minmax(150px,.72fr) 128px!important}
.sp-range-field{position:relative;min-width:0}
.sp-range-trigger{width:100%;height:44px;border:1px solid var(--sp-border);border-radius:8px;background:#fff;padding:0 12px;display:flex;align-items:center;justify-content:space-between;color:#26374d;font:500 12px/1 Manrope,Arial,sans-serif;cursor:pointer}
.sp-range-field.is-open .sp-range-trigger{border-color:#269fb2;box-shadow:0 0 0 2px rgba(38,159,178,.08)}
.sp-range-popover{position:absolute;z-index:100000;top:calc(100% + 8px);left:0;width:390px;padding:16px;background:#fff;border:1px solid #dce4ee;border-radius:9px;box-shadow:0 14px 32px rgba(18,42,75,.18);display:grid;grid-template-columns:1fr 16px 1fr;gap:6px;align-items:end}
.sp-range-popover[hidden]{display:none!important}.sp-range-col label{display:block;margin:0 0 9px;color:#354052;font-size:12px;font-weight:650}.sp-range-col select{width:100%;height:42px;border:1px solid #cfd8e4;border-radius:8px;background:#fff;padding:0 10px;color:#4a5565;font-size:12px;outline:none}.sp-range-dash{align-self:end;height:42px;display:flex;align-items:center;justify-content:center;color:#808a98}.sp-range-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1024px){.sp-fresh-fields-v2{grid-template-columns:1fr 1fr!important}.sp-range-popover{width:min(390px,calc(100vw - 42px))}}
@media(max-width:767px){.sp-fresh-fields-v2{grid-template-columns:1fr!important}.sp-range-popover{position:fixed;left:16px;right:16px;top:auto;bottom:18px;width:auto;grid-template-columns:1fr;gap:11px}.sp-range-dash{display:none}}


/* 1.7.0 editable range comboboxes */
.sp-range-col{min-width:0}
.sp-range-combo{position:relative;width:100%}
.sp-range-input{
	width:100%!important;
	height:42px!important;
	min-height:42px!important;
	padding:0 34px 0 11px!important;
	border:1px solid #cfd8e4!important;
	border-radius:8px!important;
	background:#fff!important;
	color:#354052!important;
	box-shadow:none!important;
	outline:none!important;
	font:500 12px/1 Manrope,Arial,sans-serif!important;
}
.sp-range-combo.is-open .sp-range-input{
	border-color:#269fb2!important;
	box-shadow:0 0 0 2px rgba(38,159,178,.08)!important;
}
.sp-combo-chevron{
	position:absolute;
	right:13px;
	top:16px;
	width:8px;height:8px;
	border-right:1.5px solid #354052;
	border-bottom:1.5px solid #354052;
	transform:rotate(45deg);
	pointer-events:none;
}
.sp-range-combo.is-open .sp-combo-chevron{transform:rotate(225deg);top:19px}
.sp-combo-menu{
	position:absolute;
	z-index:100010;
	top:calc(100% + 5px);
	left:0;
	width:100%;
	max-height:310px;
	overflow:auto;
	padding:5px;
	border:1px solid #d8e0ea;
	border-radius:8px;
	background:#fff;
	box-shadow:0 12px 28px rgba(18,42,75,.16);
}
.sp-combo-menu[hidden]{display:none!important}
.sp-combo-option{
	display:block;
	width:100%;
	min-height:38px;
	padding:8px 10px;
	border:0;
	border-radius:6px;
	background:transparent;
	color:#2f3947;
	text-align:left;
	cursor:pointer;
	font:500 12px/1.25 Manrope,Arial,sans-serif;
}
.sp-combo-option:hover{background:#f2f4f7}
.sp-search-admin-note{
	margin-top:9px;
	padding:8px 10px;
	border-radius:6px;
	background:#fff8d9;
	color:#5f5012;
	font-size:11px;
	line-height:1.4;
}
@media(max-width:767px){
	.sp-combo-menu{position:relative;top:5px;max-height:230px}
}


/* =========================================================
   1.8.2 — Hero geometry / alignment
   ---------------------------------------------------------
   1) Search left edge aligns with the hero copy.
   2) Desktop search card gets the stepped/curved top edge
      from the approved mockup instead of a plain rectangle.
   ========================================================= */

/*
 * The Elementor template already gives .sp-hero-search-wrap its
 * horizontal page padding. An older template rule also padded its
 * inner container, effectively doubling the left/right spacing.
 * Kill only that second padding layer.
 */
body .sp-hero-search-wrap > .e-con-inner{
	padding-left:0!important;
	padding-right:0!important;
}

/* Keep the actual widget at the full available aligned width. */
body .sp-hero-search-wrap .elementor-widget-spitoulis-hero-search-fresh,
body .sp-hero-search-wrap .elementor-widget-container{
	width:100%!important;
	max-width:none!important;
}

/* Desktop / laptop mockup shape. */
@media(min-width:768px){
	body .sp-fresh-search{
		position:relative!important;
		isolation:isolate;
		overflow:visible!important;

		/* The white surfaces are drawn by the pseudo-elements below. */
		background:transparent!important;
		border:0!important;
		border-radius:0!important;
		box-shadow:none!important;

		padding:0 16px 16px!important;
	}

	/*
	 * Main body: begins below the raised tab shelf.
	 * Its top edge is therefore visible only after the curved join.
	 */
	body .sp-fresh-search::before{
		content:"";
		position:absolute;
		z-index:-2;
		left:0;
		right:0;
		top:31px;
		bottom:0;
		background:#fff;
		border:1px solid #e4eaf1;
		border-radius:0 14px 14px 14px;
		box-shadow:0 14px 35px rgba(16,43,87,.13);
		pointer-events:none;
	}

	/*
	 * Raised shelf for the tabs. It intentionally remains wider than
	 * the two current tabs, just like the mockup.
	 */
	body .sp-fresh-tabs{
		position:relative!important;
		z-index:2!important;
		width:clamp(430px,30vw,545px)!important;
		height:44px!important;
		margin:0 0 10px -16px!important;
		padding:8px 16px 7px!important;

		background:#fff!important;
		border:1px solid #e4eaf1!important;
		border-right:0!important;
		border-bottom:0!important;
		border-radius:14px 0 0 0!important;

		overflow:visible!important;
	}

	/*
	 * Smooth descending join between the raised tabs shelf and the
	 * lower full-width search body.
	 * SVG path = true curved edge (not an angled polygon).
	 */
	body .sp-fresh-tabs::after{
		content:"";
		position:absolute;
		z-index:-1;
		left:calc(100% - 1px);
		top:-1px;
		width:96px;
		height:46px;
		pointer-events:none;

		background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 46' preserveAspectRatio='none'%3E%3Cpath d='M0 0H25C42 0 44 31 70 31H96V46H0Z' fill='%23ffffff'/%3E%3Cpath d='M0 .5H25C42 .5 44 31.5 70 31.5H96' fill='none' stroke='%23e4eaf1' stroke-width='1'/%3E%3C/svg%3E");
		background-repeat:no-repeat;
		background-size:100% 100%;
	}

	/* Fields sit above the pseudo-element body. */
	body .sp-fresh-fields{
		position:relative;
		z-index:1;
	}

	/* Remove the old straight divider; the shelf/body geometry now supplies it. */
	body .sp-fresh-tabs{
		border-bottom:0!important;
	}
}

/*
 * Tablet/mobile: keep the simple rounded card. The mockup notch would
 * waste valuable width here, so restore the compact responsive form.
 */
@media(max-width:767px){
	body .sp-hero-search-wrap > .e-con-inner{
		padding-left:0!important;
		padding-right:0!important;
	}

	body .sp-fresh-search{
		background:#fff!important;
		border:1px solid #e4eaf1!important;
		border-radius:12px!important;
		box-shadow:0 14px 35px rgba(16,43,87,.13)!important;
		padding:10px 11px 12px!important;
	}

	body .sp-fresh-search::before,
	body .sp-fresh-tabs::after{
		display:none!important;
	}

	body .sp-fresh-tabs{
		width:100%!important;
		height:auto!important;
		margin:0 0 13px!important;
		padding:0 0 10px!important;
		background:transparent!important;
		border:0!important;
		border-bottom:1px solid #e9eef4!important;
		border-radius:0!important;
	}
}


/* =========================================================
   2.0.0 — Keep the mockup stepped line on mobile too
   ========================================================= */
@media(max-width:767px){
	body .sp-fresh-search{
		position:relative!important;
		isolation:isolate!important;
		overflow:visible!important;
		background:transparent!important;
		border:0!important;
		border-radius:0!important;
		box-shadow:none!important;
		padding:0 11px 12px!important;
	}

	body .sp-fresh-search::before{
		display:block!important;
		content:"";
		position:absolute;
		z-index:-2;
		left:0;
		right:0;
		top:31px;
		bottom:0;
		background:#fff;
		border:1px solid #e4eaf1;
		border-radius:0 12px 12px 12px;
		box-shadow:0 14px 35px rgba(16,43,87,.13);
		pointer-events:none;
	}

	body .sp-fresh-tabs{
		position:relative!important;
		z-index:2!important;
		width:210px!important;
		height:44px!important;
		margin:0 0 10px -11px!important;
		padding:8px 11px 7px!important;
		background:#fff!important;
		border:1px solid #e4eaf1!important;
		border-right:0!important;
		border-bottom:0!important;
		border-radius:12px 0 0 0!important;
		overflow:visible!important;
	}

	body .sp-fresh-tabs::after{
		display:block!important;
		content:"";
		position:absolute;
		z-index:-1;
		left:calc(100% - 1px);
		top:-1px;
		width:72px;
		height:46px;
		pointer-events:none;
		background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 46' preserveAspectRatio='none'%3E%3Cpath d='M0 0H18C32 0 34 31 54 31H72V46H0Z' fill='%23ffffff'/%3E%3Cpath d='M0 .5H18C32 .5 34 31.5 54 31.5H72' fill='none' stroke='%23e4eaf1' stroke-width='1'/%3E%3C/svg%3E");
		background-repeat:no-repeat;
		background-size:100% 100%;
	}

	body .sp-fresh-fields{
		position:relative;
		z-index:1;
	}
}


/* =========================================================
   2.0.1 — Mobile dropdown/popover layering + clear exit
   ========================================================= */
@media(max-width:767px){

	/* Category dropdown belongs to the Category field, never above the tabs. */
	body .sp-fresh-select{
		position:relative!important;
		z-index:40!important;
	}
	body .sp-fresh-select.is-open{
		z-index:100090!important;
	}
	body .sp-fresh-menu{
		position:absolute!important;
		left:0!important;
		right:auto!important;
		top:calc(100% + 6px)!important;
		bottom:auto!important;
		width:100%!important;
		min-width:100%!important;
		max-height:285px!important;
		overflow-y:auto!important;
		padding:6px!important;
		margin:0!important;
		border:1px solid #dce4ee!important;
		border-radius:10px!important;
		background:#fff!important;
		box-shadow:0 14px 30px rgba(18,42,75,.18)!important;
		z-index:100100!important;
	}

	/* Range panel is anchored below the field, not as a page-level sheet. */
	body .sp-range-field{
		position:relative!important;
		z-index:30!important;
	}
	body .sp-range-field.is-open{
		z-index:100080!important;
	}
	body .sp-range-popover{
		position:absolute!important;
		left:0!important;
		right:auto!important;
		top:calc(100% + 6px)!important;
		bottom:auto!important;
		width:100%!important;
		min-width:100%!important;
		max-width:none!important;
		padding:12px!important;
		margin:0!important;
		border:1px solid #dce4ee!important;
		border-radius:10px!important;
		background:#fff!important;
		box-shadow:0 14px 30px rgba(18,42,75,.18)!important;
		z-index:100100!important;
		display:grid!important;
		grid-template-columns:1fr!important;
		gap:10px!important;
	}
	body .sp-range-dash{
		display:none!important;
	}

	/* Option lists stay inside their popup. */
	body .sp-range-combo{
		position:relative!important;
	}
	body .sp-combo-menu{
		position:absolute!important;
		left:0!important;
		right:auto!important;
		top:calc(100% + 5px)!important;
		bottom:auto!important;
		width:100%!important;
		max-height:205px!important;
		overflow-y:auto!important;
		z-index:100120!important;
	}
}
