/* Category and tag listings (/cat, /tag): shared styles scoped to these routes. */
/* Related tags and neighborhoods follow the public job services design. */
.job-list-surface .job-services { border: 1px solid #e1e7ee; border-radius: 1rem; background: #fff; box-shadow: 0 3px 16px #172b4506; scroll-margin-top: 6rem; }
.job-list-surface .job-services-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: .75rem; background: #e8f0fc; color: #3969a5; }
.job-list-surface .job-services-title { color: #305781; font-size: 16px; font-weight: 600; line-height: 1.8; }
.job-list-surface .job-service-item { max-width: 100%; min-width: 0; }
.job-list-surface .job-service-link { display: inline-flex; align-items: center; gap: .375rem; max-width: 100%; min-height: 32px; padding: .125rem .5rem; border: 1px solid #d5e2f2; border-radius: .65rem; background: #f2f6fc; color: #365b87; font-size: 14px; line-height: 1.8; text-decoration: none; }
.job-list-surface .job-service-link span { min-width: 0; overflow-wrap: anywhere; }
.job-list-surface .job-service-link i { color: #4a78b1; font-size: 12px; }
.job-list-surface .job-service-link:hover { background: #e4edfa; border-color: #8fafd6; color: #254e80; }
.job-list-surface .job-service-link:focus-visible { outline: 3px solid #3969a5; outline-offset: 3px; }
.job-list-surface #sectors .job-services-icon { background: #cff4fc; color: #087990; }
.job-list-surface #sectors .job-services-title { color: #055160; }
.job-list-surface #sectors .job-service-link { background: #effbfe; border-color: #b6effb; color: #087990; }
.job-list-surface #sectors .job-service-link i { color: #087990; }
.job-list-surface #sectors .job-service-link:hover { background: #cff4fc; border-color: #6edff6; color: #055160; }
.job-list-surface #sectors .job-service-link:focus-visible { outline-color: #087990; }
.job-list-surface .job-list-header {
    margin: 0 0 1rem !important;
    padding: 1rem !important;
    border-color: #dce5ef !important;
    border-radius: 1rem !important;
    background: linear-gradient(120deg, #edf5f6, #fff);
    box-shadow: none !important;
}
.job-list-surface .job-list-header h1 { color: #172b45; line-height: 2 !important; }
.job-list-surface .job-list-header .btn { border-radius: .6rem; min-height: 40px; }
.job-list-surface .job-list-header > .col-12 > a.btn {
    min-height: 0;
    padding-block: .125rem !important;
}
.job-list-surface .jobItem { border-radius: 1rem; background-color: #fff; }
.job-list-surface .job-list-card {
    padding: .75rem !important;
    margin-bottom: 1rem !important;
    border: 1px solid #dce5e9 !important;
    border-inline-start: 3px solid #75af91 !important;
    border-radius: 1rem !important;
    box-shadow: 0 3px 14px #172b4506 !important;
    transition: border-color .2s, box-shadow .2s;
}
.job-list-surface .job-list-card:hover {
    border-color: #8fbca5 !important;
    box-shadow: 0 5px 18px #172b4510 !important;
}
.job-list-surface .job-list-card > .row:first-child { flex-wrap: nowrap; --bs-gutter-x: 1rem; }
.job-list-surface .job-list-logo { flex: 0 0 112px; width: 112px; }
.job-list-surface .job-list-logo a { display: flex; justify-content: center; align-items: center; min-height: 88px; }
.job-list-surface .job-list-logo img { margin: 0 !important; max-height: 104px; object-fit: contain; border-radius: .75rem; }
.job-list-surface .job-list-content { flex: 1; min-width: 0; width: auto; }
.job-list-surface .job-list-title { font-weight: 700; line-height: 1.9; overflow-wrap: anywhere; margin-bottom: .35rem; }
.job-list-surface .job-list-title a:hover { color: #176b49 !important; }
.job-list-surface .job-list-slogan { display: block; color: #536579 !important; line-height: 1.9; overflow-wrap: anywhere; }
.job-list-surface .job-list-photos { display: flex; flex-wrap: wrap; gap: .5rem; }
.job-list-surface .job-list-photos img { width: 100px !important; height: 76px; object-fit: cover; padding: 0 !important; border: 1px solid #e2e8ef; border-radius: .5rem !important; }
.job-list-surface .job-list-tags { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; }
.job-list-surface .job-list-tags .badge { white-space: normal; line-height: 1.7; border-radius: .5rem; }
.job-list-surface .job-list-tags a.bg-success { background: #edf6f0 !important; color: #236843 !important; }
.job-list-surface .job-list-footer { flex-wrap: nowrap; align-items: center; gap: .5rem; margin: .25rem 0 0; padding-top: .125rem !important; border-color: #e8edf2 !important; }
.job-list-surface .job-list-address { flex: 1; width: auto; min-width: 0; padding: 0 !important; color: #637286; }
.job-list-surface .job-list-address i { color: #69957d; margin-inline-end: .3rem; }
.job-list-surface .job-list-footer > .col-4 { display: flex; flex-wrap: wrap; flex-shrink: 0; justify-content: end; gap: .35rem; width: auto; max-width: 50%; padding: 0; }
.job-list-surface .job-list-footer .badge { float: none !important; margin: 0 !important; border-radius: .5rem; line-height: 1.6; }
.job-list-surface .job-list-footer a.badge { display: inline-flex; align-items: center; gap: .5rem; min-height: 28px; padding: .125rem .5rem !important; background: #edf3fa !important; color: #225a91; }
.job-list-surface .job-list-paging { padding: .75rem !important; margin-block: 1rem !important; border: 1px solid #e0e7ef; border-radius: .75rem; background: #fff !important; }
.job-list-surface .job-list-paging > .row { align-items: center; gap: .75rem; margin: 0; }
.job-list-surface .job-list-paging .col-md-10 { flex: 1 1 280px; width: auto; padding: 0; }
.job-list-surface .job-list-paging .col-2 { width: auto; padding: 0; }
.job-list-surface .pagination { flex-wrap: wrap; gap: .3rem; margin: 0; }
.job-list-surface .page-link { border-radius: .5rem !important; margin: 0; min-width: 40px; min-height: 40px; text-align: center; }

/* Recent comments on category pages. */
.job-list-surface .job-list-comments {
    overflow: hidden;
    border: 1px solid #cfe2e5;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 4px 18px #1b566b0d;
    scroll-margin-top: 6rem;
}
.job-list-surface .job-list-comments-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
    border-bottom: 1px solid #cbe5e9;
    background: linear-gradient(120deg, #e8f8fa, #f8fcfd);
}
.job-list-surface .job-list-comments-heading {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .6rem;
}
.job-list-surface .job-list-comments-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: .7rem;
    background: #c9f1f5;
    color: #087990;
    font-size: 17px;
}
.job-list-surface .job-list-comments-header h2 {
    min-width: 0;
    margin: 0;
    color: #155e75;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.8;
    overflow-wrap: anywhere;
}
.job-list-surface .job-list-comments-count {
    flex: 0 0 auto;
    padding: .2rem .55rem;
    border: 1px solid #b9dfe4;
    border-radius: .5rem;
    background: #fff;
    color: #176b7c;
    font-size: 13px;
    line-height: 1.7;
    white-space: nowrap;
}
.job-list-surface .job-list-comments-list {
    display: grid;
    gap: .65rem;
    padding: .75rem;
    background: #f8fbfc;
}
.job-list-surface .job-list-comment {
    overflow: hidden;
    border: 1px solid #dce8ea;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 2px 8px #1b566b08;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.job-list-surface .job-list-comment:hover {
    border-color: #8cc8cf;
    box-shadow: 0 5px 14px #1b566b14;
    transform: translateY(-1px);
}
.job-list-surface .job-list-comment-link {
    display: block;
    padding: .8rem .9rem;
    color: #34495e;
    text-decoration: none;
}
.job-list-surface .job-list-comment-link:focus-visible {
    outline: 3px solid #087990;
    outline-offset: -3px;
}
.job-list-surface .job-list-comment-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem .5rem;
    min-width: 0;
}
.job-list-surface .job-list-comment-author,
.job-list-surface .job-list-comment-job {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    max-width: 100%;
    min-height: 28px;
    padding: .1rem .5rem;
    border-radius: .45rem;
    font-size: 13px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.job-list-surface .job-list-comment-author {
    background: #eaf7ef;
    color: #216c46;
    font-weight: 600;
}
.job-list-surface .job-list-comment-author i { font-size: 11px; }
.job-list-surface .job-list-comment-job {
    background: #eaf5fb;
    color: #21627c;
}
.job-list-surface .job-list-comment-text {
    margin: .7rem 0 0;
    color: #46586b;
    font-size: 15px;
    line-height: 2;
    overflow-wrap: anywhere;
}
.job-list-surface .job-list-comment-action {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 34px;
    margin-top: .65rem;
    padding: .15rem .65rem;
    border: 1px solid #58a88b;
    border-radius: .5rem;
    background: #f5fbf8;
    color: #247655;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.7;
}
.job-list-surface .job-list-comment-link:hover .job-list-comment-action {
    background: #e8f6ef;
    border-color: #368a6e;
    color: #176342;
}
@media (max-width: 575.98px) {
    .job-list-surface .job-list-card { padding: .5rem !important; }
    .job-list-surface .job-list-logo { flex-basis: 76px; width: 76px; }
    .job-list-surface .job-list-logo a { min-height: 60px; }
    .job-list-surface .job-list-logo img { max-height: 68px; }
    .job-list-surface .job-list-photos img { width: 72px !important; height: 58px; }
    .job-list-surface .job-list-comments-header { align-items: flex-start; padding: .65rem .75rem; }
    .job-list-surface .job-list-comments-header h2 { font-size: 15px; }
    .job-list-surface .job-list-comments-list { gap: .5rem; padding: .5rem; }
    .job-list-surface .job-list-comment-link { padding: .7rem; }
    .job-list-surface .job-list-comment-text { font-size: 14px; }
}

.search-job-list .public-search {
    padding: .5rem;
    border: 1px solid #dce5ef;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 3px 14px #172b4506;
}
.search-job-list .public-search .form-control,
.search-job-list .public-search .btn { min-height: 40px; }
.search-job-list .search-related { padding: 1rem; }
.search-job-list .search-related .job-services-title { margin-bottom: .5rem !important; }

.tag-job-list .job-rating { margin-bottom: 1rem; }