/**
 * Buscador de alimentos — Cosecha Colectiva 1.2.0
 *
 * Paleta: crema y verde oliva (boceto Proyecto/Modelo buscador).
 * Contraste (AA): el texto blanco va solo sobre #5c7128 o más oscuro;
 * #75903a queda para iconos y acentos.
 *
 * 1.2.0: Ubicación y Tipo de negocio usan un desplegable propio (.cc-b-dd);
 * se eliminó la fila de tipos con flechas de la 1.1.x.
 */

[v-cloak] { display: none !important; }

.cc-buscador {
	--cb-cream: #faf7ee;
	--cb-cream-border: #e7ddc4;
	--cb-green: #75903a;
	--cb-green-dark: #5c7128;
	--cb-green-deeper: #4a5c20;
	--cb-ink: #33301f;
	--cb-ink-soft: #6b6550;
	--cb-chip-bg: #f3e6c8;
	--cb-chip-text: #6f5121;
	--cb-focus: #3d4f12;
	max-width: 1152px;
	margin: 2.5rem auto;
	padding: 0 1rem;
	font-family: 'Inter', 'Segoe UI', sans-serif;
	color: var(--cb-ink);
	box-sizing: border-box;
}
.cc-buscador *,
.cc-buscador *::before,
.cc-buscador *::after { box-sizing: border-box; }

.cc-buscador button,
.cc-buscador input,
.cc-buscador select { font-family: inherit; }

/* El tema (main.css) fija «p, li, span { color: var(--color-default) }» y
   pintaba de gris el texto dentro de botones y chips verdes. :where() deja
   la especificidad en 0,1,0 para que cualquier regla propia con clase gane. */
.cc-buscador :where(span, p, li) { color: inherit; }

/* Texto solo para lectores de pantalla. */
.cc-b-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cc-buscador svg { display: block; }

/* Foco visible y claro en todo lo interactivo. */
.cc-buscador a:focus-visible,
.cc-buscador button:focus-visible,
.cc-buscador select:focus-visible,
.cc-buscador input:focus-visible {
	outline: 3px solid var(--cb-focus);
	outline-offset: 2px;
}

/* ---------- Encabezado ---------- */
.cc-b-hero {
	background-color: var(--cb-cream);
	border-radius: 24px;
	padding: 48px 40px 72px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.cc-b-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0.5;
}
/* align-items en .cc-b-hero-text (editable desde Elementor, control
   "Alineación") mueve el bloque del título/mensaje entero hacia ese
   lado; el texto adentro de cada uno se mantiene a la izquierda
   para que los párrafos largos se sigan leyendo bien. */
.cc-b-hero-text { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }
.cc-b-hero h2 {
	text-align: left;
	font-size: 2.25rem;
	font-weight: 800;
	color: var(--cb-ink);
	margin: 0 0 10px;
	max-width: 640px;
}
.cc-b-hero p {
	text-align: left;
	color: var(--cb-ink-soft);
	max-width: 560px;
	margin: 0;
	line-height: 1.5;
}

/* ---------- Tarjeta de búsqueda ---------- */
.cc-b-searchcard {
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 12px 30px rgba(51, 48, 31, 0.10);
	border: 1px solid var(--cb-cream-border);
	padding: 18px;
	margin: -44px 16px 0;
	position: relative;
	z-index: 2;
}
.cc-b-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: stretch;
}
.cc-b-field {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1 1 180px;
	min-width: 0;
}
.cc-b-field-buscar { flex: 2 1 280px; }
.cc-b-field-cond { flex: 1 1 250px; }

.cc-b-ico {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px; height: 20px;
	color: var(--cb-green);
	pointer-events: none;
	z-index: 1;
}
.cc-b-ico svg { width: 100%; height: 100%; }

/* .cc-buscador .cc-b-field delante: los estilos de formulario del tema y de
   Elementor (borde gris de 2 px, relleno de 20 px, esquinas rectas) ganaban
   a una sola clase. */
.cc-buscador .cc-b-field .cc-b-input {
	width: 100%;
	height: 50px;
	border: 1.5px solid var(--cb-cream-border);
	border-radius: 12px;
	padding: 0 14px 0 44px;
	font-size: 0.95rem;
	line-height: normal;
	color: var(--cb-ink);
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	text-overflow: ellipsis;
	margin: 0;
	box-shadow: none;
}
.cc-b-input::placeholder { color: var(--cb-ink-soft); opacity: 1; }
.cc-buscador .cc-b-field-buscar .cc-b-input { padding-right: 46px; }
.cc-buscador .cc-b-field .cc-b-input:focus {
	outline: none;
	border-color: var(--cb-green-dark);
	box-shadow: 0 0 0 3px rgba(117, 144, 58, 0.25);
}
.cc-buscador .cc-b-input:focus-visible { outline: none; }

/* Botón ✕ del campo de búsqueda: área táctil de 44 px. */
.cc-b-clear {
	position: absolute;
	right: 3px;
	top: 50%;
	transform: translateY(-50%);
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	background: none;
	border: none;
	border-radius: 10px;
	color: var(--cb-ink-soft);
	cursor: pointer;
	padding: 0;
}
.cc-b-clear svg { width: 18px; height: 18px; }
.cc-b-clear:hover { color: var(--cb-ink); background: var(--cb-cream); }

/* Sugerencias del autocompletado. */
.cc-b-lista {
	position: absolute;
	left: 0; right: 0;
	top: calc(100% + 6px);
	z-index: 30;
	margin: 0;
	padding: 6px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--cb-cream-border);
	border-radius: 14px;
	box-shadow: 0 14px 32px rgba(51, 48, 31, 0.16);
	max-height: 340px;
	overflow-y: auto;
}
.cc-b-opcion {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 44px;
	padding: 8px 12px;
	border-radius: 10px;
	cursor: pointer;
	color: var(--cb-ink);
	margin: 0;
}
.cc-b-opcion-activa { background: var(--cb-cream); }
.cc-b-opcion-nombre { font-weight: 600; }
.cc-b-opcion-nombre mark { background: #f6e7a6; color: inherit; border-radius: 3px; padding: 0 1px; }
.cc-b-opcion-n { color: var(--cb-ink-soft); font-size: 0.8rem; white-space: nowrap; }

/* Condición: grupo segmentado. */
.cc-b-field-cond {
	border: 1.5px solid var(--cb-cream-border);
	border-radius: 12px;
	height: 50px;
	padding: 3px 3px 3px 40px;
	gap: 3px;
	background: #fff;
}
.cc-b-seg {
	flex: 1 1 0;
	min-height: 44px;
	height: 100%;
	border: none;
	border-radius: 9px;
	background: transparent;
	color: var(--cb-ink);
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	padding: 0 6px;
}
.cc-b-seg:hover { background: var(--cb-cream); }
.cc-b-seg-activo,
.cc-b-seg-activo:hover { background: var(--cb-green-dark); color: #fff; }

.cc-b-btn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	background: var(--cb-green-dark);
	color: #fff;
	border: 1.5px solid var(--cb-green-dark);
	border-radius: 12px;
	padding: 0 24px;
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	transition: background 0.2s ease;
}
.cc-b-btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.cc-b-btn:hover { background: var(--cb-green-deeper); border-color: var(--cb-green-deeper); }
.cc-b-btn-sec { background: #fff; color: var(--cb-green-dark); }
.cc-b-btn-sec:hover { background: var(--cb-cream); color: var(--cb-green-deeper); border-color: var(--cb-green-dark); }

/* Prueba con… */
.cc-b-quick {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
}
.cc-b-quick-centro { justify-content: center; margin-top: 18px; }
.cc-b-quick-label { color: var(--cb-ink-soft); font-size: 0.85rem; margin-right: 2px; }
.cc-b-quickchip {
	min-height: 36px;
	background: var(--cb-cream);
	border: 1px solid var(--cb-cream-border);
	border-radius: 999px;
	color: var(--cb-ink);
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0 14px;
	cursor: pointer;
}
.cc-b-quickchip:hover { background: var(--cb-chip-bg); }

/* ---------- Desplegable (Ubicación y Tipo de negocio) ---------- */
/* Patrón «select-only combobox»: el disparador es un <button>. Los estilos de
   botón del tema y de Elementor (fondo, relleno, mayúsculas, sombra, altura de
   línea) se reinician a propósito, con .cc-buscador .cc-b-field delante para
   ganarles por especificidad. */
.cc-b-dd { display: block; }
.cc-buscador .cc-b-field .cc-b-dd-trigger {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	height: 50px;
	min-height: 50px;
	margin: 0;
	padding: 0 12px 0 14px;
	border: 1.5px solid var(--cb-cream-border);
	border-radius: 12px;
	background: #fff;
	background-image: none;
	color: var(--cb-ink);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	text-align: left;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.cc-buscador .cc-b-field .cc-b-dd-trigger:hover,
.cc-buscador .cc-b-field .cc-b-dd-trigger:active {
	background: #fff;
	color: var(--cb-ink);
	border-color: var(--cb-green);
	box-shadow: none;
}
/* Mismo foco que el campo de texto (.cc-b-input:focus). */
.cc-buscador .cc-b-field .cc-b-dd-trigger:focus,
.cc-buscador .cc-b-field .cc-b-dd-trigger:focus-visible,
.cc-buscador .cc-b-field.cc-b-dd-abierto .cc-b-dd-trigger {
	outline: none;
	background: #fff;
	color: var(--cb-ink);
	border-color: var(--cb-green-dark);
	box-shadow: 0 0 0 3px rgba(117, 144, 58, 0.25);
}
.cc-b-dd-ico { flex: 0 0 20px; width: 20px; height: 20px; color: var(--cb-green); }
.cc-b-dd-ico svg { width: 100%; height: 100%; }
.cc-b-dd-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.cc-b-dd-rot,
.cc-b-dd-val { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-buscador .cc-b-dd-rot { font-size: 0.72rem; font-weight: 600; line-height: 1.1; color: var(--cb-ink-soft); }
.cc-buscador .cc-b-dd-val { font-size: 0.95rem; font-weight: 600; line-height: 1.2; color: var(--cb-ink); }
.cc-b-dd-chev { flex: 0 0 18px; width: 18px; height: 18px; color: var(--cb-ink-soft); transition: transform 0.2s ease; }
.cc-b-dd-chev svg { width: 100%; height: 100%; }
.cc-b-dd-abierto .cc-b-dd-chev { transform: rotate(180deg); }

/* Panel de opciones. */
.cc-buscador .cc-b-dd-panel {
	position: absolute;
	left: 0;
	top: calc(100% + 6px);
	z-index: 40;
	width: max(100%, 280px);
	min-width: 280px;
	max-width: 100vw;
	max-height: 360px;
}
/* Desde tablet, 320 px para que «Cafetería y panadería» y similares entren en una línea. */
@media (min-width: 768px) {
	.cc-buscador .cc-b-dd-panel { width: max(100%, 320px); min-width: 320px; }
}
.cc-buscador .cc-b-dd-panel {
	margin: 0;
	padding: 6px;
	list-style: none;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: #fff;
	border: 1px solid var(--cb-cream-border);
	border-radius: 14px;
	box-shadow: 0 14px 32px rgba(51, 48, 31, 0.16);
}
.cc-buscador .cc-b-dd-op {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	margin: 0;
	padding: 6px 10px;
	list-style: none;
	border-radius: 10px;
	background: transparent;
	color: var(--cb-ink);
	font-size: 0.92rem;
	line-height: 1.25;
	cursor: pointer;
}
.cc-buscador .cc-b-dd-op-activa { background: var(--cb-cream); }
.cc-buscador .cc-b-dd-op-elegida .cc-b-dd-optxt { font-weight: 700; }
.cc-b-dd-opico { flex: 0 0 20px; width: 20px; height: 20px; color: var(--cb-green); }
.cc-b-dd-opico svg { width: 100%; height: 100%; }
.cc-b-dd-optxt { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.cc-buscador .cc-b-dd-n {
	flex: 0 0 auto;
	min-width: 28px;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--cb-cream);
	color: var(--cb-ink-soft);
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}
.cc-buscador .cc-b-dd-op-activa .cc-b-dd-n { background: #fff; }
.cc-b-dd-check { flex: 0 0 18px; width: 18px; height: 18px; color: var(--cb-green-dark); visibility: hidden; }
.cc-b-dd-check svg { width: 100%; height: 100%; }
.cc-b-dd-op-elegida .cc-b-dd-check { visibility: visible; }
/* Con una búsqueda activa, las opciones sin resultados van al final y se atenúan (siguen siendo elegibles). */
.cc-buscador .cc-b-dd-op-vacia { opacity: 0.6; }

/* ---------- Filtros activos ---------- */
.cc-b-activefilters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 18px 16px 0;
}
.cc-b-activelabel { color: var(--cb-ink-soft); font-size: 0.85rem; }
.cc-b-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 36px;
	background: var(--cb-cream);
	border: 1px solid var(--cb-cream-border);
	color: var(--cb-ink);
	border-radius: 999px;
	padding: 0 10px 0 14px;
	font-size: 0.85rem;
	cursor: pointer;
}
.cc-b-pill-x { width: 14px; height: 14px; color: var(--cb-ink-soft); }
.cc-b-pill-x svg { width: 100%; height: 100%; }
.cc-b-pill:hover { background: var(--cb-cream-border); }
.cc-b-clearall {
	min-height: 36px;
	background: none;
	border: none;
	color: var(--cb-green-dark);
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	padding: 0 6px;
}
.cc-b-clearall:hover { text-decoration: underline; }

/* ---------- Resultados ---------- */
.cc-b-resultados { scroll-margin-top: 80px; }

.cc-b-resultsheader {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 32px 16px 16px;
}
.cc-b-resultstitle { display: flex; align-items: center; gap: 12px; }
.cc-b-resultsico { width: 26px; height: 26px; color: var(--cb-green); flex-shrink: 0; }
.cc-b-resultsico svg { width: 100%; height: 100%; }
.cc-b-resultscount { font-weight: 700; margin: 0; color: var(--cb-ink); }
.cc-b-resultssub { font-size: 0.82rem; color: var(--cb-ink-soft); margin: 0; }
.cc-b-orden { display: flex; align-items: center; gap: 8px; font-size: 0.85rem; color: var(--cb-ink-soft); }
.cc-b-orden select {
	min-height: 44px;
	border: 1.5px solid var(--cb-cream-border);
	border-radius: 10px;
	background: #fff;
	color: var(--cb-ink);
	font-size: 0.88rem;
	padding: 0 34px 0 12px;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6550' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 16px;
}

.cc-b-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 20px;
	padding: 0 16px 8px;
	margin-top: 24px;
}
.cc-b-resultsheader + .cc-b-grid { margin-top: 0; }

.cc-b-card {
	background: #fff;
	border: 1px solid var(--cb-cream-border);
	border-radius: 18px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 8px rgba(51, 48, 31, 0.04);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	min-width: 0;
}
.cc-b-card:hover { box-shadow: 0 10px 24px rgba(51, 48, 31, 0.10); transform: translateY(-2px); }

.cc-b-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.cc-b-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: var(--cb-green-dark);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 5px 12px 5px 9px;
	border-radius: 999px;
}
.cc-b-badge-ico { width: 13px; height: 13px; flex-shrink: 0; }
.cc-b-badge-ico svg { width: 100%; height: 100%; }
.cc-b-cardicon {
	width: 42px; height: 42px;
	border-radius: 50%;
	background: var(--cb-cream);
	border: 1px solid var(--cb-cream-border);
	display: flex; align-items: center; justify-content: center;
	flex-shrink: 0;
	color: var(--cb-green);
}
.cc-b-cardicon svg { width: 21px; height: 21px; }

.cc-b-category {
	font-size: 0.9rem;
	font-weight: 700;
	font-variant: all-small-caps;
	letter-spacing: 0.08em;
	color: var(--cb-ink-soft);
	margin: 4px 0 2px;
}
.cc-b-title { font-size: 1.15rem; line-height: 1.3; font-weight: 700; color: var(--cb-ink); margin: 0 0 14px; overflow-wrap: anywhere; }

.cc-b-foods { margin: 0 0 4px; }
.cc-b-foodslabel { font-size: 0.85rem; font-weight: 700; color: var(--cb-green-dark); margin: 0 0 8px; }
.cc-b-chiprow { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.cc-b-chip {
	display: inline-flex;
	align-items: center;
	background: var(--cb-chip-bg);
	color: var(--cb-chip-text);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 5px 11px;
	border-radius: 999px;
	text-decoration: none;
	border: 0;
}
a.cc-b-chip-link:hover { filter: brightness(0.94); text-decoration: underline; }
.cc-b-nodata { color: #7d776a; font-size: 0.82rem; font-style: italic; }
.cc-b-chip-more {
	background: #fff;
	border: 1.5px solid var(--cb-green-dark);
	color: var(--cb-green-dark);
	cursor: pointer;
	min-height: 28px;
}
.cc-b-chip-more:hover { background: var(--cb-cream); }

/* Resalta el alimento que coincide con la búsqueda, para que se note
   al toque por qué esta ficha apareció en los resultados. */
.cc-b-chip-match {
	background: #f2b705;
	color: #4a3600;
	box-shadow: 0 0 0 2px #d9a300;
}
a.cc-b-chip-match:hover { filter: brightness(0.96); }

.cc-b-details {
	list-style: none;
	margin: 12px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid #f1ede0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.cc-b-detailrow { display: flex; align-items: flex-start; gap: 8px; font-size: 0.85rem; color: var(--cb-ink); line-height: 1.4; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.cc-b-detailico { width: 16px; height: 16px; color: var(--cb-green); flex-shrink: 0; margin-top: 2px; }
.cc-b-detailico svg { width: 100%; height: 100%; }
.cc-b-detailrow strong { color: var(--cb-ink); }
.cc-b-link { color: var(--cb-green-dark); font-weight: 600; text-decoration: none; }
.cc-b-link:hover { text-decoration: underline; }

.cc-b-social {
	display: inline-flex; align-items: center; gap: 4px;
	min-height: 28px;
	background: var(--cb-cream); border: 1px solid var(--cb-cream-border);
	color: var(--cb-green-dark); padding: 3px 10px; border-radius: 999px;
	font-size: 0.78rem; font-weight: 600; text-decoration: none;
}
.cc-b-social:hover { background: var(--cb-cream-border); }
.cc-b-social-ico { width: 12px; height: 12px; }
.cc-b-social-ico svg { width: 100%; height: 100%; }
.cc-b-plaintext { font-size: 0.82rem; color: var(--cb-ink); }

.cc-b-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 16px; }
.cc-b-action {
	flex: 1 1 130px;
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px;
	border-radius: 999px;
	font-size: 0.88rem; font-weight: 700;
	text-decoration: none;
	padding: 0 16px;
	border: 1.5px solid var(--cb-green-dark);
}
.cc-b-action svg { width: 17px; height: 17px; flex-shrink: 0; }
.cc-b-action-main { background: var(--cb-green-dark); color: #fff; }
.cc-b-action-main:hover { background: var(--cb-green-deeper); border-color: var(--cb-green-deeper); color: #fff; }
.cc-b-action-sec { background: #fff; color: var(--cb-green-dark); }
.cc-b-action-sec:hover { background: var(--cb-cream); color: var(--cb-green-deeper); }

/* Paginación. */
.cc-b-mas { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 24px 16px 0; }
.cc-b-mas-txt { margin: 0; color: var(--cb-ink-soft); font-size: 0.88rem; }

/* ---------- Estados: carga, vacío, error ---------- */
.cc-b-estado {
	text-align: center;
	margin: 32px 16px 0;
	padding: 32px 20px;
	background: var(--cb-cream);
	border: 1px solid var(--cb-cream-border);
	border-radius: 18px;
	color: var(--cb-ink-soft);
}
.cc-b-estado-ico {
	display: flex; align-items: center; justify-content: center;
	width: 56px; height: 56px;
	margin: 0 auto 12px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--cb-cream-border);
	color: var(--cb-green);
}
.cc-b-estado-ico svg { width: 26px; height: 26px; }
.cc-b-estado-titulo { margin: 0 0 6px; font-size: 1.05rem; font-weight: 700; color: var(--cb-ink); overflow-wrap: anywhere; }
.cc-b-estado-texto { margin: 0 0 16px; }
.cc-b-estado-link { display: inline-block; margin-top: 14px; }

.cc-b-skeleton { gap: 12px; pointer-events: none; }
.cc-b-skeleton:hover { box-shadow: none; transform: none; }
.cc-b-sk {
	display: block;
	height: 14px;
	border-radius: 8px;
	background: linear-gradient(90deg, #f1ebd8 25%, #f9f5e8 50%, #f1ebd8 75%);
	background-size: 200% 100%;
	animation: cc-b-brillo 1.4s ease-in-out infinite;
}
.cc-b-sk-badge { width: 90px; height: 24px; border-radius: 999px; }
.cc-b-sk-titulo { height: 22px; width: 75%; }
.cc-b-sk-corta { width: 55%; }
@keyframes cc-b-brillo { to { background-position: -200% 0; } }

/* ---------- Pie ---------- */
.cc-b-footerband {
	margin-top: 36px;
	background: var(--cb-cream);
	border-radius: 16px;
	padding: 18px 24px;
	display: flex; align-items: center;
}
.cc-b-footerband p { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--cb-ink-soft); font-size: 0.88rem; }
.cc-b-footerico { width: 20px; height: 20px; color: var(--cb-green); flex-shrink: 0; }
.cc-b-footerico svg { width: 100%; height: 100%; }

/* ---------- Elementor ---------- */
/* Un margen horizontal negativo en el widget (Elementor) lo saca de la
   pantalla y genera scroll lateral; el buscador ya se centra solo con
   max-width. Solo se anula el horizontal; !important porque la regla
   de Elementor es más específica. */
.elementor-widget-cc-buscador-alimentos,
.elementor-widget-cc-buscador-alimentos > .elementor-widget-container {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ---------- Responsivo ---------- */
/* Tablet y móvil: el id (#buscador-alimentos, o .cc-buscador-extra en las
   instancias siguientes) gana a la alineación y anchos de Elementor
   (.elementor-N .elementor-element-XXXX .cc-b-hero p, especificidad 0,4,1)
   sin usar !important; en una columna angosta, título y mensaje van a la
   izquierda a ancho completo. */
@media (max-width: 1024px) {
	:is(#buscador-alimentos, .cc-buscador-extra) .cc-b-hero-text { align-items: stretch; }
	:is(#buscador-alimentos, .cc-buscador-extra) .cc-b-hero h2,
	:is(#buscador-alimentos, .cc-buscador-extra) .cc-b-hero p { max-width: none; }
	.cc-b-footerband p { align-items: flex-start; line-height: 1.5; }
	.cc-b-footerico { margin-top: 1px; }
}

/* Tablet: búsqueda a lo ancho, Ubicación y Tipo en una fila y el botón a lo ancho. */
@media (min-width: 768px) and (max-width: 1024px) {
	.cc-b-field { flex: 1 1 calc(50% - 7px); }
	.cc-b-field-buscar,
	.cc-b-btn { flex: 1 1 100%; }
}

/* Móvil (punto de corte móvil de Elementor). */
@media (max-width: 767px) {
	.cc-buscador { margin: 1.5rem auto; padding: 0 16px; }

	.cc-b-hero { padding: 28px 20px 60px; border-radius: 20px; }
	:is(#buscador-alimentos, .cc-buscador-extra) .cc-b-hero h2 { font-size: 1.5rem; line-height: 1.2; margin-bottom: 10px; }
	.cc-b-hero p { font-size: 0.95rem; line-height: 1.55; }

	/* En columna, flex-basis se aplica al alto: los campos se apilan de 50 px. */
	.cc-b-searchcard {
		padding: 12px;
		margin: -40px 0 0;
		border-radius: 18px;
	}
	.cc-b-fields { flex-direction: column; gap: 10px; }
	.cc-b-field,
	.cc-b-field-buscar,
	.cc-b-field-cond { flex: 0 0 auto; }
	.cc-buscador .cc-b-field .cc-b-input {
		height: 50px;
		padding-top: 0;
		padding-bottom: 0;
		font-size: 16px; /* < 16 px hace que iOS acerque la página al enfocar. */
		line-height: normal;
	}

	/* «Prueba con»: una sola fila desplazable en lugar de tres filas de chips. */
	.cc-b-quick {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		margin-left: -12px;
		margin-right: -12px;
		padding: 2px 12px;
	}
	.cc-b-quick::-webkit-scrollbar { display: none; }
	.cc-b-quick-label { flex: 0 0 auto; }
	.cc-b-quickchip { flex: 0 0 auto; min-height: 40px; }
	.cc-b-quick-centro { flex-wrap: wrap; overflow: visible; margin-left: 0; margin-right: 0; }
	.cc-b-btn { width: 100%; height: 50px; padding: 0 12px; font-size: 1rem; }
	.cc-b-seg { font-size: 0.95rem; }

	/* Desplegables: el panel va a lo ancho del campo, con un máximo de 60vh. */
	.cc-buscador .cc-b-dd-panel { max-height: 60vh; }

	.cc-b-activefilters { margin: 16px 0 0; }
	.cc-b-resultsheader { margin: 24px 0 12px; }
	.cc-b-orden { width: 100%; justify-content: space-between; }
	.cc-b-grid { grid-template-columns: 1fr; gap: 14px; padding: 0; }
	.cc-b-card { padding: 16px; }
	.cc-b-estado { margin: 24px 0 0; }
	.cc-b-mas { margin: 20px 0 0; }
	.cc-b-footerband { margin-top: 24px; padding: 14px 16px; }
}

/* Escritorio ancho: las sugerencias no pasan del ancho del campo en móvil. */
@media (max-width: 767px) {
	.cc-b-lista { max-height: 280px; }
	.cc-b-opcion-n { font-size: 0.75rem; }
}

@media (prefers-reduced-motion: reduce) {
	.cc-buscador *,
	.cc-buscador *::before,
	.cc-buscador *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.cc-b-card:hover { transform: none; }
}
