/**
 * Site-wide header search popover.
 *
 * @package Haven_Theme
 * @since   1.0.0
 */

.haven-global-search-toggle {
	align-items: center;
	appearance: none;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.10)),
		var(--haven-header-surface-effective-fill, rgba(255, 255, 255, 0.12));
	border: 1px solid var(--haven-header-panel-border, rgba(196, 160, 120, 0.26));
	border-radius: 999px;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.46),
		0 10px 24px rgba(30, 26, 20, 0.10);
	color: var(--haven-color-heading, #1e1a14);
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	height: var(--haven-header-cta-height, 3rem);
	justify-content: center;
	margin: 0;
	padding: 0;
	position: relative;
	width: var(--haven-header-cta-height, 3rem);
	-webkit-backdrop-filter: blur(18px) saturate(1.35);
	backdrop-filter: blur(18px) saturate(1.35);
	transition:
		background 0.22s ease,
		border-color 0.22s ease,
		box-shadow 0.22s ease,
		color 0.22s ease,
		transform 0.22s ease;
}

.haven-global-search-toggle::before {
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
	border-radius: inherit;
	content: "";
	inset: 1px 9px auto;
	height: 1px;
	opacity: 0.72;
	pointer-events: none;
	position: absolute;
}

.haven-global-search-toggle:hover,
.haven-global-search-toggle:focus-visible,
.haven-global-search-toggle[aria-expanded="true"] {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.48), rgba(196, 160, 120, 0.18)),
		var(--haven-header-surface-effective-fill, rgba(255, 255, 255, 0.18));
	border-color: rgba(196, 160, 120, 0.48);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.58),
		0 14px 30px rgba(30, 26, 20, 0.14);
	outline: none;
	transform: translateY(-1px);
}

.haven-global-search-toggle:focus-visible {
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.58),
		0 0 0 3px rgba(196, 160, 120, 0.22),
		0 14px 30px rgba(30, 26, 20, 0.14);
}

.haven-global-search-toggle__icon,
.haven-global-search__field-icon,
.haven-global-search__result-icon {
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.haven-header__actions {
	align-items: center;
	display: flex;
	gap: 12px;
}

.haven-header__mobile-end {
	align-items: center;
	gap: 10px;
}

.haven-header--luxury-centered.is-home:not(.is-scrolled) .haven-global-search-toggle,
.haven-header--luxury-left.is-home:not(.is-scrolled) .haven-global-search-toggle,
.haven-header--bg-liquid-deep .haven-global-search-toggle,
.haven-header--bg-solid-dark .haven-global-search-toggle,
.haven-header--bg-transparent:not(.is-scrolled) .haven-global-search-toggle {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.20), rgba(255, 255, 255, 0.06)),
		rgba(255, 255, 255, 0.11);
	border-color: rgba(255, 255, 255, 0.30);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.22),
		0 12px 28px rgba(0, 0, 0, 0.18);
	color: #fff;
}

.haven-header--luxury-centered.is-home:not(.is-scrolled) .haven-global-search-toggle:hover,
.haven-header--luxury-centered.is-home:not(.is-scrolled) .haven-global-search-toggle:focus-visible,
.haven-header--luxury-centered.is-home:not(.is-scrolled) .haven-global-search-toggle[aria-expanded="true"],
.haven-header--luxury-left.is-home:not(.is-scrolled) .haven-global-search-toggle:hover,
.haven-header--luxury-left.is-home:not(.is-scrolled) .haven-global-search-toggle:focus-visible,
.haven-header--luxury-left.is-home:not(.is-scrolled) .haven-global-search-toggle[aria-expanded="true"],
.haven-header--bg-liquid-deep .haven-global-search-toggle:hover,
.haven-header--bg-liquid-deep .haven-global-search-toggle:focus-visible,
.haven-header--bg-liquid-deep .haven-global-search-toggle[aria-expanded="true"],
.haven-header--bg-solid-dark .haven-global-search-toggle:hover,
.haven-header--bg-solid-dark .haven-global-search-toggle:focus-visible,
.haven-header--bg-solid-dark .haven-global-search-toggle[aria-expanded="true"],
.haven-header--bg-transparent:not(.is-scrolled) .haven-global-search-toggle:hover,
.haven-header--bg-transparent:not(.is-scrolled) .haven-global-search-toggle:focus-visible,
.haven-header--bg-transparent:not(.is-scrolled) .haven-global-search-toggle[aria-expanded="true"] {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.30), rgba(196, 160, 120, 0.16)),
		rgba(255, 255, 255, 0.16);
	border-color: rgba(255, 255, 255, 0.54);
	color: #fff;
}

.haven-global-search[hidden],
.haven-global-search__results[hidden],
.haven-global-search__clear[hidden] {
	display: none;
}

.haven-global-search {
	--haven-global-search-bg: rgba(255, 252, 246, 0.86);
	--haven-global-search-bg-soft: rgba(246, 241, 232, 0.66);
	--haven-global-search-border: rgba(196, 160, 120, 0.28);
	--haven-global-search-text: #1e1a14;
	--haven-global-search-muted: rgba(30, 26, 20, 0.62);
	--haven-global-search-accent: #9f7d50;
	--haven-global-search-hover: rgba(196, 160, 120, 0.12);
	color: var(--haven-global-search-text);
	left: var(--haven-global-search-left, 18px);
	position: fixed;
	top: var(--haven-global-search-top, 90px);
	width: var(--haven-global-search-width, min(460px, calc(100vw - 36px)));
	z-index: 100000;
}

.haven-global-search--dark {
	--haven-global-search-bg: rgba(30, 26, 20, 0.78);
	--haven-global-search-bg-soft: rgba(54, 46, 37, 0.64);
	--haven-global-search-border: rgba(196, 160, 120, 0.26);
	--haven-global-search-text: rgba(250, 248, 244, 0.94);
	--haven-global-search-muted: rgba(250, 248, 244, 0.58);
	--haven-global-search-accent: #d7b487;
	--haven-global-search-hover: rgba(196, 160, 120, 0.12);
}

.haven-global-search__panel {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.14), transparent 38%),
		linear-gradient(180deg, var(--haven-global-search-bg), var(--haven-global-search-bg-soft));
	border: 1px solid var(--haven-global-search-border);
	border-radius: 7px;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.22),
		0 24px 70px rgba(0, 0, 0, 0.34),
		0 6px 18px rgba(0, 0, 0, 0.18);
	overflow: hidden;
	-webkit-backdrop-filter: blur(30px) saturate(1.45);
	backdrop-filter: blur(30px) saturate(1.45);
}

.haven-global-search__form {
	margin: 0;
	padding: 10px;
}

.haven-global-search__field {
	align-items: center;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(196, 160, 120, 0.24);
	border-radius: 4px;
	display: flex;
	gap: 10px;
	min-height: 46px;
	padding: 0 12px;
	transition:
		background 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.haven-global-search__field:focus-within {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(196, 160, 120, 0.56);
	box-shadow: 0 0 0 3px rgba(196, 160, 120, 0.13);
}

.haven-global-search--light .haven-global-search__field {
	background: rgba(255, 255, 255, 0.52);
}

.haven-global-search__field-icon {
	color: var(--haven-global-search-accent);
	flex: 0 0 auto;
	opacity: 0.82;
}

.haven-global-search__input {
	appearance: none;
	background: transparent;
	border: 0;
	box-shadow: none !important;
	color: var(--haven-global-search-text);
	font-family: var(--haven-font-body, inherit);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	min-width: 0;
	outline: none !important;
	padding: 13px 0;
	width: 100%;
}

.haven-global-search__input::-webkit-search-cancel-button {
	display: none;
}

.haven-global-search__input::placeholder {
	color: var(--haven-global-search-muted);
}

.haven-global-search__clear {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--haven-global-search-muted);
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	font-family: var(--haven-font-body, inherit);
	font-size: 18px;
	height: 28px;
	justify-content: center;
	line-height: 1;
	padding: 0 0 2px;
	width: 28px;
}

.haven-global-search__clear:hover,
.haven-global-search__clear:focus-visible {
	color: var(--haven-global-search-text);
	outline: none;
}

.haven-global-search__results {
	border-top: 1px solid rgba(196, 160, 120, 0.16);
	max-height: min(410px, calc(var(--haven-global-search-max-height, 520px) - 68px));
	overflow-y: auto;
	padding: 2px 0 8px;
	scrollbar-color: rgba(196, 160, 120, 0.28) transparent;
	scrollbar-width: thin;
}

.haven-global-search__results::-webkit-scrollbar {
	width: 4px;
}

.haven-global-search__results::-webkit-scrollbar-track {
	background: transparent;
}

.haven-global-search__results::-webkit-scrollbar-thumb {
	background: rgba(196, 160, 120, 0.28);
	border-radius: 2px;
}

.haven-global-search__group + .haven-global-search__group {
	border-top: 1px solid rgba(196, 160, 120, 0.12);
}

.haven-global-search__group-label {
	color: var(--haven-global-search-accent);
	font-family: var(--haven-font-body, inherit);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.20em;
	margin: 0;
	opacity: 0.78;
	padding: 12px 16px 4px;
	text-transform: uppercase;
}

.haven-global-search__result {
	align-items: flex-start;
	background: transparent;
	border: 0;
	color: var(--haven-global-search-muted);
	display: flex;
	gap: 10px;
	padding: 10px 16px;
	text-decoration: none;
	transition:
		background 0.14s ease,
		color 0.14s ease;
}

.haven-global-search__result:hover,
.haven-global-search__result:focus-visible {
	background: var(--haven-global-search-hover);
	color: var(--haven-global-search-text);
	outline: none;
}

.haven-global-search__result-icon {
	color: var(--haven-global-search-accent);
	flex: 0 0 auto;
	margin-top: 4px;
	opacity: 0.58;
	stroke-width: 1.5;
}

.haven-global-search__result:hover .haven-global-search__result-icon,
.haven-global-search__result:focus-visible .haven-global-search__result-icon {
	opacity: 1;
}

.haven-global-search__result-copy {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.haven-global-search__result-title {
	color: inherit;
	font-family: var(--haven-font-body, inherit);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.42;
}

.haven-global-search__result-title mark {
	background: transparent;
	color: var(--haven-global-search-accent);
	font-weight: 600;
	padding: 0;
}

.haven-global-search__result-meta {
	color: var(--haven-global-search-muted);
	font-size: 11px;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.haven-global-search__empty {
	color: var(--haven-global-search-muted);
	font-family: var(--haven-font-body, inherit);
	font-size: 13px;
	font-style: italic;
	margin: 0;
	padding: 18px 16px 20px;
	text-align: center;
}

@media (max-width: 980px) {
	.haven-global-search-toggle--desktop {
		display: none;
	}

	.haven-global-search-toggle--mobile {
		height: 2.55rem;
		width: 2.55rem;
	}
}

@media (max-width: 640px) {
	.haven-global-search {
		width: var(--haven-global-search-width, calc(100vw - 24px));
	}

	.haven-global-search__panel {
		border-radius: 6px;
	}

	.haven-global-search__result-meta {
		white-space: normal;
	}
}

@media (max-width: 480px) {
	.haven-header__mobile-end .haven-global-search-toggle--mobile {
		display: inline-flex;
		height: 2.2rem;
		width: 2.2rem;
	}

	.haven-header__mobile-end {
		gap: 0.32rem;
	}
}

@media (max-width: 370px) {
	.haven-header__mobile-end .haven-global-search-toggle--mobile {
		height: 2rem;
		width: 2rem;
	}

	.haven-header__mobile-end {
		gap: 0.25rem;
	}
}

@media (min-width: 981px) {
	.haven-global-search-toggle--mobile {
		display: none;
	}
}
