/* Shared public job/project/company/expert list design. Existing forms, provider cards and AJAX hooks are retained. */
.portal-offer-list-page .portal-search-page {
    --portal-search-line: #dceee7;
    --portal-search-surface: #f1faf6;
    --portal-search-accent: #067556;
    --portal-search-text: #173b30;
    padding-bottom: 64px;
}
.portal-offer-list-page .portal-search-page .portal-search-hero {
    position: relative; display: flex; align-items: center; justify-content: space-between;
    gap: 48px; padding: 33px max(48px, calc((100vw - 1320px) / 2)) 45px;
    background: radial-gradient(ellipse at 95% 30%, #d7f9ec 0, transparent 58%), #effbf7;
    border-bottom: 1px solid var(--home-line); text-align: left; overflow: hidden;
}
.portal-jobs-hero-content { max-width: 900px; position: relative; z-index: 1; }
.portal-offer-list-page .portal-jobs-breadcrumb { display: inline-flex; align-items: center; gap: 12px; color: var(--home-muted); font-size: 11px; margin-bottom: 28px; }
.portal-jobs-breadcrumb > a, .portal-jobs-breadcrumb [aria-current] { color: var(--home-muted); }
.portal-jobs-breadcrumb > span[aria-hidden] { color: #93b8a9; }
.portal-jobs-kicker { font-size: 10px; font-weight: 600; letter-spacing: 2px; color: var(--home-brand-text); margin: 0 0 14px; }
.portal-offer-list-page .portal-search-page h1 { max-width: none; font-size: clamp(32px, 3.5vw, 50px); letter-spacing: -1.8px; line-height: 1.23; font-weight: 600; margin: 0; color: var(--home-ink); }
.portal-offer-list-page .portal-search-page h1::after { display: none; }
.portal-jobs-lead { font-size: 13px; line-height: 1.9; color: var(--home-muted); max-width: 620px; margin: 18px 0 0; }
.portal-jobs-hero-mark { display: grid; place-items: center; flex: 0 0 150px; height: 150px; border: 1px solid #b9e9d8; border-radius: 50%; margin: 25px 20px 0 0; box-shadow: 0 0 0 25px #ffffff40, 0 0 0 51px #ffffff30; transform: rotate(-6deg); }
.portal-jobs-hero-mark span { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%; background: var(--home-brand); color: #034b36; font-size: 66px; line-height: 1; }
/* Fixed decorative photo area: its size never depends on image load/decode. */
.portal-list-motif { position: relative; isolation: isolate; flex: 0 0 280px; width: 280px; height: 230px; pointer-events: none; }
.portal-list-motif::before { content: ""; position: absolute; z-index: -1; width: 190px; height: 190px; left: 45px; bottom: 10px; border: 1px solid #0bd59c26; border-radius: 50%; background: linear-gradient(145deg, #0bd59c24, #bdf4e366); box-shadow: 0 0 0 20px #ffffff35; }
.portal-list-motif picture, .portal-list-motif img { display: block; width: 100%; height: 100%; }
.portal-list-motif img { object-fit: contain; object-position: center bottom; }
.portal-offer-list-page .portal-search-page > .container { width: min(1320px, calc(100% - 96px)); max-width: none; padding-inline: 0; }
.portal-offer-list-page .portal-search-layout { grid-template-columns: 296px minmax(0, 1fr); gap: 28px; margin-top: 36px; }
.portal-offer-list-page #portalSearchForm { min-width: 0; }
.portal-offer-list-page .portal-search-sidebar { padding: 25px; background: #fff; border-color: var(--home-line); border-radius: 16px; box-shadow: 0 4px 18px #022f2203; }
.portal-offer-list-page .portal-search-sidebar > summary { display: block; font-size: 17px; font-weight: 600; letter-spacing: -.35px; padding-bottom: 18px; border-bottom: 1px solid var(--home-line); color: var(--home-ink); }
.portal-offer-list-page [data-portal-filter-count] { float: right; font-size: 12px; color: var(--home-brand-text); padding: 4px 0; }
.portal-offer-list-page .portal-search-filter-fields { gap: 20px; padding-top: 22px; }
.portal-offer-list-page .portal-search-page label { font-size: 11px; font-weight: 600; gap: 9px; color: #3a5e50; }
.portal-offer-list-page .portal-search-page .form-control,
.portal-offer-list-page .portal-search-page .form-select,
.portal-offer-list-page .portal-search-page .bootstrap-select .dropdown-toggle {
    min-height: 46px; border: 1px solid #dae9e2; border-radius: 8px; background-color: #fbfdfc;
    color: var(--home-ink); font-family: inherit; font-size: 13px; font-weight: 400;
    box-shadow: none; padding: 11px 12px;
}
.portal-offer-list-page .portal-search-page .form-control:focus,
.portal-offer-list-page .portal-search-page .form-select:focus,
.portal-offer-list-page .portal-search-page .bootstrap-select .dropdown-toggle:focus-visible { border-color: #067556; outline: 2px solid #9be8cf; outline-offset: 2px; }
.portal-offer-list-page .portal-search-page .portal-search-checkbox { font-size: 12px; font-weight: 400; }
.portal-offer-list-page .portal-search-more > summary { font-size: 12px; padding-block: 6px; }
.portal-offer-list-page .portal-search-submit { background: var(--home-brand); color: #033325; border: 0; font-size: 12px; font-weight: 600; border-radius: 8px; padding: 14px; }
.portal-offer-list-page .portal-search-submit:hover { background: #09c38e; color: #033325; }
.portal-offer-list-page .portal-search-apply { gap: 7px; }
.portal-offer-list-page .portal-search-apply a { font-size: 11px; }
.portal-offer-list-page .portal-search-geo-credit { font-size: 10px; line-height: 1.7; color: var(--home-muted); }
.portal-offer-list-page .portal-search-profile-hint { background: var(--home-soft); border: 0; border-radius: 8px; padding: 17px; font-size: 11px; line-height: 1.8; }
.portal-offer-list-page .portal-search-profile-hint a { font-weight: 500; text-underline-offset: 3px; }
.portal-offer-list-page .portal-search-results-heading { padding: 4px 0 0; }
.portal-offer-list-page .portal-search-results-heading h2 { font-size: 23px; letter-spacing: -.7px; line-height: 1.5; color: var(--home-ink); margin-bottom: 0; }
.portal-offer-list-page .portal-search-page .portalFilterContainer { margin: 0; }
.portal-offer-list-page .portalFilterContainer:not(:empty) { margin-top: 15px; }
.portal-offer-list-page .portal-search-results > .row { margin-top: 7px; --bs-gutter-y: 18px; }
.portal-offer-list-page .card-company { background: #fff; border: 1px solid var(--home-line); border-radius: 14px; box-shadow: 0 3px 14px #022f2203; transition: box-shadow .15s, border-color .15s; }
.portal-offer-list-page .card-company:hover { border-color: #99d9c1; box-shadow: 0 8px 28px #022f220a; }
.portal-offer-list-page .card-company.top-prio-card { border-color: #b8e7d6; }
.portal-offer-list-page .card-company .card-body { padding: 27px; min-width: 0; }
.portal-offer-list-page .card-company .card-body > .row > .col { min-width: 0; color: var(--home-muted); font-size: 12px; line-height: 1.8; }
.portal-offer-list-page .logo-col-desktop-portal { width: 105px; display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 14px; }
.portal-offer-list-page .logo-col-desktop-portal > .row { margin: 0; }
.portal-offer-list-page .logo-col-desktop-portal > .row > .col { padding: 0; margin: 0 !important; }
.portal-offer-list-page .portal-action-container-desktop { display: flex; width: auto; flex-wrap: wrap; gap: 2px; }
.portal-offer-list-page .btn-portal-actions { width: 30px; min-height: 32px; padding: 3px; }
.portal-offer-list-page .company_pic_extra_big, .portal-offer-list-page .company_pic_extra_big_external { width: 64px; height: 64px; max-width: 64px; max-height: 64px; object-fit: contain; border-radius: 9px; margin: 0; }
.portal-offer-list-page .company_pic_small, .portal-offer-list-page .company_pic_small_external { width: 44px; height: 44px; object-fit: contain; border-radius: 7px; margin: 0; }
.portal-offer-list-page .portal-title { color: var(--home-ink); font-size: 19px; line-height: 1.5; letter-spacing: -.45px; margin-bottom: 9px; overflow-wrap: anywhere; }
.portal-offer-list-page .portal-title a { color: inherit; }
.portal-offer-list-page .portal-title a:hover { color: var(--home-brand-text); }
.portal-offer-list-page .card-company .fs-6 { font-size: 12px !important; color: var(--home-muted); }
.portal-offer-list-page .comp_img_portal { width: 16px; height: 16px; }
.portal-offer-list-page .card-company .badge { font-size: 10px; line-height: 1.6; font-weight: 400; white-space: normal; margin: 4px 2px 0 0; padding: 4px 9px; border-radius: 5px; }
.portal-offer-list-page .card-company .badge:is(.bg-info,.btn-blue,.btn-orange,.btn-purple,.bg-green) { background: var(--home-soft) !important; color: var(--home-brand-text) !important; border: 0; }
.portal-offer-list-page .card-company .badge:empty { display: none; }
.portal-offer-list-page .topjob-badge { position: static; display: inline-flex; background: #d8f8ec; color: #04563d; padding: 4px 8px; border-radius: 5px; font-size: 9px; line-height: 1.8; white-space: nowrap; }
.portal-offer-list-page .card-company .pe-5 { padding-right: 0 !important; font-size: 12px; line-height: 1.9; overflow-wrap: anywhere; }
.portal-offer-list-page .card-company .pe-5 a { color: var(--home-brand-text); font-weight: 500; text-underline-offset: 3px; }
.portal-offer-list-page .stepstone-btn { background: var(--home-soft); color: var(--home-brand-text); font-size: 11px; border-radius: 6px; padding: 9px 12px; margin-top: 10px; }
.portal-offer-list-page .portal-search-pagination { margin-top: 28px; font-size: 12px; }
.portal-offer-list-page .portal-search-pagination .btn { border: 1px solid var(--home-line); background: #fff; color: var(--home-brand-text); font-size: 12px; padding: 11px 19px; border-radius: 8px; }
.portal-offer-list-page .portal-ad-slot { padding: 18px 0; }
@media (max-width: 1200px) {
    .portal-offer-list-page .portal-search-page .portal-search-hero { padding-inline: 32px; }
    .portal-offer-list-page .portal-search-page > .container { width: calc(100% - 64px); }
    .portal-offer-list-page .portal-search-layout { grid-template-columns: 264px minmax(0, 1fr); gap: 24px; }
    .portal-offer-list-page .portal-search-sidebar { padding: 21px; }
    .portal-offer-list-page .card-company .card-body { padding: 23px; }
    .portal-offer-list-page .logo-col-desktop-portal { width: 90px; }
    .portal-offer-list-page .portal-title { font-size: 17px; }
}
@media (max-width: 991px) {
    .portal-list-motif { flex-basis: 200px; width: 200px; height: 210px; }
    .portal-list-motif::before { width: 160px; height: 160px; left: 20px; }
    .portal-offer-list-page .portal-search-layout { grid-template-columns: 230px minmax(0, 1fr); gap: 20px; }
    .portal-jobs-hero-mark { flex-basis: 110px; height: 110px; }
    .portal-jobs-hero-mark span { width: 76px; height: 76px; font-size: 50px; }
    .portal-offer-list-page .card-company .card-body { padding: 20px; }
    .portal-offer-list-page .logo-col-desktop-portal { width: 76px; }
    .portal-offer-list-page .company_pic_extra_big, .portal-offer-list-page .company_pic_extra_big_external { width: 48px; height: 48px; }
}
@media (max-width: 767px) {
    .portal-offer-list-page .portal-search-page .portal-search-hero { padding: 25px 18px 30px; }
    .portal-offer-list-page .portal-search-page .portal-search-hero:has(.portal-list-motif) { display: grid; grid-template-columns: minmax(0, 1fr) 100px; column-gap: 12px; row-gap: 0; }
    .portal-search-hero:has(.portal-list-motif) .portal-jobs-hero-content { display: contents; }
    .portal-search-hero:has(.portal-list-motif) .portal-jobs-breadcrumb,
    .portal-search-hero:has(.portal-list-motif) .portal-jobs-kicker,
    .portal-search-hero:has(.portal-list-motif) h1 { grid-column: 1 / -1; }
    .portal-search-hero:has(.portal-list-motif) .portal-jobs-lead { grid-column: 1; grid-row: 4; }
    .portal-list-motif { grid-column: 2; grid-row: 4; align-self: end; width: 100px; height: 112px; margin-top: 12px; }
    .portal-list-motif::before { width: 84px; height: 84px; left: 8px; bottom: 4px; box-shadow: 0 0 0 8px #ffffff35; }
    .portal-offer-list-page .portal-search-page h1 { font-size: 34px; letter-spacing: -1.2px; }
    .portal-offer-list-page .portal-jobs-breadcrumb { margin-bottom: 23px; font-size: 10px; }
    .portal-jobs-kicker { font-size: 8px; letter-spacing: 1.4px; }
    .portal-jobs-lead { font-size: 12px; margin-top: 15px; }
    .portal-jobs-hero-mark { display: none; }
    .portal-offer-list-page .portal-search-page > .container { width: calc(100% - 36px); }
    .portal-offer-list-page .portal-search-layout { grid-template-columns: minmax(0, 1fr); gap: 26px; margin-top: 22px; }
    .portal-offer-list-page .portal-search-sidebar { padding: 13px 19px; border-radius: 12px; }
    .portal-offer-list-page .portal-search-sidebar > summary { display: list-item; padding: 9px 0; border-bottom: 0; font-size: 14px; }
    .portal-offer-list-page .portal-search-sidebar[open] > summary { border-bottom: 1px solid var(--home-line); }
    .portal-offer-list-page .portal-search-filter-fields { padding: 20px 0 6px; }
    .portal-offer-list-page .portal-search-page .form-control, .portal-offer-list-page .portal-search-page .form-select, .portal-offer-list-page .portal-search-page .bootstrap-select .dropdown-toggle { font-size: 16px; }
    .portal-offer-list-page .portal-search-apply { background: #fff; }
    .portal-offer-list-page .portal-search-results-heading h2 { font-size: 22px; }
    .portal-offer-list-page .card-company .card-body { padding: 20px; }
    .portal-offer-list-page .card-company .w-75 { width: calc(100% - 52px) !important; }
    .portal-offer-list-page .card-company .card-body > .row > .col { font-size: 11px; }
    .portal-offer-list-page .portal-title { font-size: 17px; }
    .portal-offer-list-page .btn-portal-actions { width: 40px; min-height: 40px; }
    .portal-offer-list-page .portal-search-page { padding-bottom: 35px; }
}
@media (prefers-reduced-motion: reduce) { .portal-offer-list-page .card-company { transition: none; } }
.portal-company-list-page .card-company .fw-semibold { color: var(--home-ink); font-size: 19px; line-height: 1.5; letter-spacing: -.45px; overflow-wrap: anywhere; margin-bottom: 5px; }
.portal-company-list-page .card-company .fw-semibold a { color: inherit; }
.portal-company-list-page .card-company .card-body > .row > .col { overflow-wrap: anywhere; }
.portal-company-list-page .company_counter_container { margin: 5px 12px 0 0; }
@media (max-width: 1200px) { .portal-company-list-page .card-company .fw-semibold { font-size: 17px; } }
.portal-expert-list-page .card-company .fw-semibold { color: var(--home-ink); font-size: 19px; line-height: 1.5; letter-spacing: -.45px; overflow-wrap: anywhere; margin-bottom: 8px; }
.portal-expert-list-page .card-company .fw-semibold a { color: inherit; }
.portal-expert-list-page .card-company .fw-semibold a:hover { color: var(--home-brand-text); }
.portal-expert-list-page .card-company .card-body > .row > .col { overflow-wrap: anywhere; }
.portal-expert-list-page .card-company .fs-5 { font-size: 14px !important; color: var(--home-ink); margin-bottom: 7px; }
.portal-expert-list-page .contact_pic_extra_big { width: 64px; height: 64px; max-width: 64px; max-height: 64px; object-fit: cover; border-radius: 50%; margin: 0; }
.portal-expert-list-page .contact_pic_small { width: 44px; height: 44px; object-fit: cover; border-radius: 50%; margin: 0; }
@media (max-width: 1200px) { .portal-expert-list-page .card-company .fw-semibold { font-size: 17px; } }
@media (min-width: 768px) and (max-width: 991px) { .portal-expert-list-page .contact_pic_extra_big { width: 48px; height: 48px; } }
.portal-education-list-page .card-company .fw-semibold { color: var(--home-ink); font-size: 19px; line-height: 1.5; letter-spacing: -.45px; overflow-wrap: anywhere; margin-bottom: 8px; }
.portal-education-list-page .card-company .fw-semibold a { color: inherit; }
.portal-education-list-page .card-company .card-body > .row > .col { overflow-wrap: anywhere; }
@media (max-width: 1200px) { .portal-education-list-page .card-company .fw-semibold { font-size: 17px; } }
