/* Local cluster hub, scoped to the location template. */
.jf-cluster-page { --area-ink:#101c33; --area-muted:#5b6b82; --area-blue:#0a7cc2; --area-line:#dfe8f1; background:#f4f6fa; }
.jf-cluster-page #wrapper { background:#f4f6fa; }
.jf-cluster-page .jf-cluster.container { width:calc(100% - 48px); max-width:1240px; padding:30px 32px 34px; margin:28px auto 48px; border:1px solid #e4e9f1; border-radius:10px; background:#fff; box-shadow:0 1px 3px rgba(16,28,51,.06); box-sizing:border-box; color:var(--area-ink); }
.jf-cluster-breadcrumb { font-size:13px; margin-bottom:36px; }
.jf-cluster a { color:var(--area-blue); }
.jf-cluster-hero h1 { font-size:42px; letter-spacing:-1.2px; line-height:1.2; color:var(--area-ink); margin:0 0 12px; }
.jf-cluster-eyebrow { color:var(--area-blue); font-size:12px; text-transform:uppercase; letter-spacing:1px; font-weight:700; margin:0 0 12px; }
.jf-cluster-intro { font-size:18px; color:var(--area-muted); line-height:1.5; margin:0 0 24px; }
.jf-cluster-chips { display:flex; flex-wrap:wrap; gap:10px; }
.jf-cluster-chips span { display:inline-block; padding:6px 14px; background:#eaf5fd; border-radius:24px; font-size:13px; color:#255372; }
.jf-cluster-nav { display:flex; gap:24px; margin:28px 0; border-bottom:1px solid var(--area-line); }
.jf-cluster-nav a { padding:14px 12px; font-weight:700; border-bottom:3px solid transparent; }
.jf-cluster-nav a:hover,.jf-cluster-nav a:focus-visible { border-bottom-color:var(--area-blue); background:#eaf5fd; }

/* Each tab keeps a distinct shareable URL. Its panel is preloaded and
   switches in place; the links remain usable when JavaScript is unavailable. */
.jf-cluster-tabs { display:flex; gap:24px; margin:28px 0; border-bottom:1px solid var(--area-line); }
.jf-cluster-tabs a { padding:14px 12px; font-weight:700; color:var(--area-muted); text-decoration:none; border-bottom:3px solid transparent; }
.jf-cluster-tabs a:hover,.jf-cluster-tabs a:focus-visible { color:var(--area-ink); border-bottom-color:#b7dbf0; }
.jf-cluster-tabs a.is-active { color:var(--area-blue); border-bottom-color:var(--area-blue); }
.jf-cluster-tabs a[aria-selected="true"] { color:var(--area-blue); border-bottom-color:var(--area-blue); }
.jf-cluster-panel[hidden] { display:none !important; }
.jf-cluster-panel { animation:jf-cluster-panel-in .18s ease-out; }
@keyframes jf-cluster-panel-in { from { opacity:.35; transform:translateY(3px); } to { opacity:1; transform:none; } }

/* Overview tab's per-axis section header - title + "See all" link into the
   real dedicated tab, instead of paginating each preview in place. */
.jf-section-head,.jobsfor-location-forum__head,.jobsfor-location-directory__head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:20px; }
.jf-section-head h2,.jobsfor-location-forum__head h2,.jobsfor-location-directory__head h2 { margin:0; }
.jf-cluster .jobsfor-location-forum__head h2 { font-size:13px; text-transform:uppercase; letter-spacing:.8px; color:var(--area-blue); margin:0; }
.jf-section-head__see-all,.jobsfor-location-forum__see-all,.jobsfor-location-directory__see-all { flex:0 0 auto; font-size:13px; font-weight:700; white-space:nowrap; }

/* Community tab's real thread rows - title, starter, reply count, last
   post, compact, matching bbPress's own row density rather than a job/
   business card shape (which has a subtitle + action button - the wrong
   shape for a thread). */
.jobsfor-location-forum__thread-list { list-style:none; margin:0; padding:0; width:100%; border:1px solid var(--area-line); border-radius:12px; overflow:hidden; background:#fff; }
.jobsfor-location-forum__thread-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; padding:14px 18px; border-bottom:1px solid #e3eef7; min-height:60px; box-sizing:border-box; }
.jobsfor-location-forum__thread-row:last-child { border-bottom:0; }
.jobsfor-location-forum__thread-title { font-size:15px; font-weight:700; color:var(--area-ink); text-decoration:none; }
.jobsfor-location-forum__thread-title:hover,.jobsfor-location-forum__thread-title:focus-visible { text-decoration:underline; }
.jobsfor-location-forum__thread-meta { display:block; width:100%; font-size:13px; color:var(--area-muted); }
.jf-cluster-grid { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:24px; align-items:start; }
.jf-cluster-main { min-width:0; }
.jf-cluster h2 { font-size:24px; line-height:1.3; color:var(--area-ink); letter-spacing:-.4px; margin:0 0 20px; }
.jf-cluster #area-jobs,.jf-cluster #area-businesses { margin-bottom:32px; }
.jf-cluster :is(#area-jobs,#area-businesses,#local-forum) { scroll-margin-top:100px; }
.jf-cluster-explore { padding:24px; border:1px solid var(--area-line); background:#fff; border-radius:12px; }
.jf-cluster-explore h2 { font-size:24px; margin:0 0 12px; }
.jf-cluster-explore > p:not(.jf-cluster-eyebrow) { color:var(--area-muted); }
.jf-cluster-explore .jf-cluster-chips { margin:16px 0 24px; }
.jf-cluster-explore > a { display:block; padding:12px 0; min-height:44px; box-sizing:border-box; font-weight:600; }

/* 2026-09-15: real per-area counts + local business/nearby-area previews -
   see this file's own header comment on jf_explore_jobs_count etc. */
.jf-explore-counts { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.jf-explore-block { margin-top:20px; padding-top:20px; border-top:1px solid var(--area-line); }
.jf-explore-block__title { margin:0 0 10px; color:var(--area-muted); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; }
.jf-explore-block__list { list-style:none; margin:0 0 10px; padding:0; display:flex; flex-direction:column; gap:8px; }
.jf-explore-block__list a { font-weight:600; }
.jf-explore-block__more { display:inline-block; font-size:13px; font-weight:700; }
.jf-cluster .job_listings { margin:0 !important; width:100%; }
.jf-cluster ul.job_listings { display:grid !important; grid-template-columns:1fr !important; gap:14px; padding:0 !important; border:0; }
.jf-cluster ul.job_listings > li { width:100% !important; margin:0 !important; border:1px solid var(--area-line); border-radius:12px; background:#fff; box-shadow:none; box-sizing:border-box; }
.jf-cluster .job-listing-details { padding:20px; min-height:0; gap:16px; }
.jf-cluster .job-listing-company-logo { width:60px; height:60px; flex:0 0 60px; }
.jf-cluster .job-listing-description { min-width:0; }
.jf-cluster .job-listing-title { font-size:18px; line-height:1.4; color:var(--area-ink); }
.jf-cluster .job-listing-company { font-size:13px; color:var(--area-muted); }
.jf-cluster .job-listing-footer { padding:12px 20px; background:#f8fbfd; border-radius:0 0 12px 12px; }
.jf-cluster .job-listing-footer ul { display:flex; flex-wrap:wrap; gap:8px 16px; }
.jf-cluster .job-listing-footer li { margin:0; font-size:13px; }
.jf-cluster .job-listing-footer-company { display:none; }
.jf-cluster .jobsfor-location-directory { margin:0; padding:0; border:0; }
.jf-cluster .company-list { margin:0; }
.jf-cluster .company { border-radius:12px; border-color:var(--area-line); background:white; }
.jf-cluster-community { margin:0; padding:26px 30px; border:1px solid #d6e9f6; border-radius:10px; background:#eef8fe; }
.jf-cluster .jobsfor-location-forum { margin:0; padding:0; border:0; display:flex; flex-direction:column; align-items:flex-start; }
.jf-cluster .jobsfor-location-forum > h2 { font-size:13px; text-transform:uppercase; letter-spacing:.8px; color:var(--area-blue); margin-bottom:20px; }
.jf-community-welcome { display:flex; align-items:center; gap:28px; margin-bottom:20px; }
.jf-community-welcome > svg { flex:0 0 100px; }
.jf-cluster .jf-community-welcome h3 { font-size:30px; line-height:1.25; color:var(--area-ink); margin:0 0 12px; }
.jf-cluster .jf-community-welcome p { margin:0; font-size:16px; line-height:1.6; color:var(--area-muted); }
.jf-cluster .jobsfor-location-forum__hub-link { order:5; margin:16px 0 0; font-size:14px; }
.jf-cluster .jobsfor-location-forum > p:not(.jobsfor-location-forum__hub-link) a,.jf-cluster .jobsfor-location-forum .btn { display:inline-flex; align-items:center; padding:12px 20px; border:0; border-radius:8px; background:var(--area-blue); color:#fff; font-size:14px; font-weight:700; min-height:44px; box-sizing:border-box; }
.jf-cluster .jobsfor-location-forum form { margin:0; }
.jf-cluster .jobsfor-location-forum .btn:hover,.jf-cluster .jobsfor-location-forum > p:not(.jobsfor-location-forum__hub-link) a:hover { background:#075f94; }
.jobsfor-location-forum__empty { display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; min-height:150px; padding:24px; text-align:center; box-sizing:border-box; }
.jobsfor-location-forum__empty-icon { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; margin-bottom:14px; border-radius:50%; background:#fff; color:var(--area-blue); box-shadow:0 4px 14px rgba(25,88,132,.1); }
.jf-cluster .jobsfor-location-forum__empty h3 { margin:0 0 6px; color:var(--area-ink); font-size:19px; line-height:1.3; }
.jf-cluster .jobsfor-location-forum__empty p { margin:0; color:var(--area-muted); font-size:14px; line-height:1.5; }
.jobsfor-location-forum__activity { width:100%; margin:0 0 22px; }
.jobsfor-location-forum__activity h3 { font-size:18px; line-height:1.3; color:var(--area-ink); margin:0 0 14px; letter-spacing:-.2px; }
.jobsfor-location-forum__activity ul { list-style:none; margin:0; padding:0; border:1px solid #ccdfef; border-radius:12px; overflow:hidden; background:#fff; }
.jobsfor-location-forum__activity li { margin:0; }
.jobsfor-location-forum__activity a { display:grid; grid-template-columns:118px minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px 18px; border-bottom:1px solid #e3eef7; color:inherit; text-decoration:none; background:#fff; }
.jobsfor-location-forum__activity li:last-child a { border-bottom:0; }
.jobsfor-location-forum__activity a:hover,.jobsfor-location-forum__activity a:focus-visible { background:#f8fbfd; color:inherit; }
.jobsfor-location-forum__activity-kind { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.jobsfor-location-forum__activity-kind > span { display:inline-flex; align-items:center; min-height:26px; padding:4px 9px; border-radius:999px; background:#eaf5fd; color:var(--area-ink); font-size:12px; font-weight:700; }
.jobsfor-location-forum__activity-kind small { color:var(--area-muted); font-size:12px; font-weight:600; }
.jobsfor-location-forum__activity-body { display:block; min-width:0; }
.jobsfor-location-forum__activity-body strong { display:block; color:var(--area-ink); font-size:16px; line-height:1.35; }
.jobsfor-location-forum__activity-body em { display:block; margin-top:4px; color:var(--area-muted); font-size:14px; line-height:1.45; font-style:normal; }
.jobsfor-location-forum__activity-action { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 13px; border:1px solid var(--area-line); border-radius:8px; background:#fff; color:var(--area-blue); font-size:13px; font-weight:700; white-space:nowrap; }
.jf-cluster-prompts { border-top:1px solid #ccdfef; margin-top:24px; padding-top:20px; }
.jf-cluster-prompts > p { font-size:12px; text-transform:uppercase; letter-spacing:.7px; margin:0 0 12px; }
.jf-cluster-prompts > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.jf-cluster-prompts span { padding:16px; border:1px solid var(--area-line); border-radius:10px; background:#fff; font-weight:600; font-size:14px; }
.jf-cluster-prompts small { display:block; color:var(--area-muted); font-size:13px; font-weight:400; margin-top:4px; }
.jf-cluster a:focus-visible,.jf-cluster button:focus-visible { outline:3px solid #0a7cc2; outline-offset:3px; }
.jf-cluster-page #footer-new,.jf-cluster-page #footer-new .footer-new-middle-section,.jf-cluster-page #footer-new .footer-new-bottom-section { background:#102b43 !important; }
.jf-cluster-page #footer-new a,.jf-cluster-page #footer-new p,.jf-cluster-page #footer-new .footer-new-bottom-section { color:#d0deeb !important; }
.jf-cluster-page #footer-new h4 { color:white; }
@media(max-width:900px) { .jf-cluster-grid { grid-template-columns:minmax(0,1fr) 260px; gap:20px; } .jf-cluster-hero h1 { font-size:34px; } }
@media(max-width:760px) {
 .jf-cluster-page .jf-cluster.container { width:calc(100% - 32px); padding:22px 18px 26px; margin:20px auto 32px; }
 .jf-cluster-grid { grid-template-columns:1fr; }
 .jf-cluster-hero h1 { font-size:30px; }
 .jf-cluster-intro { font-size:16px; }
 .jf-cluster-nav { gap:8px; justify-content:space-between; }
 .jf-cluster-nav a { padding:12px 8px; }
 /* 2026-09-18: the 4-tab row (Overview/Community/Jobs/Businesses) overflowed
    a 390px viewport with overflow-x left at its default "visible", silently
    clipping the last tab outside the page's own width constraint instead of
    wrapping or scrolling to it - real, confirmed via computed scrollWidth
    (402px) vs clientWidth (320px). Scrollable, not wrapped, so active-tab
    state/underline still reads as one continuous row like on desktop. */
 .jf-cluster-tabs { gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; flex-wrap:nowrap; scrollbar-width:none; }
 .jf-cluster-tabs::-webkit-scrollbar { display:none; }
 .jf-cluster-tabs a { padding:12px 2px; font-size:14px; white-space:nowrap; flex:0 0 auto; }
 .jf-cluster-explore { margin-bottom:24px; }
 .jf-cluster-community { padding:24px 20px; }
 .jobsfor-location-forum__activity a { grid-template-columns:1fr; gap:10px; }
 .jobsfor-location-forum__activity-kind { flex-direction:row; align-items:center; justify-content:space-between; }
 .jobsfor-location-forum__activity-action { justify-self:flex-start; }
 .jf-community-welcome { flex-direction:column; align-items:flex-start; gap:16px; }
 .jf-community-welcome > svg { flex-basis:auto; height:64px; }
 .jf-cluster .jf-community-welcome h3 { font-size:25px; }
 .jf-cluster-prompts > div { grid-template-columns:1fr; }
 .jf-cluster .job-listing-details { padding:16px; }
}
.jf-cluster .wpjmc-companies { list-style:none; padding:0; margin:0; }
.jf-cluster .wpjmc-companies .company { list-style:none; margin:0 0 16px; padding:0; border:1px solid var(--area-line); box-shadow:none; border-radius:12px; }
.jf-cluster .company-title--link { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px; }
.jf-cluster .company-inner { display:flex; align-items:center; gap:20px; padding:0; min-width:0; }
.jf-cluster .company-logo { width:64px; min-width:64px; height:64px; margin:0; padding:0; border:0; }
.jf-cluster .company-logo img { width:64px; height:64px; object-fit:contain; border-radius:10px; }
.jf-cluster .company-body { margin:0; padding:0; min-width:0; }
.jf-cluster .company-title { font-size:18px; margin:0 0 8px; color:var(--area-ink); }
/* 2026-09-15 user feedback: "Not rated yet" on every business card is the
   same class of bug as an empty section rendering its own zero-value state
   - omit it entirely rather than padding every card with an absence. */
.jf-cluster .company-not-rated { display:none; }
.jf-cluster .company-list-excerpt:empty,.jf-cluster #company-meta:empty { display:none; }
.jf-area-view-company { font-size:13px; font-weight:600; white-space:nowrap; }
.jf-area-view-job { position:absolute; right:20px; top:22px; color:var(--area-blue); font-size:13px; font-weight:600; }
.jf-cluster .job-listing-description { padding-right:88px; }
.jf-cluster .job-listing-company-logo img { padding:0 !important; width:60px; height:60px; object-fit:contain; border-radius:10px; }
.jf-cluster .jf-cluster-nav a[aria-current] { border-bottom-color:var(--area-blue); }
.jf-cluster .company-title--link:hover { background:#f2f8fd; }
.jf-cluster .workscout-grid-job-link-handler:focus-visible { outline-offset:-3px; }
@media(max-width:760px){.jf-cluster .company-title--link{flex-wrap:wrap;}.jf-area-view-company{margin-left:84px;}.jf-cluster .job-listing-description{padding-right:0;}.jf-area-view-job{position:static;}.jf-cluster .workscout-grid-job-link-handler{display:flex;align-items:flex-end;justify-content:flex-end;padding:12px;}.jf-cluster .job-listing-footer{padding-bottom:44px;}}
.jf-cluster .workscout-grid-job-link-handler { opacity:1 !important; background:transparent !important; }
.jf-cluster .job-listing-company-logo { display:block !important; }
.jf-cluster .job-listing-footer-company { display:none !important; }
.jf-cluster ul.job_listings > li { box-shadow:none !important; }
.jf-cluster .wpjmc-companies .company,.jf-cluster .wpjmc-companies .company-title--link { border-radius:12px !important; }
.jf-cluster .company-inner .company-logo { border:0 !important; padding:0 !important; }
@media(max-width:760px){.jf-cluster .job-listing-details { display:flex !important; align-items:center; }.jf-cluster .job-listing-company-logo { flex:0 0 48px; width:48px; height:48px; }.jf-cluster .job-listing-company-logo img { width:48px;height:48px; }.jf-cluster-page #footer-new .footer-new-middle-section { padding:32px 0 !important; }.jf-cluster-page #footer-new .footer-new-middle-section .row { display:grid;grid-template-columns:1fr 1fr;gap:24px; }.jf-cluster-page #footer-new .footer-new-middle-section .row > div { width:100%;margin:0;text-align:left;box-sizing:border-box; }}
.jf-cluster .job-listing-company-logo:has(img)::before { content:none !important; }
.jf-cluster .company-inner .company-logo { flex:0 0 64px !important; width:64px !important; min-width:64px !important; }
.jf-cluster .company-inner .company-body { flex:1; }
@media(min-width:761px) and (max-width:1000px) { .jf-cluster-grid { grid-template-columns:1fr; } .jf-cluster-explore { margin-bottom:24px; } }
@media(max-width:760px) {
 .jf-cluster-page #footer-new .footer-row:has(.footer-widget) { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px; }
 .jf-cluster-page #footer-new .footer-row > .footer-col-xs-6 { width:auto;min-width:0;max-width:none;margin:0;padding:0; }
}
