/* DeFábrica Core — panel de sugerencias del buscador (assets/js/buscador.js).
   Cuelga del formulario (que tiene position: relative) y ocupa su ancho. Con sitio, productos a la izquierda y
   categorías y marcas a la derecha; estrecho, uno debajo de otro. Usa los tokens del theme si existen (--df-*) y
   valores propios si no. Texto naranja pequeño con --df-naranja-aa (WCAG AA). */
.dfc-buscador {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	z-index: 70;
	container: dfc-buscador / inline-size;
	max-height: min(72vh, 620px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 6px 0 0;
	border: 1px solid var(--df-borde, #e6e8eb);
	border-radius: var(--df-radio-panel, 12px);
	background: var(--df-blanco, #fff);
	box-shadow: 0 14px 32px rgba(20, 30, 40, 0.12);
	color: var(--df-texto, #202328);
	font-size: 0.875rem;
	line-height: 1.35;
	text-align: left;
}

.dfc-buscador[hidden],
.dfc-buscador [hidden] {
	display: none;
}

.dfc-buscador__estado,
.dfc-buscador__oculto {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.dfc-buscador__aviso {
	margin: 0;
	padding: 12px 16px 14px;
	color: var(--df-texto-2, #6d7278);
}

.dfc-buscador__lista {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

.dfc-buscador__titulo {
	padding: 10px 16px 6px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--df-texto-2, #6d7278);
}

/* Sugerencias: enlaces reales (clic central, abrir en otra pestaña) con rol de opción */
.dfc-buscador [role="option"] {
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.dfc-buscador [role="option"]:hover,
.dfc-buscador [role="option"].es-activa {
	background: var(--df-fondo-suave, #f7f8f9);
}

.dfc-buscador [role="option"].es-activa {
	box-shadow: inset 3px 0 0 var(--df-naranja, #fd5b04);
}

/* Producto: foto, nombre con lo buscado en negrita, categoría y referencia, precio */
.dfc-buscador__producto {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	min-height: 72px;
	padding: 8px 16px;
}

.dfc-buscador__foto {
	display: block;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border: 1px solid var(--df-borde-suave, #eee);
	border-radius: var(--df-radio, 8px);
	background: var(--df-blanco, #fff);
}

.dfc-buscador__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dfc-buscador__texto {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.dfc-buscador__nombre {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	color: var(--df-texto, #202328);
}

.dfc-buscador mark {
	background: none;
	color: inherit;
	font-weight: 700;
}

.dfc-buscador__meta {
	overflow: hidden;
	font-size: 0.75rem;
	color: var(--df-texto-2, #6d7278);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dfc-buscador__precio {
	display: grid;
	justify-items: end;
	gap: 1px;
	white-space: nowrap;
}

.dfc-buscador__actual {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--df-naranja-aa, #c84702);
}

.dfc-buscador__desde,
.dfc-buscador__anterior {
	font-size: 0.75rem;
	color: var(--df-texto-2, #6d7278);
}

/* Categorías y marcas */
.dfc-buscador__lado {
	padding-bottom: 4px;
}

.dfc-buscador__termino {
	display: flex;
	gap: 8px;
	align-items: baseline;
	justify-content: space-between;
	padding: 8px 16px;
}

.dfc-buscador__termino-nombre {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dfc-buscador__cantidad {
	flex: none;
	font-size: 0.75rem;
	color: var(--df-texto-2, #6d7278);
}

/* «Ver todos los resultados (N)» */
.dfc-buscador .dfc-buscador__todos {
	position: sticky;
	bottom: 0;
	display: flex;
	gap: 6px;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 16px;
	border-top: 1px solid var(--df-borde-suave, #eee);
	background: var(--df-blanco, #fff);
	font-weight: 600;
	color: var(--df-naranja-aa, #c84702);
}

.dfc-buscador .dfc-buscador__todos:hover,
.dfc-buscador .dfc-buscador__todos.es-activa {
	background: var(--df-naranja-suave, #fff1e8);
}

.dfc-buscador .dfc-buscador__todos.es-activa {
	box-shadow: none;
	text-decoration: underline;
}

.dfc-buscador__flecha {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.dfc-buscador__lista:not(.tiene-productos) .dfc-buscador__titulo {
	padding-top: 4px;
}

/* Con sitio (escritorio): productos a la izquierda; categorías y marcas en una columna a la derecha */
@container dfc-buscador (min-width: 600px) {
	.dfc-buscador__lista.tiene-productos.tiene-lado {
		grid-template-columns: minmax(0, 1fr) 216px;
	}

	.dfc-buscador__lista.tiene-productos.tiene-lado .dfc-buscador__lado {
		margin-bottom: 6px;
		border-left: 1px solid var(--df-borde-suave, #eee);
	}

	.dfc-buscador .dfc-buscador__todos {
		grid-column: 1 / -1;
	}
}

/* Estrecho (móvil): foto más pequeña */
@container dfc-buscador (max-width: 420px) {
	.dfc-buscador__producto {
		grid-template-columns: 48px minmax(0, 1fr) auto;
		gap: 10px;
		min-height: 64px;
		padding-inline: 12px;
	}

	.dfc-buscador__foto {
		width: 48px;
		height: 48px;
	}

	.dfc-buscador__titulo,
	.dfc-buscador__termino,
	.dfc-buscador__aviso {
		padding-inline: 12px;
	}
}

@media (forced-colors: active) {
	.dfc-buscador [role="option"].es-activa {
		outline: 2px solid Highlight;
		outline-offset: -2px;
	}
}
