/* Job Board & Candidature — front-end */

.jb-board,
.jb-single-wrap,
.jb-archive-wrap,
.jb-application-form {
	--jb-primary: var(--porto-primary-color, #1e73be);
	--jb-primary-dark: #155c99;
	--jb-primary-soft: #e9f2fb;
	--jb-primary-ink: #ffffff;
	--jb-accent: var(--porto-secondary-color, #188268);
	--jb-accent-soft: #e6f4ef;
	--jb-ink: #1d2127;
	--jb-muted: #6b7280;
	--jb-border: #e5e9ef;
	--jb-bg: #f5f8fb;
	--jb-card: #ffffff;
	--jb-success-bg: #ecfdf3;
	--jb-success-ink: #14532d;
	--jb-success-border: #86e0a6;
	--jb-error-bg: #fef3f2;
	--jb-error-ink: #7a271a;
	--jb-error-border: #f4a29a;
	--jb-info-bg: #eff6ff;
	--jb-info-ink: #1e40af;
	--jb-info-border: #93bbfb;
	--jb-radius-lg: 16px;
	--jb-radius: 10px;
	--jb-radius-sm: 7px;
	--jb-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);
	--jb-shadow-md: 0 4px 8px rgba(16, 24, 40, .06), 0 2px 4px rgba(16, 24, 40, .08);
	font-size: 16px;
	color: var(--jb-ink);
}

.jb-board *, .jb-single-wrap *, .jb-archive-wrap *, .jb-application-form * { box-sizing: border-box; }

/* ---------- Buttons ---------- */
.jb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	font: inherit;
	font-weight: 600;
	font-size: .95rem;
	padding: .8rem 1.5rem;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
	transition: transform .05s ease, box-shadow .15s ease, background-color .15s ease;
}
.jb-btn:active { transform: translateY(1px); }
.jb-btn-primary { background: var(--jb-primary); color: var(--jb-primary-ink); box-shadow: var(--jb-shadow); }
.jb-btn-primary:hover { background: var(--jb-primary-dark); color: var(--jb-primary-ink); }
.jb-btn-secondary { background: #fff; color: var(--jb-ink); border-color: var(--jb-border); }
.jb-btn-secondary:hover { border-color: var(--jb-primary); color: var(--jb-primary); }
.jb-btn-block { display: flex; width: 100%; }
.jb-btn[disabled] { opacity: .6; cursor: progress; }

/* ---------- Filters ---------- */
.jb-board-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.1rem; margin-bottom: 1.75rem; }
.jb-filter { display: flex; flex-direction: column; gap: .35rem; font-size: .82rem; color: var(--jb-muted); font-weight: 600; }
.jb-filter select {
	font: inherit;
	font-size: .92rem;
	color: var(--jb-ink);
	padding: .6rem 2rem .6rem .9rem;
	border: 1px solid var(--jb-border);
	border-radius: 999px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23667085' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") no-repeat right .9rem center;
	appearance: none;
	-webkit-appearance: none;
	min-width: 150px;
	cursor: pointer;
}
.jb-filter select:focus { outline: 2px solid var(--jb-primary); outline-offset: 1px; }
.jb-filter-reset { align-self: center; font-size: .85rem; color: var(--jb-muted); text-decoration: none; padding-bottom: .55rem; }
.jb-filter-reset:hover { color: var(--jb-error-ink); }

.jb-board-count { margin: 0 0 1.1rem; font-size: .88rem; color: var(--jb-muted); font-weight: 600; }

/* ---------- Board grid & cards ---------- */
.jb-board-grid { display: grid; gap: 1.4rem; }
.jb-board-grid.jb-cols-2 { grid-template-columns: repeat(2, 1fr); }
.jb-board-grid.jb-cols-3 { grid-template-columns: repeat(3, 1fr); }
.jb-board-grid.jb-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .jb-board-grid.jb-cols-3, .jb-board-grid.jb-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .jb-board-grid[class*="jb-cols-"] { grid-template-columns: 1fr; } }

.jb-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--jb-border);
	border-radius: var(--jb-radius-lg);
	background: var(--jb-card);
	overflow: hidden;
	box-shadow: var(--jb-shadow);
	transition: box-shadow .18s ease, transform .18s ease;
}
.jb-card:hover { box-shadow: var(--jb-shadow-md); transform: translateY(-2px); }
.jb-card-media { display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, #eaf2fb, #d6e6f7); }
.jb-card-media--placeholder { display: flex; align-items: center; justify-content: center; }
.jb-card-media-icon { font-size: 2.4rem; opacity: .45; }
.jb-card-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.jb-card-body { padding: 1.15rem 1.25rem 1.35rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.jb-card-title { margin: 0; font-size: 1.12rem; line-height: 1.35; }
.jb-card-title a { text-decoration: none; color: var(--jb-ink); }
.jb-card-title a:hover { color: var(--jb-primary); }
.jb-card-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.jb-card-excerpt { font-size: .9rem; color: var(--jb-muted); line-height: 1.55; flex: 1; }
.jb-card-excerpt p { margin: 0; }
.jb-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .3rem; padding-top: .85rem; border-top: 1px solid var(--jb-border); }
.jb-card-deadline { font-size: .78rem; color: var(--jb-muted); }
.jb-card-link { font-weight: 700; font-size: .88rem; text-decoration: none; color: var(--jb-primary); white-space: nowrap; }
.jb-card-link:hover { color: var(--jb-primary-dark); }

.jb-board-empty { display: flex; flex-direction: column; align-items: center; gap: .6rem; padding: 3.5rem 2rem; text-align: center; color: var(--jb-muted); background: var(--jb-bg); border-radius: var(--jb-radius-lg); border: 1px dashed var(--jb-border); }
.jb-board-empty-icon { font-size: 2.2rem; }
.jb-board-empty p { margin: 0; }

.jb-board-pagination { display: flex; gap: .4rem; justify-content: center; margin-top: 2.25rem; }
.jb-board-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.3rem; height: 2.3rem; padding: 0 .4rem; border: 1px solid var(--jb-border); border-radius: 999px; text-decoration: none; color: var(--jb-ink); font-size: .88rem; }
.jb-board-pagination .current { background: var(--jb-primary); color: #fff; border-color: var(--jb-primary); }
.jb-board-pagination a.page-numbers:hover { border-color: var(--jb-primary); color: var(--jb-primary); }

/* Pills / badges */
.jb-pill {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .78rem;
	font-weight: 600;
	color: var(--jb-muted);
	background: var(--jb-bg);
	border: 1px solid var(--jb-border);
	border-radius: 999px;
	padding: .3rem .7rem;
	list-style: none;
}
.jb-badges { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.jb-badges .jb-pill { font-size: .85rem; color: var(--jb-ink); }

/* ---------- Archive header ---------- */
.jb-archive-wrap { max-width: 1180px; margin: 0 auto; padding: 2.5rem 1.25rem 4rem; }
.jb-archive-head { margin-bottom: 2rem; }
.jb-archive-title { margin: 0 0 .4rem; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.jb-archive-subtitle { margin: 0; color: var(--jb-muted); font-size: 1.02rem; }

/* ---------- Single position page ---------- */
.jb-single-wrap { max-width: 1100px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }
.jb-back { display: inline-flex; align-items: center; gap: .3rem; color: var(--jb-muted); text-decoration: none; font-size: .9rem; font-weight: 600; margin-bottom: 1.25rem; }
.jb-back:hover { color: var(--jb-primary); }

.jb-single-hero { margin: 0 0 1.75rem; border-radius: var(--jb-radius-lg); overflow: hidden; box-shadow: var(--jb-shadow); }
.jb-single-hero img { display: block; width: 100%; max-height: 420px; object-fit: cover; }

.jb-single-title { font-size: clamp(1.6rem, 3.2vw, 2.3rem); line-height: 1.25; margin: 0 0 1rem; }

.jb-single-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 2.5rem; align-items: start; }
@media (max-width: 860px) { .jb-single-grid { grid-template-columns: 1fr; gap: 1.75rem; } }

.jb-single-cta-mobile { margin: 0 0 1.5rem; }
@media (min-width: 861px) { .jb-single-cta-mobile { display: none; } }

.jb-section-title { font-size: 1.1rem; margin: 0 0 .9rem; }
.jb-requirements-box { background: var(--jb-bg); border: 1px solid var(--jb-border); border-radius: var(--jb-radius-lg); padding: 1.4rem 1.6rem; margin: 0 0 1.75rem; }
.jb-requirements-list { margin: 0; padding-left: 1.3rem; display: flex; flex-direction: column; gap: .55rem; font-size: .97rem; line-height: 1.5; color: #2b2f38; }
.jb-requirements-list li { padding-left: .2rem; }
.jb-requirements-list li::marker { color: var(--jb-primary); }

.jb-single-body { font-size: 1.02rem; line-height: 1.75; color: #2b2f38; }
.jb-single-body > *:first-child { margin-top: 0; }

.jb-single-aside { position: relative; }
@media (min-width: 861px) { .jb-single-aside { position: sticky; top: 1.5rem; } }
.jb-apply-card { background: var(--jb-card); border: 1px solid var(--jb-border); border-radius: var(--jb-radius-lg); box-shadow: var(--jb-shadow); padding: 1.5rem; }
.jb-apply-card h2 { margin: 0 0 1.1rem; font-size: 1.05rem; }
.jb-fact-list { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-direction: column; gap: .85rem; }
.jb-fact-list li { display: flex; gap: .7rem; align-items: flex-start; }
.jb-fact-icon { font-size: 1.05rem; line-height: 1.5; }
.jb-fact-text { display: flex; flex-direction: column; font-size: .92rem; }
.jb-fact-label { color: var(--jb-muted); font-size: .76rem; text-transform: uppercase; letter-spacing: .02em; }
.jb-fact-value { color: var(--jb-ink); font-weight: 600; }

/* Share buttons */
.jb-share { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: 1.4rem; padding-top: 1.25rem; border-top: 1px solid var(--jb-border); }
.jb-share-label { flex-basis: 100%; font-weight: 700; font-size: .78rem; color: var(--jb-muted); text-transform: uppercase; letter-spacing: .02em; margin-bottom: .2rem; }
.jb-share-btn { font: inherit; font-size: .8rem; line-height: 1; padding: .5rem .75rem; border-radius: 999px; border: 1px solid var(--jb-border); background: #fff; color: var(--jb-ink); text-decoration: none; cursor: pointer; }
.jb-share-btn:hover { background: var(--jb-bg); border-color: var(--jb-primary); color: var(--jb-primary); }
.jb-share-copy.jb-copied { background: var(--jb-success-bg); border-color: var(--jb-success-border); color: var(--jb-success-ink); }

/* ---------- Application form ---------- */
#jb-apply { scroll-margin-top: 1.5rem; }
.jb-application-form { margin: 2.5rem 0 0; }
.jb-form-card { background: var(--jb-card); border: 1px solid var(--jb-border); border-radius: var(--jb-radius-lg); box-shadow: var(--jb-shadow); padding: clamp(1.4rem, 3vw, 2.25rem); }
.jb-form-title { margin: 0 0 .35rem; font-size: 1.4rem; }
.jb-form-subtitle { margin: 0 0 1.6rem; color: var(--jb-muted); font-size: .95rem; }

.jb-form-section { padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--jb-border); }
.jb-form-section:last-of-type,
.jb-form-section--consent { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.jb-form-section-title { margin: 0 0 1rem; font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--jb-muted); }

.jb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 600px) { .jb-grid { grid-template-columns: 1fr; } }
.jb-field { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 1.1rem; }
.jb-form-section > .jb-grid > .jb-field,
.jb-form-section > .jb-field { margin-bottom: 0; }
.jb-form-section > .jb-grid { margin-bottom: 1.1rem; }
.jb-field--wide { grid-column: 1 / -1; }
.jb-field label { font-weight: 600; font-size: .9rem; color: var(--jb-ink); }
.jb-field input[type=text],
.jb-field input[type=email],
.jb-field input[type=tel],
.jb-field input[type=url],
.jb-field input[type=number],
.jb-field textarea,
.jb-field select {
	font: inherit;
	padding: .7rem .9rem;
	border: 1px solid var(--jb-border);
	border-radius: var(--jb-radius);
	width: 100%;
	background: #fff;
	color: var(--jb-ink);
}
.jb-field input:focus, .jb-field textarea:focus, .jb-field select:focus { outline: none; border-color: var(--jb-primary); box-shadow: 0 0 0 3px rgba(36, 84, 199, .15); }
.jb-field.jb-invalid input, .jb-field.jb-invalid textarea, .jb-field.jb-invalid select { border-color: var(--jb-error-border); background: var(--jb-error-bg); }
.jb-req { color: #d92d20; }
.jb-hint { font-weight: 400; color: var(--jb-muted); font-size: .78rem; margin-left: .35rem; }

/* File input */
.jb-file-wrap input[type=file] {
	font: inherit;
	font-size: .88rem;
	width: 100%;
	padding: .55rem .8rem .55rem .55rem;
	border: 1px dashed var(--jb-border);
	border-radius: var(--jb-radius);
	background: var(--jb-bg);
	color: var(--jb-muted);
}
.jb-file-wrap input[type=file].jb-invalid,
.jb-field.jb-invalid .jb-file-wrap input[type=file] { border-color: var(--jb-error-border); background: var(--jb-error-bg); }
.jb-file-wrap input[type=file]::file-selector-button {
	font: inherit;
	font-weight: 600;
	font-size: .85rem;
	margin-right: .8rem;
	padding: .55rem 1rem;
	border: 0;
	border-radius: 999px;
	background: var(--jb-primary);
	color: #fff;
	cursor: pointer;
}
.jb-file-wrap input[type=file]::file-selector-button:hover { background: var(--jb-primary-dark); }

.jb-questions { border: 1px solid var(--jb-border); border-radius: var(--jb-radius); padding: 1.1rem 1.3rem; background: var(--jb-bg); }
.jb-questions legend { font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; color: var(--jb-muted); padding: 0 .4rem; }
.jb-questions .jb-field:last-child { margin-bottom: 0; }
.jb-radio-group, .jb-checkbox-group { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; }
.jb-radio, .jb-checkbox { display: flex; align-items: flex-start; gap: .5rem; font-weight: 400; font-size: .92rem; cursor: pointer; }
.jb-radio input, .jb-checkbox input { margin-top: .2rem; width: 1.05rem; height: 1.05rem; accent-color: var(--jb-primary); flex-shrink: 0; }
.jb-consent .jb-checkbox span { font-size: .87rem; color: #3a3f4a; line-height: 1.5; }

.jb-submit { margin-top: .3rem; }
.jb-privacy-note { font-size: .8rem; color: var(--jb-muted); margin: .9rem 0 0; }

.jb-alert { display: flex; align-items: flex-start; gap: .6rem; padding: .95rem 1.1rem; border-radius: var(--jb-radius); margin-bottom: 1.4rem; font-size: .9rem; border: 1px solid transparent; }
.jb-alert[hidden] { display: none; }
.jb-alert ul { margin: 0; padding-left: 1.1rem; }
.jb-alert-icon { flex-shrink: 0; line-height: 1.3; }
.jb-alert--success { background: var(--jb-success-bg); border-color: var(--jb-success-border); color: var(--jb-success-ink); }
.jb-alert--info { background: var(--jb-info-bg); border-color: var(--jb-info-border); color: var(--jb-info-ink); }
.jb-alert--error { background: var(--jb-error-bg); border-color: var(--jb-error-border); color: var(--jb-error-ink); }

/* ---------- v0.5: "Lavora con noi" page ---------- */
.jb-page { max-width: 1180px; }
.jb-btn-ghost { background: transparent; color: var(--jb-primary); border-color: var(--jb-primary); }
.jb-btn-ghost:hover { background: var(--jb-primary-soft); color: var(--jb-primary-dark); }

.jb-hero { display: grid; grid-template-columns: 1.25fr .9fr; gap: 2.4rem; align-items: center; background: var(--jb-card); border: 1px solid var(--jb-border); border-radius: var(--jb-radius-lg); box-shadow: 0 6px 24px rgba(30, 115, 190, .08); padding: clamp(1.6rem, 4vw, 2.8rem); margin-bottom: 1.2rem; }
.jb-hero--noimg { grid-template-columns: 1fr; }
.jb-eyebrow { display: inline-block; background: var(--jb-primary); color: #fff; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: .35rem .8rem; border-radius: 999px; margin-bottom: 1.1rem; }
.jb-hero-title { font-size: clamp(1.7rem, 3.4vw, 2.3rem); line-height: 1.2; margin: 0 0 .9rem; font-weight: 700; }
.jb-hero-intro { margin: 0 0 1.4rem; color: #4b5563; max-width: 60ch; font-size: 1.02rem; }
.jb-hero-cta { display: flex; flex-wrap: wrap; gap: .6rem; }
.jb-hero-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--jb-radius); }

.jb-stats { list-style: none; margin: 0 0 3rem; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
.jb-stat { background: var(--jb-card); border: 1px solid var(--jb-border); border-radius: var(--jb-radius); padding: 1.1rem 1rem 1rem; text-align: center; }
.jb-stat b { display: block; font-size: 1.8rem; color: var(--jb-primary); font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.jb-stat b.jb-stat-text { font-size: 1.3rem; line-height: 1.25; text-wrap: balance; }
.jb-stat span { display: block; font-size: .82rem; color: var(--jb-muted); margin-top: .25rem; }

.jb-section-head { margin: 0 0 1.2rem; }
.jb-section-head h2 { font-size: 1.4rem; margin: 0 0 .3rem; font-weight: 700; }
.jb-section-head p { margin: 0; color: var(--jb-muted); }
.jb-page .jb-board { margin-bottom: 3rem; }

.jb-why { list-style: none; margin: 0 0 3rem; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
.jb-why li { background: var(--jb-bg); border-radius: var(--jb-radius); padding: 1.15rem; display: flex; flex-direction: column; gap: .3rem; }
.jb-why-icon { width: 34px; height: 34px; border-radius: 9px; background: var(--jb-accent-soft); color: var(--jb-accent); display: grid; place-items: center; font-weight: 700; margin-bottom: .45rem; }
.jb-why b { font-size: .96rem; }
.jb-why span:not(.jb-why-icon) { font-size: .86rem; color: #4b5563; line-height: 1.5; }

.jb-steps { list-style: none; margin: 0 0 3rem; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: .9rem; counter-reset: jb-step; }
.jb-steps li { border-top: 3px solid var(--jb-primary); padding-top: .8rem; display: flex; flex-direction: column; gap: .3rem; }
.jb-steps li::before { counter-increment: jb-step; content: counter(jb-step); display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--jb-primary); color: #fff; font-size: .8rem; font-weight: 600; margin-bottom: .35rem; }
.jb-steps b { font-size: .96rem; }
.jb-steps span { font-size: .86rem; color: #4b5563; line-height: 1.5; }

.jb-spontaneous { display: grid; grid-template-columns: 1fr 1.5fr; gap: 2rem; align-items: start; background: var(--jb-bg); border-radius: var(--jb-radius-lg); padding: clamp(1.4rem, 3vw, 2.2rem); scroll-margin-top: 1.5rem; }
.jb-spontaneous-text h2 { margin: 0 0 .6rem; font-size: 1.3rem; }
.jb-spontaneous-text p { margin: 0 0 .8rem; color: #4b5563; font-size: .95rem; }
.jb-spontaneous-text .jb-muted { color: var(--jb-muted); font-size: .84rem; }
.jb-spontaneous .jb-application-form { margin: 0; }
.jb-spontaneous .jb-form-card { box-shadow: none; }

/* Card extras */
.jb-pill-salary { color: var(--jb-accent); background: var(--jb-accent-soft); border-color: transparent; }
.jb-pill-dept { color: var(--jb-primary-dark); background: var(--jb-primary-soft); border-color: transparent; }

/* Hide the theme sidebar on job pages and use the full width */
.post-type-archive-jb_position .sidebar, .single-jb_position .sidebar,
.tax-jb_department .sidebar, .tax-jb_location .sidebar, .tax-jb_contract .sidebar { display: none !important; }
.post-type-archive-jb_position .main-content, .single-jb_position .main-content,
.tax-jb_department .main-content, .tax-jb_location .main-content, .tax-jb_contract .main-content { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }

@media (max-width: 900px) {
	.jb-hero { grid-template-columns: 1fr; }
	.jb-stats, .jb-why { grid-template-columns: 1fr 1fr; }
	.jb-steps { grid-template-columns: 1fr 1fr 1fr; }
	.jb-spontaneous { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.jb-stats, .jb-why, .jb-steps { grid-template-columns: 1fr; }
}
