/**
 * Desplegable del buscador de la cabecera.
 *
 * Qué se arregla respecto al panel que traía el tema padre:
 *  - El panel medía lo mismo que el campo y cada fila era un flex con el
 *    precio en `white-space: nowrap` y el nombre sin `min-width: 0`. El nombre
 *    no podía encogerse, así que se partía en una palabra por línea y el
 *    conjunto se salía: de ahí la barra de desplazamiento horizontal. Aquí el
 *    nombre es el que cede (`min-width: 0`) y el precio va debajo, no al lado.
 *  - El desplazamiento vertical vive en la lista, no en el panel, para que la
 *    cabecera y el pie queden siempre a la vista.
 */

.tr-hdr__search .tr-busc {
	/* Ancho propio, anclado al borde derecho del campo y sin salirse nunca. */
	left: auto;
	right: 0;
	width: min(520px, calc(100vw - 2rem));
	max-width: none;
	/* El padre limita el panel entero a 360 px y eso recortaba el pie: aquí el
	   único que se limita es el listado, para que cabecera y pie no se pierdan. */
	max-height: none;
	top: calc(100% + 10px);
	padding: 0;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 44px rgba(0, 0, 0, .18);
	/* El recorte redondea las esquinas del contenido; el scroll va en la lista. */
	overflow: hidden;
	/* Por encima del banner y del resto de la página. */
	z-index: 1200;
}

.tr-busc__titulo {
	margin: 0;
	padding: .875rem 1.125rem .75rem;
	border-bottom: 1px solid #ececed;
	font-size: .8125rem;
	line-height: 1.3;
	color: #595959;
}

.tr-busc__lista {
	list-style: none;
	margin: 0;
	padding: 0;
	/* Unas 4 filas y media: invita a seguir bajando sin comerse la pantalla. */
	max-height: min(58vh, 340px);
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
}

.tr-busc__grupo {
	padding: .625rem 1.125rem .25rem;
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #767676;
}

.tr-busc__fila + .tr-busc__fila { border-top: 1px solid #f1f1f2; }

.tr-busc__enlace {
	display: flex;
	align-items: center;
	gap: .875rem;
	/* Altura pareja en todas las filas, con nombre de una o de dos líneas. */
	min-height: 88px;
	padding: .75rem 1.125rem;
	color: #111;
	text-decoration: none;
}

.tr-busc__fila.is-activa .tr-busc__enlace,
.tr-busc__enlace:hover,
.tr-busc__enlace:focus-visible {
	background: #fafafa;
	outline: none;
}

.tr-busc__fila.is-activa .tr-busc__enlace { box-shadow: inset 3px 0 0 var(--oz-brand-accent, #e74520); }

.tr-busc__foto {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 10px;
	background: #f4f4f5;
	overflow: hidden;
}

.tr-busc__foto img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;   /* las fotos de producto vienen con fondo blanco */
}

.tr-busc__datos {
	/* Esta es la pieza clave: sin esto el texto no puede encoger y desborda. */
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .375rem;
}

.tr-busc__nombre {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	font-size: .9375rem;
	font-weight: 500;
	line-height: 1.35;
	color: #111;
	/* Nombres con códigos largos (SS67D-240A) parten en vez de desbordar. */
	overflow-wrap: anywhere;
	/* Alto fijo de dos líneas —el recorte de arriba ya impide que pase de ahí—
	   para que TODAS las filas midan exactamente lo mismo, ocupe el nombre una
	   línea o dos, y el listado no «baile» al desplazarse. */
	height: calc(1.35em * 2);
}

.tr-busc__precio {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	flex-wrap: wrap;
	/* La línea del precio mide lo mismo esté llena o vacía (218 productos no
	   tienen precio cargado): mismo tamaño e interlineado que el precio que
	   va dentro, para que la fila no cambie de alto. */
	font-size: 1rem;
	line-height: 1.3125;
	min-height: 1.3125em;
}

.tr-busc__ahora {
	font-size: inherit;
	line-height: inherit;
	font-weight: 700;
	color: #111;
}

.tr-busc__antes {
	font-size: .8125rem;
	color: #767676;
	text-decoration: line-through;
}

.tr-busc__flecha {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e74520' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E") no-repeat center / contain;
}

.tr-busc__vacio {
	padding: 1.25rem 1.125rem;
	font-size: .9375rem;
	color: #595959;
}

.tr-busc__todos {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .875rem 1.125rem;
	border-top: 1px solid #ececed;
	background: #fff;
	font-size: .9375rem;
	font-weight: 700;
	color: var(--oz-brand-accent, #e74520);
	text-decoration: none;
}

.tr-busc__todos::after {
	content: "";
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e74520' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
}

.tr-busc__todos:hover,
.tr-busc__todos:focus-visible {
	background: #fff6f3;
	text-decoration: underline;
}

/* Tablet y móvil: el buscador ocupa todo el ancho de la cabecera, así que el
   panel se ajusta a ese ancho y deja aire a los lados de la pantalla. */
@media (max-width: 1199px) {
	.tr-hdr__search .tr-busc {
		left: 0;
		right: 0;
		width: auto;
	}
}

@media (max-width: 600px) {
	.tr-busc__enlace {
		min-height: 78px;
		gap: .75rem;
		padding: .625rem .875rem;
	}
	.tr-busc__foto { width: 52px; height: 52px; }
	.tr-busc__nombre { font-size: .875rem; }
	.tr-busc__ahora { font-size: .9375rem; }
	.tr-busc__titulo,
	.tr-busc__todos { padding-inline: .875rem; }
	.tr-busc__lista { max-height: min(52vh, 300px); }
}

@media (prefers-reduced-motion: no-preference) {
	.tr-busc__enlace { transition: background-color .15s ease; }
}
