/*
 * jobs.css
 * CityPress – style dla wtyczki Careerjet Job List + formularz w archive-header
 */

/* ================================================================
   FORMULARZ W ARCHIVE-HEADER
   ================================================================ */
.jobs-search {
	margin-top: var(--sp-6);
}

.jobs-search__grid {
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: var(--sp-4);
	align-items: end;
}

.jobs-search__field span {
	display: block;
	font-size: var(--fs-13);
	font-weight: 600;
	color: var(--color-text-muted);
	margin-bottom: var(--sp-2);
}

.jobs-search__field input {
	width: 100%;
	padding: var(--sp-3) var(--sp-4);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface-sub);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-15);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.jobs-search__field input:focus {
	outline: none;
	border-color: var(--cp-red);
	box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.12);
}

.jobs-search__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--sp-3) var(--sp-6);
	background: var(--cp-red);
	color: #fff;
	border: none;
	border-radius: var(--radius-md);
	font-family: var(--font-heading);
	font-size: var(--fs-15);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s ease, transform 0.1s ease;
}

.jobs-search__btn:hover {
	background: var(--cp-navy);
}

@media (max-width: 768px) {
	.jobs-search__grid {
		grid-template-columns: 1fr;
	}

	.jobs-search__btn {
		width: 100%;
	}
}

/* ================================================================
   LISTA OFERT (styl wtyczki)
   ================================================================ */
.cj-job-list {
	max-width: 100%;
	margin: var(--sp-6) 0 0 0;
	font-family: var(--font-body);
	color: var(--color-text);
}

/* Meta (liczba wyników) */
.cj-job-list__meta {
	margin: 0 0 var(--sp-4) 0;
	font-size: var(--fs-14);
	color: var(--color-text-muted);
}

/* Lista */
.cj-job-list__items {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

/* Karta oferty */
.cj-job-list__item {
	padding: var(--sp-5) var(--sp-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cj-job-list__item:hover {
	border-color: var(--cp-red);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
}

/* Tytuł */
.cj-job-list__title {
	font-family: var(--font-heading);
	font-size: var(--fs-18);
	font-weight: 600;
	color: var(--color-text);
	text-decoration: none;
	line-height: var(--lh-snug);
	transition: color 0.15s ease;
}

.cj-job-list__title:hover {
	color: var(--cp-red);
}

/* Meta linia: firma · lokalizacja · wynagrodzenie · data */
.cj-job-list__sub {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-2);
	margin-top: var(--sp-2);
	font-size: var(--fs-13);
	color: var(--color-text-muted);
}

.cj-job-list__company {
	font-weight: 600;
	color: var(--color-text);
}

.cj-job-list__salary {
	color: var(--cp-green);
	font-weight: 600;
}

.cj-job-list__dot {
	color: var(--color-border);
}

/* Opis */
.cj-job-list__desc {
	margin-top: var(--sp-3);
	font-size: var(--fs-14);
	line-height: var(--lh-relaxed);
	color: var(--color-text-muted);
}

/* ================================================================
   PAGINACJA — identyczna z .pagination z archive.css
   paginate_links(type=list) generuje <ul class="page-numbers"> z <a class="page-numbers">
   ================================================================ */
.cj-job-list__pagination ul.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-2);
	margin: var(--sp-8) 0;
	list-style: none;
	padding: 0;
	flex-wrap: wrap;
}

.cj-job-list__pagination ul.page-numbers li {
	display: contents; /* li niewidoczne, <a>/<span> wewnątrz trafiają prosto do flexa */
}

.cj-job-list__pagination a.page-numbers,
.cj-job-list__pagination span.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 var(--sp-2);
	border-radius: var(--radius-sm);
	font-family: var(--font-heading);
	font-size: var(--fs-16);
	font-weight: 600;
	text-decoration: none;
	color: var(--color-text);
	transition: background var(--ease-base), color var(--ease-base);
}

.cj-job-list__pagination a.page-numbers:not(.current):not(.dots):hover {
	background: var(--color-surface-alt);
}

.cj-job-list__pagination span.page-numbers.current {
	background: var(--cp-navy);
	color: #fff;
	pointer-events: none;
}

/* Poprzednia / Następna — szersze, font body */
.cj-job-list__pagination a.page-numbers.prev,
.cj-job-list__pagination a.page-numbers.next {
	padding: 0 var(--sp-4);
	font-family: var(--font-body);
	font-size: var(--fs-14);
}

/* ================================================================
   STANY: błąd / ostrzeżenie / brak wyników
   ================================================================ */
.cj-job-list__error {
	padding: var(--sp-5);
	border: 1px solid rgba(244, 63, 94, 0.3);
	border-radius: var(--radius-md);
	background: rgba(244, 63, 94, 0.05);
	color: var(--cp-red);
	font-size: var(--fs-14);
}

.cj-job-list__warning {
	padding: var(--sp-5);
	border: 1px solid rgba(249, 115, 22, 0.3);
	border-radius: var(--radius-md);
	background: rgba(249, 115, 22, 0.05);
	color: var(--cp-orange);
	font-size: var(--fs-14);
}

.cj-job-list__empty {
	padding: var(--sp-8) 0;
	text-align: center;
	color: var(--color-text-muted);
	font-size: var(--fs-15);
}

/* Sugestie lokalizacji */
.cj-job-list__suggestions {
	margin: var(--sp-3) 0 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

.cj-job-list__suggestions li a {
	display: inline-block;
	padding: var(--sp-2) var(--sp-4);
	background: var(--color-surface-alt);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-size: var(--fs-13);
	color: var(--color-text);
	text-decoration: none;
	transition: all 0.15s ease;
}

.cj-job-list__suggestions li a:hover {
	background: var(--cp-navy);
	border-color: var(--cp-navy);
	color: #fff;
}

/* Disclaimer */
.cj-job-list__disclaimer {
	margin-top: var(--sp-6);
	font-size: var(--fs-12);
	color: var(--color-text-faint);
}

.cj-job-list__disclaimer a {
	color: var(--color-text-faint);
	text-decoration: underline;
}

/* Mobile */
@media (max-width: 768px) {
	.cj-job-list__item {
		padding: var(--sp-4);
	}
}
