/* AFLEC — liste des postes (plugin). Uses the theme's colour variables when present. */
.jobboard { --jb-ink: var(--ink, #212C61); --jb-blue: var(--blue, #226198); --jb-red: var(--red, #EC1B2E); --jb-green: var(--green, #37B34A); --jb-line: var(--line, #CDD4E2); --jb-muted: var(--muted, #5A6577); margin-block: clamp(2rem, 5vw, 3.5rem); }
.jb-head { display: flex; flex-direction: column; gap: .7rem; margin-bottom: 1.5rem; }
.jb-head h2 { margin: 0; color: var(--jb-ink); }
.jb-bars { display: flex; gap: 0; }
.jb-bars i { width: 3.4rem; height: 12px; background: var(--jb-blue); transform: skewX(-25deg); }
.jb-bars i:nth-child(2) { background: var(--jb-red); }
.jb-bars i:nth-child(3) { background: var(--jb-green); border-radius: 0 6px 6px 0; }
.jb-bars i:first-child { border-radius: 6px 0 0 6px; }

.jb-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .9rem 1rem; padding: 1.1rem 1.25rem; margin: 0 0 1.25rem; background: var(--mist, #EDF1F7); border-radius: 10px; }
.jb-hint { flex-basis: 100%; margin: 0; font-size: .9rem; color: var(--jb-muted); }
.jb-field { display: flex; flex-direction: column; gap: .3rem; flex: 1 1 15rem; min-width: 0; }
.jb-field label { font: 700 .78rem/1 var(--sans, sans-serif); letter-spacing: .08em; text-transform: uppercase; color: var(--jb-blue); }
.jb-field select { width: 100%; min-height: 46px; padding: .55rem 2.2rem .55rem .8rem; border: 1px solid var(--jb-line); border-radius: 8px; background: #fff; font: 600 1rem var(--sans, sans-serif); color: var(--jb-ink); }
.jb-field select:focus-visible { outline: 3px solid #9FC3E8; outline-offset: 1px; }
.jb-reset { min-height: 46px; padding: .5rem 1rem; background: #fff; border: 1px solid var(--jb-ink); border-radius: 8px; color: var(--jb-ink); font: 600 .92rem var(--sans, sans-serif); cursor: pointer; }
.jb-reset:hover { background: var(--jb-ink); color: #fff; }
.jb-count { margin: 0 0 0 auto; align-self: center; font-weight: 700; color: var(--jb-ink); white-space: nowrap; }

.jb-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.jb-item[hidden] { display: none; }
.jb-item a { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, 13rem) minmax(0, 13rem); gap: 1rem 1.25rem; align-items: center; padding: 1rem 1.25rem; background: #fff; border: 1px solid var(--jb-line); border-radius: 10px; color: var(--jb-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.jb-item a:hover, .jb-item a:focus-visible { border-color: var(--jb-ink); box-shadow: 0 8px 22px rgba(33,44,97,.10); transform: translateY(-1px); }
.jb-logo { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: #fff; border: 1px solid var(--jb-line); }
.jb-logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.jb-logo.is-initials { background: var(--jb-ink); border-color: var(--jb-ink); color: #fff; font: 700 .8rem/1 var(--sans, sans-serif); letter-spacing: .04em; }
.jb-main { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.jb-title { font: 700 1.02rem/1.35 var(--sans, sans-serif); color: var(--jb-ink); }
.jb-item a:hover .jb-title { color: var(--jb-blue); text-decoration: underline; }
.jb-sub { display: flex; flex-wrap: wrap; gap: .2rem 1rem; font-size: .88rem; color: var(--jb-muted); }
.jb-where { font-size: .92rem; color: var(--jb-muted); }
.jb-side { display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; text-align: end; }
.jb-status { font: 700 .86rem/1.3 var(--sans, sans-serif); color: #C77700; }
.jb-ago { font-size: .8rem; color: var(--jb-muted); padding-inline-start: .6rem; border-inline-start: 2px solid var(--jb-line); }
.jb-none, .jb-empty { padding: 1.25rem; background: var(--mist, #EDF1F7); border-radius: 10px; color: var(--jb-muted); }
@media (max-width: 900px) {
	.jb-item a { grid-template-columns: 48px minmax(0, 1fr); }
	.jb-logo { width: 48px; height: 48px; }
	.jb-where, .jb-side { grid-column: 2; align-items: flex-start; text-align: start; }
	.jb-where { margin-top: -.6rem; }
	.jb-side { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; margin-top: -.6rem; }
	.jb-count { margin-inline-start: 0; flex-basis: 100%; }
}
.jobboard .jb-list, .entry .jobboard .jb-list { padding: 0; margin-inline: 0; }
.jobboard .jb-item { margin: 0; }
.jobboard .jb-item::before { content: none; }
