/**
 * Buscador AJAX (search) — estilos autosuficientes.
 *
 * Namespaced bajo `.wck-search`. Variables propias `--wck-se-*` con fallback a
 * los tokens del tema. Pensado para vivir en una barra/cabecera: el desplegable
 * se ancla bajo el campo.
 */
.wck-search {
	--wck-se-z: 9990;
	--wck-se-bg: var(--white, #ffffff);
	--wck-se-ink: var(--ink, #181715);
	--wck-se-ink-2: var(--ink-2, #4a4843);
	--wck-se-muted: var(--muted, #8a8780);
	--wck-se-line: var(--line, #e8e6e1);
	--wck-se-tint: var(--tint, #f7f6f2);
	--wck-se-accent: var(--accent, #6366f1);
	--wck-se-mark: color-mix(in srgb, var(--accent, #6366f1) 18%, transparent);
	--wck-se-shadow: var(--sh-3, 0 16px 40px rgba(0, 0, 0, 0.14));
	--wck-se-r: var(--r-md, 12px);
	--wck-se-r-sm: var(--r-sm, 8px);
	--wck-se-font: var(--font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);

	position: relative;
	display: block;
	width: 100%;
	font-family: var(--wck-se-font);
	color: var(--wck-se-ink);
}

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

/* Campo de texto */
.wck-search-input {
	width: 100%;
	height: 42px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--wck-se-line);
	border-radius: var(--wck-se-r-sm);
	background: var(--wck-se-bg);
	color: var(--wck-se-ink);
	font: inherit;
	font-size: 0.95rem;
	line-height: 1.2;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.wck-search-input::placeholder {
	color: var(--wck-se-muted);
}

.wck-search-input:focus {
	border-color: var(--wck-se-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wck-se-accent) 20%, transparent);
}

/* Quitar la "x" nativa del input[type=search] en algunos navegadores */
.wck-search-input::-webkit-search-decoration,
.wck-search-input::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

/* Desplegable de resultados */
.wck-search-results {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: var(--wck-se-z);
	max-height: min(70vh, 420px);
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	margin: 0;
	padding: 6px;
	border: 1px solid var(--wck-se-line);
	border-radius: var(--wck-se-r);
	background: var(--wck-se-bg);
	box-shadow: var(--wck-se-shadow);
}

.wck-search-results[hidden] {
	display: none;
}

/* Cada resultado */
.wck-search-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 10px;
	border-radius: var(--wck-se-r-sm);
	text-decoration: none;
	color: var(--wck-se-ink);
	cursor: pointer;
}

.wck-search-item:hover,
.wck-search-item.is-active {
	background: var(--wck-se-tint);
}

.wck-search-item__thumb {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: var(--wck-se-r-sm);
	overflow: hidden;
	background: var(--wck-se-tint);
}

.wck-search-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
}

.wck-search-item__body {
	flex: 1 1 auto;
	min-width: 0;
}

.wck-search-item__name {
	display: block;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--wck-se-ink);
	/* recorta a 2 líneas */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wck-search-item__name mark {
	background: var(--wck-se-mark);
	color: inherit;
	padding: 0 1px;
	border-radius: 2px;
}

.wck-search-item__meta {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-top: 2px;
	font-size: 0.8rem;
	color: var(--wck-se-muted);
}

.wck-search-item__price {
	font-weight: 600;
	color: var(--wck-se-ink-2);
	white-space: nowrap;
}

.wck-search-item__sku {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Mensajes (sin resultados / buscando) */
.wck-search-note {
	padding: 14px 12px;
	margin: 0;
	font-size: 0.88rem;
	color: var(--wck-se-muted);
	text-align: center;
}

.wck-search-note.is-loading::after {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 8px;
	vertical-align: -2px;
	border-radius: 50%;
	border: 2px solid var(--wck-se-line);
	border-top-color: var(--wck-se-accent);
	animation: wck-se-spin 0.7s linear infinite;
}

@keyframes wck-se-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wck-search-input {
		transition: none;
	}
	.wck-search-note.is-loading::after {
		animation-duration: 1.4s;
	}
}
