/* A small town's noticeboard, backed by the existing live job collection.
 * New names deliberately avoid the old homepage table's responsive rules. */
.j5.j5-home .j5-jobs-board {
    --board-green: #34745a;
    --board-ink: #17221c;
    --board-muted: #5d685f;
    --board-line: #d7ddd1;
    position: relative;
    padding-block: clamp(3rem,6vw,6rem);
    color: var(--board-ink);
}
.j5.j5-home .j5-board-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem 3rem; margin:0 0 2rem; }
.j5.j5-home .j5-board-heading > div { min-width:0; }
.j5.j5-home .j5-board-eyebrow { display:flex; align-items:center; gap:.65rem; margin:0 0 .85rem; color:var(--board-green); font-size:.6875rem; font-weight:700; line-height:1.6; letter-spacing:.14em; text-transform:uppercase; }
.j5.j5-home .j5-board-eyebrow svg { width:23px; height:23px; flex:0 0 23px; fill:none; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.j5.j5-home .j5-board-heading h2 { width:auto; max-width:none; margin:0; padding:0; color:var(--board-ink); font-family:inherit; font-size:clamp(2.25rem,4.3vw,4.15rem); font-weight:650; line-height:1.13; letter-spacing:-.055em; text-transform:none; text-align:left; }
.j5.j5-home .j5-board-heading h2 em { color:var(--board-green); font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.04em; }
.j5.j5-home .j5-board-intro { margin:1rem 0 0; color:var(--board-muted); font-size:.9375rem; line-height:1.65; }
.j5.j5-home .j5-board-all { display:inline-flex; align-items:center; justify-content:space-between; flex:0 0 auto; gap:1.4rem; min-height:48px; max-width:100%; margin:0 0 3px; padding:.5rem 0; border-bottom:1px solid var(--board-green); color:var(--board-green); font-size:.875rem; font-weight:600; line-height:1.5; text-decoration:none; }
.j5.j5-home .j5-board-all > span { font-size:1.4rem; }
.j5.j5-home .j5-board-count { display:flex; align-items:center; gap:.7rem; margin:0 0 1rem; color:var(--board-muted); font-size:.75rem; line-height:1.6; }
.j5.j5-home .j5-board-count-line { width:25px; height:1px; flex:0 0 25px; background:var(--board-green); }
.j5.j5-home .j5-board-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; align-items:start; }
.j5.j5-home .j5-board-card { position:relative; display:flex; flex-direction:column; min-width:0; margin:0; padding:1.75rem 1.75rem 0; border:1px solid var(--board-line); border-top:3px solid #bdcdbd; border-radius:3px; background:#fffefa; box-shadow:0 3px 0 #e9e9df; }
.j5.j5-home .j5-board-card:nth-child(4n+2), .j5.j5-home .j5-board-card:nth-child(4n+3) { border-top-color:#d2c7af; }
.j5.j5-home .j5-board-company { display:flex; align-items:center; gap:.85rem; min-width:0; margin-bottom:1.4rem; }
.j5.j5-home .j5-board-logo { display:inline-flex; align-items:center; justify-content:center; flex:0 0 56px; width:56px; height:56px; padding:5px; border:1px solid #e0e3da; border-radius:3px; background:#fff; color:var(--board-green); font-size:1rem; font-weight:600; }
.j5.j5-home .j5-board-logo img { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; }
.j5.j5-home .j5-board-company-name { display:block; min-width:0; flex:1 1 auto; color:var(--board-muted); font-size:.8125rem; font-weight:500; line-height:1.55; }
.j5.j5-home .j5-board-save { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; min-height:44px; margin:0 -.5rem 0 0; padding:10px; border:0; border-radius:3px; background:none; color:var(--board-green); cursor:pointer; }
.j5.j5-home .j5-board-save svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.65; }
.j5.j5-home .j5-board-save[aria-pressed="true"] svg { fill:var(--board-green); }
.j5.j5-home .j5-board-save:hover { background:#eaf0e8; }
.j5.j5-home .j5-board-job-title { width:auto; max-width:none; min-height:3.9em; margin:0; color:var(--board-ink); font-size:clamp(1.1875rem,1.8vw,1.5rem); font-weight:600; letter-spacing:-.025em; line-height:1.3; text-align:left; text-transform:none; }
.j5.j5-home .j5-board-job-title button { display:block; width:100%; max-width:100%; min-width:0; min-height:44px; margin:0; padding:0; border:0; border-radius:0; box-shadow:none; background:none; color:inherit; font:inherit; letter-spacing:inherit; text-align:left; text-transform:none; white-space:normal; cursor:pointer; }
.j5.j5-home .j5-board-job-title button:hover { color:var(--board-green); }
.j5.j5-home .j5-board-facts { display:flex; flex-wrap:wrap; align-items:flex-start; gap:.55rem 1.25rem; min-height:24px; margin:1.15rem 0 1.25rem; color:var(--board-muted); font-size:.8125rem; line-height:1.6; }
.j5.j5-home .j5-board-facts > span { display:inline-flex; align-items:flex-start; gap:.4rem; min-width:0; max-width:100%; }
.j5.j5-home .j5-board-facts svg { flex:0 0 17px; width:17px; height:17px; margin-top:2px; fill:none; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.j5.j5-home .j5-board-facts job-item-job-type > span { margin:0; padding:0; border:0; border-radius:0; background:none; color:inherit; font:inherit; }
.j5.j5-home .j5-board-card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.25rem 1rem; margin:0 0 .7rem; }
.j5.j5-home .j5-board-posted { display:block; max-width:100%; color:var(--board-muted); font-size:.6875rem; line-height:1.7; }
.j5.j5-home .j5-board-open { display:inline-flex; align-items:center; justify-content:space-between; flex:0 0 auto; gap:.8rem; min-height:44px; max-width:100%; margin:0; padding:.3rem 0; border:0; background:none; color:var(--board-green); font-size:.8125rem; font-weight:600; line-height:1.5; cursor:pointer; }
.j5.j5-home .j5-board-open > span { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid #d6e0d3; border-radius:50%; background:#f0f4ec; font-size:1.2rem; }
.j5.j5-home .j5-board-details { display:block; width:100%; margin:0; padding:0; border:0; border-top:1px solid #e3e6dc; color:var(--board-muted); font-size:.8125rem; }
.j5.j5-home .j5-board-details > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:48px; margin:0; padding:.65rem 0; list-style:none; color:var(--board-muted); font-size:.75rem; line-height:1.5; cursor:pointer; }
.j5.j5-home .j5-board-details > summary::-webkit-details-marker { display:none; }
.j5.j5-home .j5-board-detail-symbol { display:inline-block; flex:0 0 auto; color:var(--board-green); font-size:1.125rem; }
.j5.j5-home .j5-board-details[open] .j5-board-detail-symbol { transform:rotate(45deg); }
.j5.j5-home .j5-board-detail-content { padding:0 0 1.1rem; }
.j5.j5-home .j5-board-detail-content > p { max-width:100%; margin:.2rem 0 .6rem; color:var(--board-muted); font-size:.8125rem; line-height:1.75; }
.j5.j5-home .j5-board-detail-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem 1rem; }
.j5.j5-home .j5-board-action, .j5.j5-home .j5-board-report { display:inline-flex; align-items:center; gap:.6rem; min-height:44px; max-width:100%; margin:0; padding:.5rem 0; border:0; background:none; color:var(--board-green); font-size:.8125rem; font-weight:600; line-height:1.5; text-align:left; text-decoration:none; white-space:normal; cursor:pointer; }
.j5.j5-home .j5-board-report { color:var(--board-muted); font-size:.75rem; font-weight:400; }
.j5.j5-home :is(.j5-board-all,.j5-board-action,.j5-board-report):hover { text-decoration:underline; text-underline-offset:5px; }
.j5.j5-home .j5-board-state { margin:0; padding:2rem; border:1px solid var(--board-line); border-radius:3px; background:#fffefa; color:var(--board-muted); font-size:.9375rem; line-height:1.65; }
.j5.j5-home .j5-board-state h3 { max-width:none; margin:0 0 .6rem; color:var(--board-ink); font-size:1.25rem; line-height:1.4; letter-spacing:-.02em; text-transform:none; }
.j5.j5-home .j5-board-state p { margin:0 0 .65rem; }
.j5.j5-home .j5-board-state--error { border-left:3px solid #a25340; }
.j5.j5-home .j5-jobs-board :focus-visible { outline:3px solid var(--board-green); outline-offset:4px; }
/* Shared document rules use an ID; match that specificity for headings so
 * long job titles remain readable without forced mid-word hyphenation. */
.v5-document #v5-main .j5-jobs-board :is(h2,h2 em,h3,h3 button) { overflow-wrap:anywhere; word-break:normal; -webkit-hyphens:none; hyphens:none; text-wrap:initial; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
    .j5.j5-home .j5-board-card { transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
    .j5.j5-home .j5-board-card:hover { transform:translateY(-3px); border-color:#aabfa8; box-shadow:0 6px 0 #e5e8dc; }
    .j5.j5-home .j5-board-open > span { transition:background-color .18s ease,color .18s ease; }
    .j5.j5-home .j5-board-open:hover > span { background:var(--board-green); border-color:var(--board-green); color:white; }
}
@media (max-width:880px) {
    .j5.j5-home .j5-board-grid { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px) {
    .j5.j5-home .j5-board-heading { align-items:flex-start; flex-direction:column; gap:1rem; }
    .j5.j5-home .j5-board-heading h2 { font-size:clamp(2.15rem,7vw,3.1rem); }
    .j5.j5-home .j5-board-intro { margin-top:.75rem; font-size:.875rem; }
    .j5.j5-home .j5-board-all { gap:1.75rem; }
    .j5.j5-home .j5-board-job-title { min-height:0; }
}
@media (max-width:480px) {
    .j5.j5-home .j5-board-eyebrow { font-size:.625rem; letter-spacing:.11em; }
    .j5.j5-home .j5-board-grid { gap:1rem; }
    .j5.j5-home .j5-board-card { padding:1.2rem 1.2rem 0; }
    .j5.j5-home .j5-board-company { gap:.7rem; margin-bottom:1.1rem; }
    .j5.j5-home .j5-board-logo { flex-basis:48px; width:48px; height:48px; }
    .j5.j5-home .j5-board-company-name { font-size:.75rem; }
    .j5.j5-home .j5-board-facts { margin-top:.9rem; font-size:.75rem; }
    .j5.j5-home .j5-board-state { padding:1.4rem; }
}
@media (prefers-reduced-motion:reduce) {
    .j5.j5-home .j5-jobs-board *, .j5.j5-home .j5-jobs-board *::before, .j5.j5-home .j5-jobs-board *::after { transition:none!important; animation:none!important; }
}
