/**
 * Reskin visual dos widgets NATIVOS do WP Job Manager e add-ons (v1.83.0)
 * — nunca os widgets próprios do tema (Cais_Recent_Posts_Widget e afins,
 * já nativamente desenhados ao estilo do site). Enfileirado SEMPRE
 * (functions.php, junto com cais-header/cais-footer), nunca scoped a uma
 * única página — ao contrário de todo o resto do CSS do tema, um widget
 * WPJM pode ser arrastado para qualquer uma das 4 sidebars
 * (cais-jobs-sidebar/cais-job-sidebar/cais-blog-sidebar/
 * cais-single-article-sidebar), e o estilo tem de seguir, não a página.
 *
 * Todos os seletores aqui são scoped a classes exclusivas de terceiros
 * (.widget_recent_jobs/.widget_featured_jobs/.widget_recent_resumes/
 * .widget_featured_resumes/.mas-wpjmc-search) — nunca coincidem com nada
 * do tema, por isso carregar isto sempre é seguro (mesmo princípio já
 * usado para cais-header/cais-footer).
 *
 * .sidebar-card/.sidebar-title (register_sidebar(), functions.php) NUNCA
 * tocados aqui — só o CONTEÚDO interno de cada widget nativo, que o
 * plugin gera com a sua própria marcação/CSS (floats percentuais,
 * pensados para a coluna larga do shortcode [jobs]/[resumes], nunca para
 * uma sidebar estreita).
 */

/* ============================================================
   Vagas Recentes / Vagas em Destaque
   (WP_Job_Manager_Widget_Recent_Jobs / WP_Job_Manager_Widget_Featured_Jobs)

   Migrado de single-job.css (achado do QA de contraste, 2026-09-02),
   generalizado para cobrir os 2 widgets — ambos reaproveitam exatamente o
   mesmo template nativo (content-widget-job_listing.php), só o wrapper
   CSS do widget muda (.widget_recent_jobs vs .widget_featured_jobs).

   O CSS nativo do plugin (wp-job-manager-job-listings, só enfileirado
   quando um destes widgets de facto renderiza) usa floats/larguras
   percentuais (.position 55% + .meta 20%) — os seletores aqui replicam a
   cadeia completa do DOM nativo (nunca só ".meta") para vencer essa
   especificidade sem precisar de !important.
   ============================================================ */
.widget_recent_jobs ul.job_listings,
.widget_featured_jobs ul.job_listings {
	border-top: none;
}

.widget_recent_jobs ul.job_listings li.job_listing,
.widget_featured_jobs ul.job_listings li.job_listing {
	border-bottom: 1px solid var(--color-border);
}

.widget_recent_jobs ul.job_listings li.job_listing:last-child,
.widget_featured_jobs ul.job_listings li.job_listing:last-child {
	border-bottom: none;
}

.widget_recent_jobs ul.job_listings li.job_listing a,
.widget_featured_jobs ul.job_listings li.job_listing a {
	display: flex;
	align-items: flex-start;
	gap: var(--space-sm);
	padding: var(--space-sm) 0;
}

.widget_recent_jobs ul.job_listings li.job_listing a:hover,
.widget_recent_jobs ul.job_listings li.job_listing a:focus,
.widget_featured_jobs ul.job_listings li.job_listing a:hover,
.widget_featured_jobs ul.job_listings li.job_listing a:focus {
	background-color: transparent;
}

/*
 * "Vagas em Destaque" mostra sempre vagas com job_position_featured — sem
 * isto, TODOS os itens deste widget específico ficariam com o realce
 * amarelo nativo (#fefee5, wp-job-manager-job-listings), incompatível com
 * o cartão neutro da sidebar. Nunca inventa um novo tratamento "featured"
 * (o tema não tem nenhum precedente disto na listagem principal,
 * confirmado por grep) — só neutraliza o nativo.
 */
.widget_recent_jobs ul.job_listings li.job_listing.job_position_featured a,
.widget_featured_jobs ul.job_listings li.job_listing.job_position_featured a {
	background: transparent;
}

.widget_recent_jobs ul.job_listings li.job_listing a .image,
.widget_featured_jobs ul.job_listings li.job_listing a .image {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.widget_recent_jobs ul.job_listings li.job_listing a .image img.company_logo,
.widget_featured_jobs ul.job_listings li.job_listing a .image img.company_logo {
	position: static;
	float: none;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

.widget_recent_jobs ul.job_listings li.job_listing a div.position,
.widget_recent_jobs ul.job_listings li.job_listing a .content,
.widget_featured_jobs ul.job_listings li.job_listing a div.position,
.widget_featured_jobs ul.job_listings li.job_listing a .content {
	float: none;
	width: auto;
	padding: 0;
	min-width: 0;
	line-height: 1.3;
}

/*
 * v1.84.0 — !important aprovado explicitamente: o título é um <h3> nativo
 * do template do plugin, já governado pelo !important global de H3
 * (Tipografia, style.css v1.81.1). Sem !important aqui, o slider dedicado
 * "Widgets — Título" (cais_widget_font_size) nunca venceria essa regra —
 * confirmado ao vivo na v1.83.0 (18px, o H3 global publicado, aparecia
 * nos 3 widgets antes desta correção). widgets.css carrega DEPOIS de
 * style.css (cais_enqueue_assets(), functions.php) — entre 2 declarações
 * !important de igual especificidade, a última na ordem da folha de
 * estilo vence, sem precisar de mais nada.
 */
.widget_recent_jobs ul.job_listings li.job_listing a .position h3,
.widget_featured_jobs ul.job_listings li.job_listing a .position h3 {
	font-family: var(--font-heading) !important;
	font-weight: 700 !important;
	font-size: var(--cais-widget-font-size, 13px) !important;
	line-height: 1.3;
	color: var(--color-text);
	margin: 0 0 0.3rem;
	transition: color 0.15s ease;
}

.widget_recent_jobs ul.job_listings li.job_listing a:hover .position h3,
.widget_featured_jobs ul.job_listings li.job_listing a:hover .position h3 {
	color: var(--color-primary);
}

.widget_recent_jobs ul.job_listings li.job_listing a ul.meta,
.widget_featured_jobs ul.job_listings li.job_listing a ul.meta {
	float: none;
	width: auto;
	text-align: left;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem 0;
	color: var(--color-text-secondary);
	font-size: var(--cais-widget-meta-size, 12px);
	line-height: 1.4;
}

.widget_recent_jobs ul.job_listings li.job_listing a ul.meta li,
.widget_featured_jobs ul.job_listings li.job_listing a ul.meta li {
	display: inline;
}

/*
 * Separador "·" só entre itens de texto simples (localização/empresa) —
 * nunca antes/depois do badge de tipo de vaga (.job-type), que já se
 * distingue visualmente por si só (pílula com fundo), um separador de
 * texto ao lado ficaria redundante/desalinhado.
 */
.widget_recent_jobs ul.job_listings li.job_listing a ul.meta li:not(.job-type):not(:last-child)::after,
.widget_featured_jobs ul.job_listings li.job_listing a ul.meta li:not(.job-type):not(:last-child)::after {
	content: '·';
	margin: 0 0.4rem;
	color: var(--color-border);
}

/*
 * Badge de tipo de vaga no estilo das tags de listagem do Cais (mesmos
 * tokens de .job-badge, jobs-listing.css — nunca a mesma classe, o
 * template nativo do widget (content-widget-job_listing.php, plugin,
 * nunca editável) não imprime "job-badge" no <li>, só ".job-type").
 * Cor única e consistente (--color-primary-light/-dark), nunca a rotação
 * por term_id de cais_get_job_badge_class() — essa função só é chamada a
 * partir de contextos do próprio tema (content-jobs-listing.php), nunca
 * alcançável a partir de um template nativo do plugin.
 */
.widget_recent_jobs ul.job_listings li.job_listing a ul.meta li.job-type,
.widget_featured_jobs ul.job_listings li.job_listing a ul.meta li.job-type {
	background: var(--color-primary-light);
	color: var(--color-primary-dark);
	font-size: var(--cais-widget-meta-size, 12px);
	font-weight: 700;
	padding: 0.15rem 0.5rem;
	border-radius: var(--radius-sm);
	line-height: 1.4;
	margin: 0.1rem 0;
}

/*
 * Visibilidade de metadados (v1.84.0) — classe em <body>
 * (cais_add_layout_body_classes(), functions.php, nunca só no preview do
 * Customizer). Só para os widgets de VAGAS (Recent/Featured Jobs) — os
 * de currículos não têm um conceito equivalente de "empresa"/"tipo".
 */
body.cais-hide-widget-company .widget_recent_jobs ul.job_listings li.job_listing a ul.meta li.company,
body.cais-hide-widget-company .widget_featured_jobs ul.job_listings li.job_listing a ul.meta li.company {
	display: none;
}

body.cais-hide-widget-location .widget_recent_jobs ul.job_listings li.job_listing a ul.meta li.location,
body.cais-hide-widget-location .widget_featured_jobs ul.job_listings li.job_listing a ul.meta li.location {
	display: none;
}

body.cais-hide-widget-type .widget_recent_jobs ul.job_listings li.job_listing a ul.meta li.job-type,
body.cais-hide-widget-type .widget_featured_jobs ul.job_listings li.job_listing a ul.meta li.job-type {
	display: none;
}

/*
 * Separadores "órfãos" — a ordem real do DOM nativo é sempre location →
 * company → tipo(s) (content-widget-job_listing.php, plugin). O
 * separador de um item é sempre gerado por causa do que o segue NO DOM
 * (nunca do que está visível), por isso esconder um campo do MEIO deixa
 * um "·" pendurado antes de um badge/nada. Corrigido removendo só o
 * separador do item imediatamente ANTERIOR ao campo escondido — nunca o
 * do próprio campo escondido (esse já não renderiza, um <li display:none>
 * nunca desenha o seu próprio ::after).
 */
body.cais-hide-widget-company .widget_recent_jobs ul.job_listings li.job_listing a ul.meta li.location::after,
body.cais-hide-widget-company .widget_featured_jobs ul.job_listings li.job_listing a ul.meta li.location::after {
	content: none;
}

body.cais-hide-widget-type .widget_recent_jobs ul.job_listings li.job_listing a ul.meta li.company::after,
body.cais-hide-widget-type .widget_featured_jobs ul.job_listings li.job_listing a ul.meta li.company::after {
	content: none;
}

/* ============================================================
   Currículos Recentes / Currículos em Destaque
   (WP_Resume_Manager_Widget_Recent_Resumes /
   WP_Resume_Manager_Widget_Featured_Resumes, addon Resume Manager)

   Mesma estrutura de solução dos widgets de vagas acima (nunca duplicada
   à letra — os nomes de classe do DOM nativo diferem: ".candidate" em vez
   de ".position", sem bloco ".image"/logótipo). O CSS nativo do addon
   (wp-job-manager-resume-frontend) é carregado INCONDICIONALMENTE em
   todo o site (confirmado por leitura direta — nunca gated a uma página),
   por isso está sempre pronto a competir, independentemente de o widget
   estar em uso nalguma sidebar.
   ============================================================ */
.widget_recent_resumes ul.resumes,
.widget_featured_resumes ul.resumes {
	border-top: none;
}

.widget_recent_resumes ul.resumes li.resume,
.widget_featured_resumes ul.resumes li.resume {
	border-bottom: 1px solid var(--color-border);
}

.widget_recent_resumes ul.resumes li.resume:last-child,
.widget_featured_resumes ul.resumes li.resume:last-child {
	border-bottom: none;
}

.widget_recent_resumes ul.resumes li.resume a,
.widget_featured_resumes ul.resumes li.resume a {
	display: block;
	padding: var(--space-sm) 0;
}

.widget_recent_resumes ul.resumes li.resume a:hover,
.widget_recent_resumes ul.resumes li.resume a:focus,
.widget_featured_resumes ul.resumes li.resume a:hover,
.widget_featured_resumes ul.resumes li.resume a:focus {
	background-color: transparent;
}

/* Mesmo realce nativo amarelo do plugin de vagas (#fefee5) existe aqui
   para candidatos em destaque — mesma neutralização, mesma razão. */
.widget_recent_resumes ul.resumes li.resume.resume_featured a,
.widget_featured_resumes ul.resumes li.resume.resume_featured a {
	background: transparent;
}

.widget_recent_resumes ul.resumes li.resume .candidate,
.widget_featured_resumes ul.resumes li.resume .candidate {
	float: none;
	width: auto;
	padding: 0;
	min-width: 0;
	line-height: 1.3;
}

/* Mesma razão do !important em .position h3 acima — <h3> nativo,
   independente do H3 global de Tipografia (v1.84.0). */
.widget_recent_resumes ul.resumes li.resume .candidate h3,
.widget_featured_resumes ul.resumes li.resume .candidate h3 {
	font-family: var(--font-heading) !important;
	font-weight: 700 !important;
	font-size: var(--cais-widget-font-size, 13px) !important;
	line-height: 1.3;
	color: var(--color-text);
	margin: 0 0 0.3rem;
	transition: color 0.15s ease;
}

.widget_recent_resumes ul.resumes li.resume a:hover .candidate h3,
.widget_featured_resumes ul.resumes li.resume a:hover .candidate h3 {
	color: var(--color-primary);
}

.widget_recent_resumes ul.resumes li.resume ul.meta,
.widget_featured_resumes ul.resumes li.resume ul.meta {
	float: none;
	width: auto;
	text-align: left;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	color: var(--color-text-secondary);
	font-size: var(--cais-widget-meta-size, 12px);
	line-height: 1.4;
}

.widget_recent_resumes ul.resumes li.resume ul.meta li,
.widget_featured_resumes ul.resumes li.resume ul.meta li {
	display: inline;
}

.widget_recent_resumes ul.resumes li.resume ul.meta li:not(:last-child)::after,
.widget_featured_resumes ul.resumes li.resume ul.meta li:not(:last-child)::after {
	content: '·';
	margin: 0 0.4rem;
	color: var(--color-border);
}

/* ============================================================
   MAS Company Search (MAS_WPJMC_Widget_Company_Search, addon MAS Company)

   O plugin nunca enfileira nenhum CSS próprio para este formulário nem
   carrega a fonte de ícones "Line Awesome" que usa (<i class="la
   la-search">) — o glifo já nasce sempre em branco, com ou sem esta
   folha de estilos (fora de escopo corrigir, exigiria carregar uma
   biblioteca de ícones só para isto). Reskin mínimo do input/botão,
   mesmos tokens de borda/raio já usados em .btn-view-company
   (single-job.css) e nos campos de formulário do resto do tema.
   ============================================================ */
.mas-wpjmc-search {
	display: flex;
	gap: var(--space-sm);
}

.mas-wpjmc-search .search-field {
	flex: 1;
	min-width: 0;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 0.5rem 0.75rem;
	font-size: var(--text-sm);
	color: var(--color-text);
	background: var(--color-background);
}

.mas-wpjmc-search .search-field:focus {
	outline: none;
	border-color: var(--color-primary);
}

.mas-wpjmc-search button[type="submit"] {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	border: 1px solid var(--color-primary);
	border-radius: var(--radius-sm);
	padding: 0.5rem 0.85rem;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--color-primary-contrast, #ffffff) !important;
	background: var(--color-primary);
	cursor: pointer;
}

.mas-wpjmc-search button[type="submit"]:hover {
	background: var(--color-primary-dark);
	border-color: var(--color-primary-dark);
}

/* O ícone "la la-search" nunca carrega (fonte ausente do plugin) — a
   classe .sr-only do botão já esconde o <label>; aqui só se garante que
   um <i> vazio nunca ocupa espaço/gap visível quando não renderiza nada. */
.mas-wpjmc-search button[type="submit"] i.la {
	display: none;
}
