/**
 * ClasiFly — Integración con ClasiFly Hub.
 *
 * Capa visual que unifica la interfaz pública del plugin (buscador, archivos,
 * formularios, tarjetas, dashboard, fichas) con el lenguaje del tema.
 * Se carga después de experience.css y se re-encola en wp_footer para ganar
 * a las hojas que el plugin imprime dentro del contenido.
 *
 * @package ClasiFly
 */

/* Paleta del plugin re-mapeada a la del tema (azul ClasiFly). */
body.clasifly-theme .cfh-search-shell,
body.clasifly-theme .cfh-form,
body.clasifly-theme .cfh-dashboard,
body.clasifly-theme .cfh-card,
body.clasifly-theme .cfh-contact-card,
body.clasifly-theme .cfh-empty,
body.clasifly-theme .cfh-notice {
	--cfh-primary: var(--cf-primary);
	--cfh-primary-dark: var(--cf-primary-dark);
	--cfh-ink: var(--cf-ink);
	--cfh-muted: var(--cf-muted);
	--cfh-line: var(--cf-line);
	--cfh-surface: var(--cf-surface);
	--cfh-soft: var(--cf-soft);
	color: var(--cf-ink);
}

body.clasifly-theme .cfh-profile,
body.clasifly-theme .cfh-job-board {
	--cfh-profile-blue: var(--cf-primary);
	--cfh-profile-navy: #10234e;
	--cfh-profile-ink: #17213a;
	--cfh-profile-muted: var(--cf-muted);
	--cfh-profile-line: var(--cf-line);
	--cfh-profile-soft: var(--cf-soft);
}

/* Contenedores al ancho del tema. */
body.clasifly-theme .cfh-container {
	width: min(calc(100% - 48px), var(--cf-container));
	max-width: var(--cf-container);
	margin-inline: auto;
}

/* Las secciones del plugin que se imprimen sin clase de contenedor
   (shortcode raíz en una página) también heredan el margen lateral del tema. */
body.clasifly-theme .cfh-job-board,
body.clasifly-theme .cfh-search-shell,
body.clasifly-theme .cfh-dashboard,
body.clasifly-theme .cfh-category-grid,
body.clasifly-theme .cfh-candidates-shell,
body.clasifly-theme .cfh-listing-wrap {
	width: min(calc(100% - 48px), var(--cf-container));
	max-width: var(--cf-container);
	margin-inline: auto;
}

/* Avisos sueltos de sesión/permiso y el buscador suelto: centrados con ancho cómodo. */
body.clasifly-theme .cf-plugin-content > .entry-content > .cfh-notice {
	width: min(100%, 860px);
	margin-inline: auto;
}

/* Dentro de los contenedores del plugin las secciones internas recuperan el ancho completo. */
body.clasifly-theme .cfh-job-board .cfh-listing-wrap,
body.clasifly-theme .cfh-search-shell .cfh-listing-wrap {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

/* Encabezado de los archivos públicos: héroe en el lenguaje del tema. */
body.clasifly-theme .cfh-archive {
	padding-top: 0;
	padding-bottom: clamp(40px, 6vw, 72px);
}

body.clasifly-theme .cfh-archive-head {
	position: relative;
	z-index: 0;
	overflow: hidden;
	margin: clamp(26px, 4vw, 46px) 0 clamp(24px, 3.5vw, 40px);
	padding: clamp(26px, 4vw, 46px);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 24px;
	background:
		radial-gradient(circle at 86% 12%, rgba(103, 153, 255, .34), transparent 30%),
		radial-gradient(circle at 8% 100%, rgba(9, 167, 122, .16), transparent 34%),
		linear-gradient(120deg, #101d42, #294bc9 60%, #3157e7);
	box-shadow: 0 24px 60px rgba(16, 26, 51, .18);
}

body.clasifly-theme .cfh-archive-head h1 {
	max-width: 920px;
	margin: 6px 0 0;
	color: #fff;
	font-size: clamp(1.9rem, 3.4vw, 3rem);
	line-height: 1.08;
	letter-spacing: -.035em;
}

body.clasifly-theme .cfh-kicker {
	color: #b9c9ff;
	font-size: .78rem;
	font-weight: 850;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* Buscador: cápsula blanca del tema. */
body.clasifly-theme .cfh-search {
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--cf-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-search label > span,
body.clasifly-theme .cfh-field > span,
body.clasifly-theme .cfh-field legend {
	color: var(--cf-ink);
	font-size: .86rem;
	font-weight: 800;
}

body.clasifly-theme .cfh-search input,
body.clasifly-theme .cfh-search select,
body.clasifly-theme .cfh-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.clasifly-theme .cfh-form select,
body.clasifly-theme .cfh-form textarea,
body.clasifly-theme .cfh-filter-form input,
body.clasifly-theme .cfh-filter-form select,
body.clasifly-theme .cfh-candidates-filters input,
body.clasifly-theme .cfh-candidates-filters select {
	width: 100%;
	min-height: 52px;
	padding: 12px 15px;
	border: 1px solid #cbd3e1;
	border-radius: 12px;
	background: #fff;
	color: var(--cf-ink);
	font: inherit;
}

body.clasifly-theme .cfh-search input:focus,
body.clasifly-theme .cfh-search select:focus,
body.clasifly-theme .cfh-form input:focus,
body.clasifly-theme .cfh-form select:focus,
body.clasifly-theme .cfh-form textarea:focus,
body.clasifly-theme .cfh-filter-form input:focus,
body.clasifly-theme .cfh-filter-form select:focus {
	outline: 0;
	border-color: var(--cf-primary);
	box-shadow: 0 0 0 4px rgba(49, 87, 231, .14);
}

body.clasifly-theme .cfh-button {
	min-height: 50px;
	border-radius: 12px;
	font-weight: 800;
	border-color: var(--cf-line);
	background: #fff;
	color: var(--cf-ink);
}

body.clasifly-theme .cfh-button:hover,
body.clasifly-theme .cfh-button:focus-visible {
	border-color: var(--cf-primary);
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-button--primary,
body.clasifly-theme .cfh-search .cfh-button--primary {
	border-color: var(--cf-primary);
	background: var(--cf-primary);
	color: #fff;
	box-shadow: 0 8px 18px rgba(36, 87, 245, .2);
}

body.clasifly-theme .cfh-button--primary:hover,
body.clasifly-theme .cfh-button--primary:focus-visible {
	border-color: var(--cf-primary-dark);
	background: var(--cf-primary-dark);
	color: #fff;
}

/* Resultados y tarjetas. */
body.clasifly-theme .cfh-results-head {
	color: var(--cf-muted);
	font-weight: 650;
}

body.clasifly-theme .cfh-cards {
	gap: 22px;
}

body.clasifly-theme .cfh-card {
	border: 1px solid var(--cf-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-card:hover {
	border-color: #c9d3f4;
	transform: translateY(-4px);
	box-shadow: var(--cf-shadow);
}

body.clasifly-theme .cfh-card__media {
	background: #e9edf5;
}

body.clasifly-theme .cfh-card__terms a,
body.clasifly-theme .cfh-card__terms {
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-card h3 {
	font-size: 1.12rem;
	line-height: 1.32;
}

body.clasifly-theme .cfh-card h3 a {
	color: var(--cf-ink);
}

body.clasifly-theme .cfh-card h3 a:hover {
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-card p,
body.clasifly-theme .cfh-card__field,
body.clasifly-theme .cfh-location {
	color: var(--cf-muted);
}

body.clasifly-theme .cfh-price,
body.clasifly-theme .cfh-classified-price {
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-pagination {
	gap: 8px;
}

body.clasifly-theme .cfh-pagination .page-numbers {
	min-width: 42px;
	min-height: 42px;
	border: 1px solid var(--cf-line);
	border-radius: 10px;
	background: #fff;
	color: var(--cf-ink);
}

body.clasifly-theme .cfh-pagination .current {
	background: var(--cf-primary);
	border-color: var(--cf-primary);
	color: #fff;
}

body.clasifly-theme .cfh-empty,
body.clasifly-theme .cfh-notice {
	border: 1px solid var(--cf-line);
	border-radius: 14px;
	background: var(--cf-soft);
}

body.clasifly-theme .cfh-notice--error {
	border-color: #efc3c3;
	background: #fff1f1;
	color: #7d2020;
}

body.clasifly-theme .cfh-notice--pending {
	border-color: #e8cd7d;
	background: #fff9e8;
	color: #735800;
}

/* Filtros avanzados. */
body.clasifly-theme .cfh-search-filters {
	border-color: var(--cf-line);
	border-radius: 14px;
	background: #f8f9fc;
}

body.clasifly-theme .cfh-search-filters summary {
	color: var(--cf-ink);
}

body.clasifly-theme .cfh-filter-form label > span,
body.clasifly-theme .cfh-candidates-filters label > span {
	color: var(--cf-ink);
	font-weight: 800;
}

/* Formularios de publicación: lenguaje visual del tema. */
body.clasifly-theme .cfh-form {
	max-width: 980px;
	padding: clamp(20px, 3vw, 34px);
	border: 1px solid var(--cf-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-form-progress button {
	padding: 11px 8px;
	border-bottom-color: var(--cf-line);
	color: var(--cf-muted);
	font-weight: 800;
}

body.clasifly-theme .cfh-form-progress button.is-active {
	border-bottom-color: var(--cf-primary);
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-form-step h2 {
	color: var(--cf-ink);
	font-size: clamp(1.3rem, 2.4vw, 1.7rem);
}

body.clasifly-theme .cfh-form textarea {
	min-height: 170px;
	resize: vertical;
}

body.clasifly-theme .cfh-check {
	gap: 10px;
	align-items: center;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--cf-line);
	border-radius: 12px;
}

body.clasifly-theme .cfh-check input[type="checkbox"] {
	accent-color: var(--cf-primary);
}

body.clasifly-theme .cfh-dropzone {
	border: 2px dashed #b8c6ec;
	border-radius: 16px;
	background: #fbfcff;
}

body.clasifly-theme .cfh-field small,
body.clasifly-theme .cfh-help {
	color: var(--cf-muted);
}

body.clasifly-theme .cfh-form select {
	padding-right: 42px;
}

body.clasifly-theme .cfh-form .cfh-grid-2 {
	gap: 16px;
}

body.clasifly-theme .cfh-form-nav .cfh-button {
	min-width: 130px;
}

/* Mapa. */
body.clasifly-theme .cfh-map,
body.clasifly-theme .cfh-step-form .cfh-map-editor {
	border: 1px solid var(--cf-line);
	border-radius: 16px;
	background: linear-gradient(135deg, #eef2fa, #f8fafd);
}

body.clasifly-theme .cfh-map a {
	background: #fff;
	border: 1px solid var(--cf-line);
	color: var(--cf-primary);
	font-weight: 750;
}

body.clasifly-theme .cfh-map--google {
	background: #fbfcff;
}

/* Panel "Mi Clasifly". */
body.clasifly-theme .cfh-dashboard {
	grid-template-columns: 250px minmax(0, 1fr);
	border: 1px solid var(--cf-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-dashboard-nav {
	padding: 14px;
	background: #f6f8fc;
	border-right: 1px solid var(--cf-line);
}

body.clasifly-theme .cfh-dashboard-nav a {
	padding: 12px 14px;
	border-radius: 11px;
	color: #34405a;
	font-weight: 720;
	line-height: 1.4;
}

body.clasifly-theme .cfh-dashboard-nav a.is-active,
body.clasifly-theme .cfh-dashboard-nav a:hover {
	background: var(--cf-primary);
	color: #fff;
	box-shadow: 0 6px 16px rgba(36, 87, 245, .22);
}

body.clasifly-theme .cfh-dashboard-content {
	padding: 28px;
	min-width: 0;
}

body.clasifly-theme .cfh-dashboard-content > h2 {
	margin-bottom: 22px;
	color: var(--cf-ink);
	font-size: clamp(1.4rem, 2.6vw, 1.9rem);
}

body.clasifly-theme .cfh-summary article {
	border: 1px solid var(--cf-line);
	border-radius: 14px;
	background: #fff;
}

body.clasifly-theme .cfh-summary strong {
	color: var(--cf-primary);
	font-size: 2.1rem;
	font-weight: 850;
}

body.clasifly-theme .cfh-summary span {
	color: var(--cf-muted);
	font-weight: 650;
}

body.clasifly-theme .cfh-table-wrap {
	border: 1px solid var(--cf-line);
	border-radius: 14px;
}

body.clasifly-theme .cfh-table th,
body.clasifly-theme .cfh-table td {
	border-bottom: 1px solid var(--cf-line);
}

body.clasifly-theme .cfh-table th {
	color: #3a465e;
	background: #f7f8fb;
	font-size: .8rem;
	font-weight: 850;
	letter-spacing: .02em;
}

body.clasifly-theme .cfh-table td {
	color: #5f6b82;
}

body.clasifly-theme .cfh-table a {
	color: var(--cf-primary);
	font-weight: 700;
}

body.clasifly-theme .cfh-status {
	background: #eef2ff;
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-status--pending {
	background: #fff8e7;
	color: #7a4d00;
}

body.clasifly-theme .cfh-status--approved,
body.clasifly-theme .cfh-status--publish {
	background: #e6f7f0;
	color: #0e7a5f;
}

body.clasifly-theme .cfh-dashboard .cfh-button {
	min-height: 46px;
}

/* Categorías, bolsa de trabajo y candidatos. */
body.clasifly-theme .cfh-category {
	border: 1px solid var(--cf-line);
	border-radius: 14px;
	background: #fff;
	color: var(--cf-ink);
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-category:hover {
	border-color: #c9d3f4;
	color: var(--cf-primary);
	transform: translateY(-2px);
	box-shadow: var(--cf-shadow);
}

body.clasifly-theme .cfh-category span {
	background: #edf2ff;
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-section-heading p {
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-section-heading h2 {
	color: #10234e;
}

/* Tarjeta de candidato (el plugin la emite sin estilos propios). */
body.clasifly-theme .cfh-candidate-card {
	display: grid;
	gap: 8px;
	align-content: start;
	padding: 20px;
	border: 1px solid var(--cf-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-candidate-card h3 {
	margin: 0;
	font-size: 1.08rem;
}

body.clasifly-theme .cfh-candidate-card p {
	margin: 0;
	color: var(--cf-muted);
	font-size: .9rem;
	line-height: 1.55;
}

body.clasifly-theme .cfh-candidate-card .cfh-candidate-title {
	color: var(--cf-primary);
	font-weight: 750;
}

body.clasifly-theme .cfh-candidate-card .cfh-candidate-contact a {
	color: var(--cf-primary);
	font-weight: 700;
}

body.clasifly-theme .cfh-candidates-filters {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(200px, .6fr) auto;
	gap: 12px;
	align-items: end;
	padding: 16px;
	border: 1px solid var(--cf-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--cf-shadow-sm);
}

body.clasifly-theme .cfh-candidates-filters label {
	display: grid;
	gap: 6px;
}

/* Fichas públicas (single). El héroe ya es azul; se unifican acentos. */
body.clasifly-theme .cfh-profile-breadcrumbs a {
	color: #fff;
	border-bottom: 1px solid rgba(255, 255, 255, .35);
}

body.clasifly-theme .cfh-profile-tabs a.is-active,
body.clasifly-theme .cfh-profile-tabs a:hover {
	box-shadow: 0 4px 12px rgba(20, 38, 78, .08);
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-profile .cfh-button--primary,
body.clasifly-theme .cfh-classified-summary__actions .cfh-button--primary {
	border-color: var(--cf-primary);
	background: var(--cf-primary);
}

body.clasifly-theme .cfh-profile .cfh-button--primary:hover,
body.clasifly-theme .cfh-classified-summary__actions .cfh-button--primary:hover {
	border-color: var(--cf-primary-dark);
	background: var(--cf-primary-dark);
}

body.clasifly-theme .cfh-profile .cfh-contact-item strong,
body.clasifly-theme .cfh-job-facts .cfh-details a,
body.clasifly-theme .cfh-classified-details dd a {
	color: var(--cf-primary);
}

body.clasifly-theme .cfh-taxonomy-strip a,
body.clasifly-theme .cfh-classified-taxonomy a,
body.clasifly-theme .cfh-classified-badges > span:first-child {
	color: var(--cf-primary-dark);
}

body.clasifly-theme .cfh-classified-status {
	background: #e6f7f0;
	color: #0e7a5f;
}

body.clasifly-theme .cfh-profile-gallery__empty {
	background: linear-gradient(135deg, #edf1fc, #f7f9fd);
}

/* Icono de "Empleo" para el panel Publicar del tema. */
body.clasifly-theme .cf-choice-icon--job {
	background: #e8f6ff;
}

body.clasifly-theme .cf-choice-icon--job::before {
	width: 24px;
	height: 20px;
	border: 2px solid #0e7490;
	border-radius: 4px;
}

body.clasifly-theme .cf-choice-icon--job::after {
	top: 12px;
	width: 12px;
	height: 9px;
	border: 2px solid #0e7490;
	border-bottom: 0;
	border-radius: 4px 4px 0 0;
}

/* Responsivo. */
@media (max-width: 960px) {
	body.clasifly-theme .cfh-dashboard {
		grid-template-columns: 1fr;
	}

	body.clasifly-theme .cfh-dashboard-nav {
		border-right: 0;
		border-bottom: 1px solid var(--cf-line);
	}
}

@media (max-width: 680px) {
	body.clasifly-theme .cfh-container,
	body.clasifly-theme .cfh-job-board,
	body.clasifly-theme .cfh-search-shell,
	body.clasifly-theme .cfh-dashboard,
	body.clasifly-theme .cfh-category-grid,
	body.clasifly-theme .cfh-candidates-shell,
	body.clasifly-theme .cfh-listing-wrap {
		width: min(calc(100% - 24px), var(--cf-container));
	}

	body.clasifly-theme .cfh-dashboard {
		grid-template-columns: 1fr;
	}

	body.clasifly-theme .cfh-job-board__section + .cfh-job-board__section {
		margin-top: 36px;
	}

	body.clasifly-theme .cfh-search {
		display: grid !important;
		grid-template-columns: 1fr !important;
	}

	body.clasifly-theme .cfh-search .cfh-button {
		width: 100%;
	}

	body.clasifly-theme .cfh-candidates-filters {
		grid-template-columns: 1fr;
	}

	body.clasifly-theme .cfh-archive-head {
		padding: 22px 18px;
		border-radius: 18px;
	}

	body.clasifly-theme .cfh-form {
		padding: 16px;
		border-radius: 16px;
	}

	body.clasifly-theme .cfh-dashboard-content {
		padding: 18px;
	}

	body.clasifly-theme .cfh-card__body {
		padding: 17px;
	}
}

@media (max-width: 360px) {
	body.clasifly-theme .cfh-container,
	body.clasifly-theme .cfh-job-board,
	body.clasifly-theme .cfh-search-shell,
	body.clasifly-theme .cfh-dashboard,
	body.clasifly-theme .cfh-category-grid,
	body.clasifly-theme .cfh-candidates-shell,
	body.clasifly-theme .cfh-listing-wrap {
		width: min(calc(100% - 20px), var(--cf-container));
	}
}

@media (prefers-reduced-motion: reduce) {
	body.clasifly-theme .cfh-card,
	body.clasifly-theme .cfh-category,
	body.clasifly-theme .cfh-dashboard-nav a {
		transition: none !important;
	}
}

/* Placeholder del plugin re-mapeado al neutro del tema */ body.clasifly-theme .cfh-placeholder-img,body.clasifly-theme .cfh-card__media .cfh-placeholder-img{background:#e9edf5 !important;border-color:var(--cf-line,#dfe3ee) !important;color:var(--cf-muted,#6b7280) !important} body.clasifly-theme .cfh-placeholder-img svg,body.clasifly-theme .cfh-placeholder-img img{opacity:.55}
/* Alineacion y alturas consistentes en buscadores y formularios */
body.clasifly-theme .cfh-search input,body.clasifly-theme .cfh-search select{min-height:52px;height:52px}
body.clasifly-theme .cfh-search .cfh-button{min-height:52px;height:52px;align-self:end}
body.clasifly-theme .cfh-filter-form .cfh-button,body.clasifly-theme .cfh-candidates-filters .cfh-button{min-height:52px;height:52px;align-self:end}
body.clasifly-theme .cfh-search label,body.clasifly-theme .cfh-filter-form label,body.clasifly-theme .cfh-candidates-filters label{display:grid;gap:6px;align-content:start}
body.clasifly-theme .cfh-form .cfh-grid-2{align-items:end}
body.clasifly-theme .cfh-form-nav{gap:12px}
body.clasifly-theme .cfh-candidates-filters{align-items:end}
