/**
 * Front del Perfil del Contratante (C-pc3): buscador, listado y ficha.
 * Sin diseño congelado: maqueta propia con los tokens del tema (definidos en
 * :root por style.css). WCAG 2.2 AA: foco heredado de la base, objetivos ≥24px,
 * contrastes con tokens verificados, sin depender del color para la información.
 *
 * @package lpa_perfil_contratante
 */

.pc-buscador {
	background: var(--color-surface-soft);
	border: 1px solid var(--color-border);
	border-radius: var(--radius, 10px);
	padding: clamp(16px, 3vw, 28px);
	margin-block-end: 32px;
}

.pc-buscador-titulo {
	margin: 0 0 16px;
	font-size: 1.25rem;
}

.pc-buscador-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 16px 24px;
}

.pc-item-titulo,
.pc-item-objeto,
.pc-dato dd {
	overflow-wrap: break-word;
}

.pc-campo {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.pc-campo label {
	font-weight: 600;
	font-size: 0.9375rem;
}

.pc-campo input,
.pc-campo select {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--target-min, 24px);
	padding: 10px 12px;
	font-family: inherit;
	font-size: 1rem;
	border: 1px solid var(--color-border-interactive);
	border-radius: var(--radius-sm, 6px);
	background: var(--color-surface, #fff);
	color: var(--color-ink);
}

.pc-buscador-acciones {
	margin: 20px 0 0;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* «Buscar» y «Limpiar filtros» comparten tamaño y estilo, igual que en
   Contratación (.cv-boton/.cv-reset): mismo alto, padding y ancho mínimo. El
   borde en ambos (transparente en «Buscar») iguala el box-sizing → misma altura;
   line-height explícito porque el <a> hereda 1.6 del cuerpo y el <button> no. */
.pc-boton,
.pc-reset {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	min-width: 9rem;
	padding: 10px 28px;
	border: 1px solid transparent;
	border-radius: var(--radius-sm, 6px);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.pc-boton {
	background: var(--color-primary);
	color: var(--color-primary-contrast);
	font-weight: 700;
}

.pc-boton:hover {
	background: var(--color-primary-strong);
}

/* «Limpiar filtros»: acción secundaria, mismo tamaño que «Buscar», estilo
   bordeado (idéntico a .cv-reset de Contratación). */
.pc-reset {
	background: var(--color-surface, #fff);
	color: var(--color-primary-strong);
	border: 1px solid var(--color-border-interactive);
	font-weight: 600;
}

.pc-reset:hover {
	background: var(--color-surface-tint);
}

/* --- Resultados --------------------------------------------------------- */
.pc-resultados-titulo {
	font-size: 1.125rem;
	margin: 0 0 20px;
}

.pc-lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	/* minmax(0,1fr): la columna se ciñe al contenedor y deja que el contenido
	   se ajuste (una cadena larga sin espacios no puede ensanchar la tarjeta). */
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
}

.pc-item {
	min-width: 0;
}

.pc-item {
	border: 1px solid var(--color-border);
	border-radius: var(--radius, 10px);
	padding: 20px 24px;
	background: var(--color-surface, #fff);
}

.pc-item-titulo {
	margin: 0 0 6px;
	font-size: 1.0625rem;
	line-height: 1.35;
}

.pc-item-titulo a {
	color: var(--color-primary-strong);
	text-underline-offset: 2px;
}

.pc-ext {
	font-size: 0.85em;
}

.pc-item-objeto {
	margin: 0 0 12px;
	color: var(--color-ink);
}

/* Rejilla de pares etiqueta/valor, tanto en tarjeta como en ficha. */
.pc-datos,
.pc-ficha-datos {
	margin: 0;
	display: grid;
	/* min(100%, 240px): la pista nunca supera el ancho del contenedor → sin
	   desbordamiento a 320px aunque la rejilla viva dentro del padding de la tarjeta. */
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 8px 24px;
}

.pc-dato {
	margin: 0;
	display: flex;
	flex-direction: column;
}

.pc-dato dt {
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--color-muted);
}

.pc-dato dd {
	margin: 0;
	color: var(--color-ink);
}

.pc-vacio {
	padding: 20px;
	background: var(--color-surface-soft);
	border-radius: var(--radius-sm, 6px);
}

/* --- Paginación --------------------------------------------------------- */
.pc-paginacion {
	margin-block-start: 28px;
}

.pc-paginacion ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.pc-paginacion a,
.pc-pag-actual {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 10px;
	border: 1px solid var(--color-border-interactive);
	border-radius: var(--radius-sm, 6px);
	text-decoration: none;
	color: var(--color-primary-strong);
}

.pc-paginacion a:hover {
	background: var(--color-surface-tint);
}

.pc-pag-actual {
	background: var(--color-primary);
	color: var(--color-primary-contrast);
	border-color: var(--color-primary);
	font-weight: 700;
}

/* --- Ficha -------------------------------------------------------------- */
.pc-breadcrumb ol {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 0.9375rem;
}

.pc-breadcrumb li:not(:last-child)::after {
	content: "›";
	margin-inline-start: 8px;
	color: var(--color-muted);
}

.pc-breadcrumb a {
	color: var(--color-primary-strong);
}

.pc-ficha-titulo {
	margin: 0 0 8px;
}

.pc-ficha-objeto {
	font-size: 1.125rem;
	color: var(--color-ink);
	margin: 0 0 24px;
}

.pc-ficha-placsp {
	margin: 0 0 24px;
}

.pc-ficha-datos {
	padding: 20px 24px;
	background: var(--color-surface-soft);
	border-radius: var(--radius, 10px);
	margin-block-end: 32px;
}

.pc-ficha-docs-titulo {
	font-size: 1.25rem;
	margin: 0 0 16px;
}

.pc-docs {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	display: grid;
	gap: 12px;
}

.pc-doc {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm, 6px);
	padding: 14px 18px;
	background: var(--color-surface, #fff);
}

.pc-doc-nombre {
	font-weight: 600;
}

.pc-doc-enlace {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 32px;
	padding: 4px 12px;
	margin-inline-start: 8px;
	border: 1px solid var(--color-border-interactive);
	border-radius: var(--radius-pill, 999px);
	font-size: 0.8125rem;
	font-weight: 700;
	text-decoration: none;
	color: var(--color-primary-strong);
}

.pc-doc-enlace:hover {
	background: var(--color-surface-tint);
}

.pc-doc-desc {
	margin: 8px 0 0;
	color: var(--color-muted);
	font-size: 0.9375rem;
}

.pc-volver a {
	color: var(--color-primary-strong);
}

@media (max-width: 600px) {
	.pc-buscador-grid {
		grid-template-columns: 1fr;
	}
}
