/*
Theme Name: WorkScout Child
Template: workscout
*/

/* =========================================================
   GOOGLE FONTS
   Ładowane przez wp_enqueue_style w functions.php (nie @import).
   Czcionka: Lato – pełna obsługa PL bez dodatkowych subsetów.
   ========================================================= */

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root {
    --ps-green:        #2E7D32;
    --ps-green-dark:   #1B5E20;
    --ps-orange:       #F57C00;
    --ps-orange-dark:  #E65100;
    --ps-text:         #0F172A;
    --ps-muted:        #475569;
    --ps-bg:           #F1F5F9;
    --ps-white:        #FFFFFF;
    --ps-border:       #CBD5E1;
    --ps-radius:       8px;
    /* Lato: zaprojektowana dla polskich znaków, czytelna w UI */
    --ps-font:         'Lato', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --ps-font-heading: 'Lato', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

/* =========================================================
   GLOBALNE NADPISANIE CZCIONKI – WORKSCOUT
   Kirki może załadować Poppins/inne bez latin-ext. Wymuszamy Lato
   na WSZYSTKICH głównych kontenerach WorkScouta i WP Job Manager.
   ========================================================= */
body,
input, button, select, textarea, label,
h1, h2, h3, h4, h5, h6,
p:not(#wpadminbar *), span:not(#wpadminbar *), a:not(#wpadminbar *), li:not(#wpadminbar *), td, th,
#header, #header-container,
#navigation, #navigation.menu,
.full-page-content-inner,
.filters-container, .filters-headline,
.filters-flexbox-row, .panel-wrapper,
.job_listing, .job_listing *,
.listings-container, .listings-container *,
.job-manager-form, .job-manager-form *,
.job_filters, .job_filters *,
.ps-homepage, .ps-homepage *,
.ps-loc-hero, .ps-loc-hero * {
    font-family: var(--ps-font) !important;
}

/* =========================================================
   HEADER – biały, nie przezroczysty
   WorkScout używa #header-container.transparent-header jako wrapper
   ========================================================= */
#header-container #header,
#header-container.transparent-header #header,
#header-container.sticky_new #header,
#header-container.sticky_new.transparent-header #header {
    background-color: var(--ps-white) !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* ── Inline nav desktop – ukryta (menu dostępne przez hamburger) ───── */
/* Zamiast nav wiersz w headerze mamy: Logo | CTA buttons | ☰ hamburger */
#navigation.menu {
    display: none !important;
}

/* ── Hamburger – zawsze widoczny, absolutnie wyśrodkowany w headerze ──
   WorkScout ukrywa .mmenu-trigger na desktopie (.new-header .mmenu-trigger
   { display: none }). Wymuszamy go i pozycjonujemy absolutnie wewnątrz
   #header (height: 82px) tak, żeby był pionowo wyśrodkowany i nie
   wychodził poza dolną krawędź headera niezależnie od layoutu .right-side.

   .right-side jest position:absolute;right:35px;top:0;height:100%
   → nasz hamburger trafia w to samo miejsce co WorkScout planuje, ale
     bez problemów z float/inline-block rodziców.                      */

/* Ukryj header-widget (login/user menu – zastąpiony naszymi CTA buttons).
   Wiele wariantów selektora żeby trafiło niezależnie od klas na wrapperze. */
.new-header #header .right-side .header-widget,
#header-container #header .right-side .header-widget,
#header .right-side .header-widget {
    display: none !important;
}

/* .right-side – flex row żeby CTA i hamburger były obok siebie.
   WAŻNE: parent ma position:absolute; top:0; height:100% – żeby pionowo
   wyśrodkować hamburger względem buttonów, wymuszamy pełną wysokość +
   align-items:center (Hubert: hamburger ma być w jednej linii z CTA). */
.new-header #header .right-side {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    height: 100% !important;
    padding: 0 8px 0 0 !important;
    gap: 8px !important;
    overflow: visible !important;
}

/* ── Pionowa kreska przy logo – USUNIĘTA (Hubert v12) ──────────────────
   Parent style.css:16681 ma: .new-header #logo_nh { border-right:1px solid ... }
   Usuwamy kreskę, zostawiamy delikatny margines. */
.new-header #logo_nh,
#header #logo_nh,
#logo_nh {
    border-right: none !important;
    padding-right: 0 !important;
    margin-right: 12px !important;
}

/* Hamburger – poprawny sizing, reset WorkScout float/margin/top/background.
   Hubert v12: usuń dziwny szary kafelek/cień przy hover. */
.mmenu-trigger {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    position: relative !important;
    top: auto !important;
    margin: 0 !important;
    float: none !important;
    width: 44px !important;
    height: 44px !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    transition: background-color .15s !important;
}
.mmenu-trigger:hover,
.mmenu-trigger:focus,
.mmenu-trigger:active {
    background: transparent !important;       /* Hubert v13: bez kafelka/cienia */
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}
/* Reset wewnętrznego <button.hamburger> – to on miał własne tło/padding/cień
   (biblioteka hamburgers.css), przez co kafelek był przesunięty pod ikoną. */
.mmenu-trigger .hamburger,
.mmenu-trigger button.hamburger {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    overflow: visible !important;
}
.mmenu-trigger .hamburger:hover,
.mmenu-trigger button.hamburger:hover {
    background: transparent !important;
    background-color: transparent !important;
    opacity: 1 !important;
}
.mmenu-trigger .hamburger-box {
    margin: 0 !important;
}

/* ── Login / Register buttons – ukryte (nie potrzebne przy obecnym UX) */
.login-register-buttons {
    display: none !important;
}

/* ── Mobile navigation overlay – logo i styl ────────────────────────── */

/* Ukryj broken/WorkScout img – zastępujemy JS-em */
.mobile-nav-header .menu-logo img#listeo_logo {
    display: none !important;
}

/* Link loga – czysty tekst, bez podkreślenia */
.mobile-nav-header .menu-logo a {
    font-family: var(--ps-font-heading) !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0;
    line-height: 1;
}

/* Biały "Praca" + jasnozielony "Sochaczew.pl" – widoczne na ciemnym tle */
.mobile-nav-header .menu-logo .mob-logo-praca {
    color: #ffffff;
}
.mobile-nav-header .menu-logo .mob-logo-city {
    color: #81C784; /* Jaśniejszy zielony – kontrast na czarnym tle */
}

/* Linki nav – style zachowane na wypadek ponownego włączenia */
#header-container #navigation.menu ul#responsive > li > a,
#header-container.transparent-header #navigation.menu ul#responsive > li > a {
    color: var(--ps-text) !important;
    font-family: var(--ps-font);
}
#header-container #navigation.menu ul#responsive > li > a:hover,
#header-container.transparent-header #navigation.menu ul#responsive > li > a:hover,
#header-container #navigation.menu ul#responsive > li.current-menu-item > a {
    color: var(--ps-green) !important;
}

/* Logo – plik ma duże marginesy wewnętrzne, dlatego wyższy max-height */
#logo_nh img {
    max-height: 80px;
    width: auto;
    max-width: none !important;
    height: auto;
    display: block;
}

/* Logo tekstowe dwukolorowe (dopóki brak pliku graficznego) */
#logo_nh a {
    font-family: var(--ps-font-heading) !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    white-space: nowrap;
}
#logo_nh .logo-praca {
    color: var(--ps-text) !important;
}
#logo_nh .logo-sochaczew {
    color: var(--ps-green) !important;
}

/* =========================================================
   PRZYCISKI CTA – wstrzykiwane przez JS
   ========================================================= */
.ps-header-cta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-right: 10px;
}

.ps-btn-cta {
    display: inline-block !important;
    background-color: var(--ps-orange) !important;
    color: var(--ps-white) !important;
    font-family: var(--ps-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    padding: 9px 18px !important;
    border-radius: var(--ps-radius) !important;
    border: 2px solid var(--ps-orange) !important;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1.4 !important;
    transition: background-color .2s ease !important;
}
.ps-btn-cta:hover {
    background-color: var(--ps-orange-dark) !important;
    border-color: var(--ps-orange-dark) !important;
    color: var(--ps-white) !important;
}

.ps-btn-outline {
    display: inline-block !important;
    background-color: transparent !important;
    color: var(--ps-green) !important;
    font-family: var(--ps-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    padding: 9px 18px !important;
    border-radius: var(--ps-radius) !important;
    border: 2px solid var(--ps-green) !important;
    text-decoration: none !important;
    white-space: nowrap;
    line-height: 1.4 !important;
    transition: background-color .2s ease, color .2s ease !important;
}
.ps-btn-outline:hover {
    background-color: var(--ps-green) !important;
    color: var(--ps-white) !important;
}

/* Dropdown „Panel pracodawcy" (zalogowany) – Przejdź do panelu / Wyloguj się */
.ps-panel-dd { position: relative; display: inline-block; }
.ps-btn-outline.ps-panel-dd-toggle {
    display: inline-flex !important; align-items: center; gap: 7px; cursor: pointer;
}
.ps-dd-caret {
    width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent;
    border-top: 5px solid currentColor; transition: transform .2s ease;
}
.ps-panel-dd.is-open .ps-dd-caret { transform: rotate(180deg); }
.ps-panel-dd-menu {
    position: absolute; top: calc(100% + 8px); right: 0; min-width: 244px;
    background: #fff; border: 1px solid #e6e9ef; border-radius: 12px;
    box-shadow: 0 12px 34px rgba(16,24,40,.14); padding: 8px; z-index: 9999;
    opacity: 0; visibility: hidden; transform: translateY(-6px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.ps-panel-dd.is-open .ps-panel-dd-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ps-dd-item {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px;
    border-radius: 9px; text-decoration: none; color: #334155;
}
.ps-dd-item:hover { background: #f3f6f4; }
.ps-dd-item .ps-dd-ico { flex: 0 0 auto; color: var(--ps-green, #2e7d32); }
.ps-dd-tx { display: flex; flex-direction: column; line-height: 1.25; }
.ps-dd-tx strong { font-size: 14px; font-weight: 700; color: #1f2937; }
.ps-dd-tx small { font-size: 12px; color: #64748b; }
.ps-dd-sep { height: 1px; background: #eef0f4; margin: 6px 4px; }
.ps-dd-logout:hover { background: #fef2f2; }
.ps-dd-logout .ps-dd-ico { color: #dc2626; }
.ps-dd-logout:hover .ps-dd-tx strong { color: #dc2626; }

/* =========================================================
   WYSZUKIWARKA – formularz poziomy
   ========================================================= */

/* ─── Resetuj domyślny box formularza ─────────────────────────────── */
.ps-search-section .job_filters,
.ps-search-section form.job_filters,
.ps-search-wrap .job_filters,
.ps-search-wrap form.job_filters {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

/* ─── Formularz poziomy (flex) ────────────────────────────────────── */
/* Trzy selektory pokrywają różne scenariusze:
   1. .ps-search-section – front-page.php aktywny, sekcja dostępna
   2. .ps-search-wrap    – bezpośredni wrapper
   3. .home .search_jobs – WorkScout native homepage jako fallback     */
.ps-search-section .search_jobs,
.ps-search-wrap .search_jobs,
.home .search_jobs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    align-items: flex-end !important;
}

/* Pola: keyword, location, category – równomiernie */
.ps-search-section .search_jobs .search_keywords,
.ps-search-section .search_jobs .search_location,
.ps-search-section .search_jobs .search_categories,
.ps-search-wrap .search_jobs .search_keywords,
.ps-search-wrap .search_jobs .search_location,
.ps-search-wrap .search_jobs .search_categories,
.home .search_jobs .search_keywords,
.home .search_jobs .search_location,
.home .search_jobs .search_categories {
    flex: 1 1 180px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Przycisk submit – nie rozciągaj */
.ps-search-section .search_jobs .search_submit,
.ps-search-wrap .search_jobs .search_submit,
.home .search_jobs .search_submit {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

/* ── Fix: pole lokalizacji NIE czernieje na hover (Hubert v13) ─────────
   Parent ma a.job_filters_links:hover { background:#282828 } itp. – pole
   lokalizacji dziedziczyło ciemne tło. Wymuszamy jasne + zielony akcent. */
.ps-search-section .search_location:hover,
.ps-search-section .search_location a:hover,
.ps-search-section .search_location .chosen-single:hover,
.ps-search-wrap .search_location:hover,
.ps-search-wrap .search_location a:hover,
.ps-search-wrap .search_location .chosen-single:hover,
.home .search_location:hover,
.home .search_location a:hover,
.ps-loc-btn:hover {
    background: #fff !important;
    background-color: #fff !important;
    color: var(--ps-text) !important;
    border-color: var(--ps-green) !important;   /* zielony akcent na hover */
}
.ps-search-section .search_location:hover *,
.ps-search-wrap .search_location:hover *,
.ps-loc-btn:hover .ps-loc-btn-text {
    color: var(--ps-text) !important;
}

/* Etykiety pól */
.ps-search-section .search_jobs label,
.ps-search-wrap .search_jobs label,
.home .search_jobs label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    margin-bottom: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: .6px !important;
    font-family: var(--ps-font) !important;
}

/* Inputy tekstowe i select */
.ps-search-section .search_jobs input[type="text"],
.ps-search-section .search_jobs input[type="search"],
.ps-search-section .search_jobs select,
.ps-search-wrap .search_jobs input[type="text"],
.ps-search-wrap .search_jobs input[type="search"],
.ps-search-wrap .search_jobs select,
.home .search_jobs input[type="text"],
.home .search_jobs input[type="search"],
.home .search_jobs select {
    width: 100% !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    padding: 0 16px !important;          /* pion=0, wysokość kontroluje height */
    font-family: var(--ps-font) !important;
    font-size: 15px !important;
    color: var(--ps-text) !important;
    background: var(--ps-white) !important;
    height: 52px !important;             /* IDENTYCZNA wysokość jak loc/kategoria */
    line-height: 52px !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}
.ps-search-section .search_jobs input[type="text"]:focus,
.ps-search-section .search_jobs input[type="search"]:focus,
.ps-search-section .search_jobs select:focus,
.ps-search-wrap .search_jobs input[type="text"]:focus,
.ps-search-wrap .search_jobs input[type="search"]:focus,
.ps-search-wrap .search_jobs select:focus,
.home .search_jobs input[type="text"]:focus,
.home .search_jobs input[type="search"]:focus,
.home .search_jobs select:focus {
    border-color: var(--ps-green) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(46,125,50,.1) !important;
}

/* ── Spójna strzałka (chevron) – Hubert v13 ───────────────────────────
   Natywny <select> kategorii: CSS background chevron (appearance:none).
   Lokalizacja (.ps-loc-btn): NIE ruszamy tła (był bug kafelkowania) –
   stylujemy tylko jej inline SVG .ps-loc-btn-chevron żeby wyglądał tak samo. */
.ps-search-section .search_jobs select,
.ps-search-wrap .search_jobs select,
.home .search_jobs select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23334155' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 16px 16px !important;
    padding-right: 40px !important;
    height: 52px !important;          /* identyczna wysokość jak pole lokalizacji */
    line-height: 1.4 !important;
}
/* Lokalizacja: ukryj inline SVG, użyj ::after z IDENTYCZNYM chevronem co select */
.ps-loc-btn .ps-loc-btn-chevron { display: none !important; }
.ps-loc-btn {
    position: relative;
    height: 52px !important;
    padding-right: 40px !important;
}
.ps-loc-btn::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23334155' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 16px 16px;
    transition: transform .2s;
    pointer-events: none;
}
.ps-loc-open .ps-loc-btn::after { transform: translateY(-50%) rotate(180deg); }

/* C4 fix: ukryj WP JM text input lokalizacji – zastąpiony przez ps-loc-wrap (server-side HTML).
   Bez tego przed odpaleniem JS przez LiteSpeed widać by oba elementy jednocześnie. */
.ps-search-section .search_location input[name="search_location"],
.ps-search-wrap .search_location input[name="search_location"] { display: none !important; }
.ps-search-section .search_location .find_my_location,
.ps-search-wrap .search_location .find_my_location { display: none !important; }

/* ─── Przycisk Szukaj – zielony ───────────────────────────────────── */
.ps-search-section .search_jobs input[type="submit"],
.ps-search-section .search_jobs button[type="submit"],
.ps-search-wrap .search_jobs input[type="submit"],
.ps-search-wrap .search_jobs button[type="submit"],
.search_jobs input[type="submit"],
.search_jobs button[type="submit"],
.job_filters input[type="submit"],
.job_filters button[type="submit"],
input.search_submit,
button.search_submit,
.search-submit {
    background-color: var(--ps-green) !important;
    color: var(--ps-white) !important;
    border-color: var(--ps-green) !important;
    font-family: var(--ps-font) !important;
    font-weight: 600 !important;
    padding: 0 28px !important;
    border-radius: var(--ps-radius) !important;
    font-size: 15px !important;
    height: 52px !important;             /* IDENTYCZNA wysokość jak pola */
    line-height: 52px !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}
.ps-search-section .search_jobs input[type="submit"]:hover,
.ps-search-section .search_jobs button[type="submit"]:hover,
.ps-search-wrap .search_jobs input[type="submit"]:hover,
.ps-search-wrap .search_jobs button[type="submit"]:hover,
.search_jobs input[type="submit"]:hover,
.search_jobs button[type="submit"]:hover,
input.search_submit:hover,
button.search_submit:hover {
    background-color: var(--ps-green-dark) !important;
    border-color: var(--ps-green-dark) !important;
}

/* ─── Ukryj elementy których nie ma w makiecie ────────────────────── */
/* "Tylko praca zdalna" checkbox */
.ps-search-section .search_remote_position,
.ps-search-wrap .search_remote_position,
.home .search_jobs .search_remote_position {
    display: none !important;
}

/* Div style="clear:both" – float-clear hack rozbijający flex */
.ps-search-section .search_jobs [style*="clear"],
.ps-search-wrap .search_jobs [style*="clear"],
.home .search_jobs [style*="clear"] {
    display: none !important;
}

/* "Filter by tag" cloud */
.ps-search-section .filter_by_tag,
.ps-search-section .filter_wide,
.ps-search-wrap .filter_by_tag,
.ps-search-wrap .filter_wide,
.home .search_jobs .filter_by_tag,
.home .search_jobs .filter_wide {
    display: none !important;
}

/* Checkboxy typów zatrudnienia (Freelance / Full Time / Internship…)
   Są w .search_types poza .search_jobs, wewnątrz .job_filters */
.home .job_filters .search_types,
.home .job_filters .job_types,
.ps-search-section .job_filters .search_types,
.ps-search-section .job_filters .job_types,
.ps-search-wrap .job_filters .search_types,
.ps-search-wrap .job_filters .job_types,
.home .job_filters ul.job_types,
.home .job_filters .types {
    display: none !important;
}

/* ─── Ukryj LISTĘ ogłoszeń w sekcji wyszukiwarki ─────────────────── */
/* UWAGA: nie ukrywaj div.job_listings – to outer wrapper który zawiera
   też formularz. Celujemy tylko w ul (lista pozycji) i przyciski.    */
.ps-search-section ul.job_listings,
.ps-search-section li.job_listing,
.ps-search-section .showing_jobs,
.ps-search-section .load_more_jobs,
.ps-search-section a.load_more_jobs,
.ps-search-section .no_jobs_found_message,
.ps-search-section nav.job-manager-pagination,
.ps-search-wrap ul.job_listings,
.ps-search-wrap li.job_listing,
.ps-search-wrap .showing_jobs,
.ps-search-wrap .load_more_jobs,
.ps-search-wrap a.load_more_jobs,
.ps-search-wrap .no_jobs_found_message,
.ps-search-wrap nav.job-manager-pagination {
    display: none !important;
}

/* =========================================================
   KAFELKI OGŁOSZEŃ
   ========================================================= */
li.job_listing {
    border-radius: var(--ps-radius) !important;
    border: 1px solid var(--ps-border) !important;
    background: var(--ps-white) !important;
    transition: box-shadow .2s ease, transform .15s ease !important;
    position: relative !important;
    overflow: hidden !important;
}

/* Lewy pasek kolorowy – pseudo-element na <li> (grid layout).
   overflow:hidden na rodzicu przycina go do zaokrąglonego rogu.
   Kolor nadpisywany przez selektory typów pracy poniżej. */
li.job_listing::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 5px !important;
    background-color: #CBD5E1 !important; /* domyślny szary */
    z-index: 1 !important;
}
li.job_listing:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.12) !important;
    transform: translateY(-2px) !important;
}

/* =========================================================
   LEWY PASEK – KOLORY WG TYPU PRACY
   Grid layout: klasy na <li> → kolorujemy ::before
   New layout:  klasy na <a>  → border-left (bez !important, PHP custom colors wygrają)
   ========================================================= */

/* Grid layout – ::before background */
li.job_listing.full-time::before,
li.job_listing.job_listing_type-full-time::before   { background-color: #186FC9 !important; }
li.job_listing.part-time::before,
li.job_listing.job_listing_type-part-time::before   { background-color: #F1630D !important; }
li.job_listing.temporary::before,
li.job_listing.job_listing_type-temporary::before   { background-color: #E12335 !important; }
li.job_listing.internship::before,
li.job_listing.job_listing_type-internship::before  { background-color: #E1D123 !important; }
li.job_listing.freelance::before,
li.job_listing.job_listing_type-freelance::before   { background-color: #10B981 !important; }
li.job_listing.contractor::before,
li.job_listing.job_listing_type-contractor::before  { background-color: #8B5CF6 !important; }

/* New layout – border-left na <a> (fallback gdy brak custom koloru w WP Admin) */
.new-layout.job_listings > li a.full-time,
.new-layout.job_listings > li a.job_listing_type-full-time    { border-left-color: #186FC9; }
.new-layout.job_listings > li a.part-time,
.new-layout.job_listings > li a.job_listing_type-part-time    { border-left-color: #F1630D; }
.new-layout.job_listings > li a.temporary,
.new-layout.job_listings > li a.job_listing_type-temporary    { border-left-color: #E12335; }
.new-layout.job_listings > li a.internship,
.new-layout.job_listings > li a.job_listing_type-internship   { border-left-color: #E1D123; }
.new-layout.job_listings > li a.freelance,
.new-layout.job_listings > li a.job_listing_type-freelance    { border-left-color: #10B981; }
.new-layout.job_listings > li a.contractor,
.new-layout.job_listings > li a.job_listing_type-contractor   { border-left-color: #8B5CF6; }

/* Tytuł stanowiska */
li.job_listing .position h3,
li.job_listing h3.job-title,
li.job_listing .job_listing-title {
    font-family: var(--ps-font) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--ps-text) !important;
    margin-bottom: 4px !important;
}
li.job_listing a:hover .position h3,
li.job_listing a:hover h3.job-title {
    color: var(--ps-green) !important;
}

/* Firma i lokalizacja */
li.job_listing .company strong,
li.job_listing .meta .company,
li.job_listing .job_listing-company {
    font-weight: 600 !important;
    color: var(--ps-text) !important;
}
li.job_listing .location,
li.job_listing .meta .location {
    color: var(--ps-muted) !important;
    font-size: 13px !important;
}

/* Wynagrodzenie */
.job_listing .job-salary,
.job_listing_salary,
li.job_listing .job-salary,
li.job_listing .salary {
    color: var(--ps-green) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
}

/* Lista ogłoszeń – tło i odstępy */
ul.job_listings {
    background: transparent !important;
}

/* ── Panele filtrów: checkboxy bez bulletów, równe odstępy (Hubert v13) ── */
.panel-dropdown-content .job_contract_types,
.panel-dropdown-content .job_mode_types,
.panel-dropdown-content .job_types,
.panel-checkboxes-container ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.panel-dropdown-content .job_contract_types li,
.panel-dropdown-content .job_mode_types li,
.panel-dropdown-content .job_types li {
    list-style: none !important;
    margin: 0 0 2px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.panel-dropdown-content .job_contract_types li::before,
.panel-dropdown-content .job_mode_types li::before,
.panel-dropdown-content .job_types li::before {
    display: none !important; /* usuń kropki/bullety */
}
.panel-dropdown-content .job_contract_types label,
.panel-dropdown-content .job_mode_types label,
.panel-dropdown-content .job_types label {
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    cursor: pointer;
    line-height: 1.5 !important;
}
.panel-dropdown-content .job_contract_types input[type="checkbox"],
.panel-dropdown-content .job_mode_types input[type="checkbox"],
.panel-dropdown-content .job_types input[type="checkbox"] {
    margin: 0 !important;
    flex-shrink: 0;
    width: 16px; height: 16px;
}
/* Panel ma sensowną szerokość i padding */
#tax-job_contract-panel .panel-dropdown-content,
#tax-job_mode-panel .panel-dropdown-content {
    min-width: 220px;
    padding: 14px 16px !important;
}

/* ── Opcja "Wszystkie" na górze filtrów (Hubert 31.05) ── */
.ps-filter-group .ps-filter-all-li {
    list-style: none !important;
    margin: 0 0 6px !important;
    padding: 0 0 6px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    border-bottom: 1px solid #e6e6e6 !important;
}
.ps-filter-group .ps-filter-all-li::before { display: none !important; }
.ps-filter-group .ps-filter-all-li input[type="checkbox"] {
    margin: 0 !important; flex-shrink: 0; width: 16px; height: 16px;
}
.ps-filter-group .ps-filter-all-li label {
    margin: 0 !important; font-size: 14px !important; cursor: pointer;
    line-height: 1.5 !important;
}

/* ══════════════════════════════════════════════════════════════════════
   KARTA SKONDENSOWANA (Hubert v13 pkt 7)
   - opis ogłoszenia ukryty
   - tryb pracy pod wynagrodzeniem (.ps-listing-mode)
   - rząd tagów (typ umowy + wymiar + NOWA/PILNE) pod meta
   ══════════════════════════════════════════════════════════════════════ */
li.job_listing .listing-desc,
.new-layout.job_listings .listing-desc {
    display: none !important;
}
/* Tryb pracy w meta */
li.job_listing .ps-listing-mode i { color: var(--ps-green); }

/* Meta stackowane pionowo: firma → lokalizacja → stawka (mockup 7) */
.new-layout .listing-title .listing-icons {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
    margin: 6px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.new-layout .listing-title .listing-icons li {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
    font-size: 13px !important;
    color: var(--ps-muted) !important;
}
.new-layout .listing-title .listing-icons li i {
    color: var(--ps-muted);
    width: 16px;
    margin-right: 4px !important;   /* dodatkowy oddech ikona → tekst */
    text-align: center;
    flex-shrink: 0;
}
/* Odstęp ikona→tekst także w pozostałych wariantach kart (footer/meta) */
.job-listing-footer-company i,
.ws-meta-company-name i,
.ws-meta-job-location i { margin-right: 6px !important; }
/* Stawka zielona, pogrubiona */
.new-layout .ps-listing-salary,
.new-layout .ps-listing-salary * {
    color: var(--ps-green) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
}
.new-layout .ps-listing-salary i { color: var(--ps-green) !important; }
/* Tryb pracy – zielony akcent */
.new-layout .ps-listing-mode { color: var(--ps-text) !important; }

/* Data "Dodano X temu" – prawy górny róg karty */
.new-layout.job_listings > li a { position: relative; }
.new-layout .listing-icons li.ps-listing-date-li,
.new-layout .listing-icons li:has(.listing-date) {
    position: absolute !important;
    top: 22px !important;
    right: 24px !important;
    font-size: 12px !important;
    color: var(--ps-muted) !important;
    margin: 0 !important;
}
.new-layout .listing-icons li.ps-listing-date-li i,
.new-layout .listing-icons li:has(.listing-date) i { display: none; }
.new-layout .listing-date,
.new-layout .listing-date.new {
    background: transparent !important;
    color: var(--ps-muted) !important;
    padding: 0 !important;
    font-weight: 500 !important;
}
/* Hubert 08.08.2026, mobile: data "Dodano X temu" jest ustawiona na sztywno
   position:absolute; top:22px; right:24px – na szerokiej karcie desktopowej
   ląduje w pustym rogu, ale na wąskiej karcie mobilnej nachodzi wprost na
   tytuł ogłoszenia, bo nic nie rezerwuje dla niej miejsca. Poniżej 768px
   wracamy do zwykłego układu w kolumnie (tak jak reszta .listing-icons). */
@media (max-width: 768px) {
    .new-layout .listing-icons li.ps-listing-date-li,
    .new-layout .listing-icons li:has(.listing-date) {
        position: static !important;
        top: auto !important;
        right: auto !important;
    }
}

/* Rząd tagów pod meta */
.ps-listing-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    align-items: center;
}
.ps-listing-tags:empty { display: none; }
.ps-listing-tags .job-type {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #fff !important;
    padding: 3px 9px !important;
    border-radius: 6px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    display: inline-block !important;
    text-transform: none !important;
}
.ps-listing-tags .new_job {
    background: #f97316 !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 3px 9px !important;
    border-radius: 6px !important;
    margin: 0 !important;
}
/* PILNE – czerwony badge */
.ps-badge-pilne {
    background: #dc2626 !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 3px 9px !important;
    border-radius: 6px !important;
    line-height: 1.4;
    display: inline-block;
    letter-spacing: .3px;
}

/* ══════════════════════════════════════════════════════════════════════
   ODSTĘPY MIĘDZY OFERTAMI (Hubert v12)
   WorkScout new-layout celowo SKLEJA karty: margin-top:-1px + border-radius
   tylko na first/last-child. Hubert chce osobne karty z odstępem.
   Każda <li> a = niezależny box z marginesem i własnym zaokrągleniem.
   ══════════════════════════════════════════════════════════════════════ */
.new-layout.job_listings > li {
    margin-bottom: 16px !important;
}
.new-layout.job_listings > li:last-child {
    margin-bottom: 0 !important;
}
.new-layout.job_listings > li a {
    margin-top: 0 !important;        /* usuń sklejający -1px */
    border-radius: 8px !important;   /* każda karta zaokrąglona */
    /* Borders ustawiamy per-strona – NIE shorthand, żeby nie nadpisać
       koloru lewego paska (typ umowy ustawia border-left-color osobno). */
    border-top: 1px solid #e0e0e0 !important;
    border-right: 1px solid #e0e0e0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
    border-left-width: 4px !important;   /* tylko szerokość – kolor z reguł typu umowy */
    border-left-style: solid !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
    transition: box-shadow .2s, transform .1s !important;
}
.new-layout.job_listings > li a:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,.10) !important;
}
/* Nadpisz trick first/last-child border-radius z parenta (4px 4px 0 0 itd.) */
.new-layout.job_listings > li:first-child a,
.new-layout.job_listings > li:last-child a {
    border-radius: 8px !important;
}

/* Ukryj zepsute logo firm z demo data (src zawiera CSS zamiast URL) */
li.job_listing img[src*=";"],
li.job_listing .company-logo img[src*=";"],
li.job_listing .company_logo img[src*=";"] {
    display: none !important;
}

/* =========================================================
   TAGI TYPÓW ZATRUDNIENIA
   ========================================================= */
li.job_listing_type a {
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .4px !important;
}
li.job_listing_type.full-time a   { background: #DBEAFE !important; color: #1E40AF !important; }
li.job_listing_type.freelance a,
li.job_listing_type.remote a      { background: #D1FAE5 !important; color: #065F46 !important; }
li.job_listing_type.internship a  { background: #FEF9C3 !important; color: #854D0E !important; }
li.job_listing_type.temporary a   { background: #FED7AA !important; color: #9A3412 !important; }
li.job_listing_type.contractor a  { background: #A7F3D0 !important; color: #065F46 !important; }

/* =========================================================
   GŁÓWNY KOLOR MOTYWU – zielony zamiast domyślnego
   ========================================================= */
/* Przyciski akcji */
.button,
a.button,
input[type="submit"].button {
    background-color: var(--ps-green);
    border-color: var(--ps-green);
}
.button:hover { background-color: var(--ps-green-dark); }

/* Aktywna kategoria / akcentowy kolor */
.job-category-color,
.browse-categories-item.active,
.browse-categories-item:hover {
    background-color: var(--ps-green) !important;
    border-color: var(--ps-green) !important;
}

/* "Browse All Categories" przycisk */
a.browse-all-categories,
.browse-all-btn {
    background-color: var(--ps-green) !important;
    border-color: var(--ps-green) !important;
    color: var(--ps-white) !important;
}

/* =========================================================
   STRONA GŁÓWNA – front-page.php
   ========================================================= */

/* HERO */
.ps-hero {
    background-color: var(--ps-white);
    padding: 56px 0 40px;
    text-align: center;
    /* border-bottom usunięty (Hubert v12: pozioma kreska pod sloganem) */
}
.ps-hero-title {
    font-family: var(--ps-font-heading);
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--ps-text);
    margin: 0 0 12px;
    line-height: 1.2;
}
.ps-hero-subtitle {
    font-size: 1.05rem;
    color: var(--ps-muted);
    margin: 0;
}

/* SEKCJA WYSZUKIWARKI */
.ps-search-section {
    background-color: var(--ps-white);
    padding: 32px 0 24px;
}
.ps-search-wrap {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.08);
    padding: 24px;
    background: var(--ps-white);
}
.ps-advanced-search-link {
    display: block;
    text-align: right;
    margin-top: 12px;
    font-size: .875rem;
    color: var(--ps-green) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.ps-advanced-search-link:hover { color: var(--ps-green-dark) !important; }

/* ── Dropdown lokalizacji z promieniami ──────────────────────────────── */
.ps-loc-wrap {
    position: relative;
    width: 100%;
}
.ps-loc-btn {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 52px;
    padding: 0 40px 0 16px;   /* prawy padding na chevron (::after) */
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    background: var(--ps-white);
    cursor: pointer;
    font-family: var(--ps-font);
    font-size: 15px;
    color: var(--ps-text);
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    box-sizing: border-box;
}
.ps-loc-btn:hover { border-color: #adb5bd; }
.ps-loc-btn svg:not(.ps-loc-btn-chevron) { flex-shrink: 0; color: var(--ps-green); }
.ps-loc-btn-text { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.ps-loc-btn-chevron { display: none !important; } /* zastąpione przez ::after */

.ps-loc-panel {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 300px;
    background: var(--ps-white);
    border: 1px solid var(--ps-border);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,.14);
    z-index: 9999;
    overflow: hidden;
}
.ps-loc-open .ps-loc-panel { display: block; }

.ps-loc-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    cursor: pointer;
    border-bottom: 1px solid #f1f5f9;
    transition: background .1s;
}
.ps-loc-option:last-child { border-bottom: none; }
.ps-loc-option:hover { background: #f8fafc; }
.ps-loc-option.is-active { background: #f0f9f1; }

.ps-loc-radio {
    width: 18px;
    height: 18px;
    border: 2px solid var(--ps-border);
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color .15s;
}
.ps-loc-option.is-active .ps-loc-radio {
    border-color: var(--ps-green);
    background: var(--ps-green);
}
.ps-loc-option.is-active .ps-loc-radio::after {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
}
.ps-loc-option-label strong {
    display: block;
    font-size: .9rem;
    font-weight: 600;
    color: var(--ps-text);
    line-height: 1.3;
}
.ps-loc-option-label span {
    font-size: .78rem;
    color: var(--ps-muted);
}

/* SEKCJA LISTY OGŁOSZEŃ */
.ps-latest-jobs {
    background-color: var(--ps-bg);
    padding: 32px 0 36px; /* Hubert v13: mniejsze odstępy między sekcjami */
}

/* Ukryj "Show More Jobs" z WP Job Manager – mamy własny przycisk */
.ps-latest-jobs .load_more_jobs,
.ps-latest-jobs a.load_more_jobs,
.ps-latest-jobs .showing_jobs {
    display: none !important;
}
.ps-section-title {
    font-family: var(--ps-font-heading);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--ps-text);
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--ps-green);
    display: inline-block;
}
.ps-browse-all {
    text-align: center;
    margin-top: 32px;
}
.ps-btn-browse {
    background-color: var(--ps-green) !important;
    color: var(--ps-white) !important;
    border-color: var(--ps-green) !important;
    padding: 12px 32px !important;
    font-weight: 600 !important;
    border-radius: var(--ps-radius) !important;
    font-size: 1rem !important;
}
.ps-btn-browse:hover {
    background-color: var(--ps-green-dark) !important;
    border-color: var(--ps-green-dark) !important;
}

/* =========================================================
   CONTAINER – wyrównanie i padding dla wszystkich sekcji HP
   WorkScout container może mieć minimalny padding – wymuszamy
   ========================================================= */
.ps-homepage section > .container {
    max-width: 1280px;
    width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box;
}

/* =========================================================
   NAGŁÓWEK SEKCJI – tytuł + link "Zobacz wszystkie"
   ========================================================= */
.ps-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--ps-green);
}
.ps-section-header .ps-section-title {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.ps-see-all {
    font-family: var(--ps-font);
    font-size: .875rem;
    font-weight: 600;
    color: var(--ps-green) !important;
    text-decoration: none;
    white-space: nowrap;
    margin-bottom: 4px;
}
.ps-see-all:hover { color: var(--ps-green-dark) !important; text-decoration: underline; }

/* =========================================================
   KATEGORIE – siatka ikon
   ========================================================= */
.ps-categories {
    background: var(--ps-white);
    padding: 20px 0 28px;
    border-bottom: 1px solid var(--ps-border);
}
.ps-categories-grid {
    display: flex;
    flex-wrap: nowrap;        /* jeden rząd – scroll jeśli więcej kategorii */
    gap: 8px;
    /* justify-content: safe center – gdy ikony nie mieszczą się, scroll od lewej.
       Zwykłe 'center' powoduje obcinanie lewej i prawej skrajnej ikony gdy
       suma szerokości przekracza container (content overflow na obydwu stronach,
       przeglądarka nie pozwala scrollować w lewo → lewa ikona niewidoczna). */
    justify-content: safe center;
    overflow-x: auto;
    padding: 0 4px 4px;      /* mały margines boczny chroniący skrajne ikony */
    /* ukryj scrollbar wizualnie (scroll działa dalej) */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.ps-categories-grid::-webkit-scrollbar { display: none; }

.ps-cat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 8px;
    border-radius: 12px;
    text-decoration: none !important;
    border: 1px solid transparent;
    transition: border-color .2s, box-shadow .2s;
    width: 100px;
    flex-shrink: 0;
    text-align: center;
}
.ps-cat-item:hover {
    border-color: var(--ps-border);
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
.ps-cat-icon {
    width: 78px;
    height: 78px;
    border-radius: 12px;
    background: transparent !important;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}
.ps-cat-icon img {
    width: 78px !important;
    height: 78px !important;
    max-width: 78px !important;
    min-width: unset !important;
    min-height: unset !important;
    object-fit: contain !important;
    display: block !important;
    flex-shrink: 0 !important;
}
.ps-cat-emoji {
    font-size: 28px;
    line-height: 1;
    display: block;
}
.ps-cat-name {
    font-family: var(--ps-font);
    font-size: 12px;
    font-weight: 700;
    color: var(--ps-text);
    line-height: 1.25;
}
.ps-cat-count {
    display: none !important;
}

/* =========================================================
   POLECANI PRACODAWCY
   ========================================================= */
.ps-employers {
    background: var(--ps-bg);
    padding: 40px 0;
    border-bottom: 1px solid var(--ps-border);
}
.ps-employers-title {
    font-family: var(--ps-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--ps-muted);
    text-transform: uppercase;
    letter-spacing: .5px;
    text-align: center;
    margin-bottom: 24px;
}
.ps-employers-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 32px;
}
.ps-employer-logo {
    display: flex;
    align-items: center;
    opacity: .6;
    transition: opacity .2s;
    text-decoration: none;
}
.ps-employer-logo:hover { opacity: 1; }
.ps-employer-logo img {
    max-height: 40px;
    max-width: 120px;
    width: auto;
    object-fit: contain;
    filter: grayscale(1);
    transition: filter .2s;
}
.ps-employer-logo:hover img { filter: grayscale(0); }
.ps-employer-name {
    font-family: var(--ps-font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--ps-muted);
}
.ps-employers-placeholder {
    color: var(--ps-muted);
    font-size: .875rem;
    text-align: center;
}

/* =========================================================
   LINKI LOKALIZACYJNE
   ========================================================= */
.ps-locations {
    background: var(--ps-white);
    padding: 32px 0; /* Hubert v13: mniejsze odstępy */
    border-bottom: 1px solid var(--ps-border);
}
.ps-locations-intro {
    color: var(--ps-muted);
    font-size: .95rem;
    margin-bottom: 24px;
}
.ps-locations-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.ps-location-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    text-decoration: none !important;
    color: var(--ps-text) !important;
    font-size: .9rem;
    font-weight: 500;
    font-family: var(--ps-font);
    transition: border-color .2s, box-shadow .2s, color .2s;
}
.ps-location-item:hover {
    border-color: var(--ps-green);
    color: var(--ps-green) !important;
    box-shadow: 0 2px 8px rgba(46,125,50,.12);
}
.ps-location-pin {
    color: var(--ps-green);
    flex-shrink: 0;
}

/* =========================================================
   BLOG / PORADY I ARTYKUŁY
   ========================================================= */
.ps-blog {
    background: var(--ps-bg);
    padding: 32px 0 36px; /* Hubert v13: mniejsze odstępy */
}
.ps-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.ps-blog-card {
    background: var(--ps-white);
    border-radius: var(--ps-radius);
    border: 1px solid var(--ps-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .15s;
}
.ps-blog-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
    transform: translateY(-2px);
}
.ps-blog-img-wrap {
    display: block;
    aspect-ratio: 16/9;
    overflow: hidden;
}
.ps-blog-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}
.ps-blog-card:hover .ps-blog-img-wrap img {
    transform: scale(1.04);
}
.ps-blog-img-placeholder {
    aspect-ratio: 16/9;
    background: var(--ps-bg);
}
.ps-blog-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
}
.ps-blog-date {
    font-size: 12px;
    color: var(--ps-muted);
    font-family: var(--ps-font);
}
.ps-blog-title {
    font-family: var(--ps-font);
    font-size: 1rem;
    font-weight: 600;
    color: var(--ps-text);
    margin: 0;
    line-height: 1.4;
}
.ps-blog-title a {
    color: inherit !important;
    text-decoration: none !important;
}
.ps-blog-title a:hover { color: var(--ps-green) !important; }
.ps-blog-excerpt {
    font-size: .875rem;
    color: var(--ps-muted);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}
.ps-blog-read-more {
    font-size: .875rem;
    font-weight: 600;
    color: var(--ps-green) !important;
    text-decoration: none !important;
    margin-top: auto;
}
.ps-blog-read-more:hover { color: var(--ps-green-dark) !important; }

/* =========================================================
   STOPKA – NADPISANIA WORKSCOUT
   ========================================================= */

/* ── Białe tło stopki ────────────────────────────────────────────────
   Dwa podejścia jednocześnie:
   A) Kirki: ps_fix_kirki_options() ustawia workscout_custom_footer='enable'
      + workscout_footer_bg_color='#ffffff' → WorkScout generuje własny
      inline CSS który oficjalnie nadpisuje ciemny motyw.
   B) CSS backup z hardkodowanymi kolorami (nie CSS variables) jako
      failsafe na wypadek opóźnienia Kirki lub cache'u.
   ─────────────────────────────────────────────────────────────────── */

/* Główny wrapper – oba warianty (bez i z klasą custom-footer-colors) */
#footer-new,
#footer-new.custom-footer-colors {
    background-color: #ffffff !important;
    color: #475569 !important;
    border-top: 1px solid #e2e8f0 !important;
}
#footer-new p {
    color: #475569 !important;
    font-family: var(--ps-font) !important;
}

/* Nagłówki kolumn (Dla Kandydatów, Dla Pracodawców…) */
#footer-new h4,
#footer-new h3,
#footer-new h2,
#footer-new.custom-footer-colors h4,
#footer-new.custom-footer-colors h3,
#footer-new.custom-footer-colors h2,
.footer-new-links h3 {
    color: #0F172A !important;
    font-family: var(--ps-font-heading) !important;
    font-weight: 700 !important;
}

/* Linki stopki */
#footer-new .widget_nav_menu a,
#footer-new .footer-widget a,
#footer-new.custom-footer-colors .footer-widget.widget_nav_menu li a {
    color: #475569 !important;
    text-decoration: none !important;
}
#footer-new .widget_nav_menu a:hover,
#footer-new .footer-widget a:hover,
#footer-new.custom-footer-colors .footer-widget.widget_nav_menu li a:hover {
    color: #2E7D32 !important;
}

/* Sekcja środkowa i wszystkie tła */
.footer-new-middle-section,
#footer-new .footer-new-rows-right {
    background-color: #ffffff !important;
}

/* Footer top section (logo + liczniki) – zawsze ukryty */
#footer-new .footer-new-top-section {
    display: none !important;
}

/* Sekcja bottom (copyright + social) */
.footer-new-bottom-section,
#footer-new.custom-footer-colors .footer-new-bottom-section {
    background-color: #F1F5F9 !important;
    border-top: 1px solid #e2e8f0 !important;
}
.footer-new-bottom-section * {
    color: #475569 !important;
}

/* Copyright */
#footer-new .footer-new-bottom-left {
    font-family: var(--ps-font) !important;
    font-size: .8rem;
}

/* Ikony social – ciemne na jasnym tle */
#footer-new .new-footer-social-icons li a,
#footer-new.custom-footer-colors .new-footer-social-icons li a {
    color: #475569 !important;
    opacity: 1 !important;
}
#footer-new .new-footer-social-icons li a:hover,
#footer-new.custom-footer-colors .new-footer-social-icons li a:hover {
    color: #2E7D32 !important;
}

/* Widget nav_menu – resetuj domyślne style listy */
#footer-new .footer-widget.widget_nav_menu ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
#footer-new .footer-widget.widget_nav_menu ul li {
    padding: 3px 0 !important;
    border: none !important;
    background: none !important;
}
#footer-new .footer-widget.widget_nav_menu ul li::before {
    display: none !important;
}

/* =========================================================
   CTA DLA PRACODAWCÓW
   ========================================================= */
.ps-employer-cta {
    background: linear-gradient(135deg, var(--ps-green) 0%, var(--ps-green-dark) 100%);
    padding: 32px 0; /* Hubert v13: mniejsze odstępy */
}
.ps-employer-cta-inner {
    display: flex;
    align-items: center;
    gap: 32px;
}
.ps-employer-cta-icon {
    color: rgba(255,255,255,.7);
    flex-shrink: 0;
}
.ps-employer-cta-text {
    flex: 1;
}
.ps-employer-cta-text h2 {
    font-family: var(--ps-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ps-white);
    margin: 0 0 8px;
}
.ps-employer-cta-text p {
    color: rgba(255,255,255,.85);
    margin: 0;
    font-size: .95rem;
}
.ps-employer-cta-text strong {
    color: var(--ps-white);
}
.ps-btn-cta-large {
    display: inline-block;
    background: var(--ps-orange);
    color: var(--ps-white) !important;
    font-family: var(--ps-font);
    font-size: 1rem;
    font-weight: 700;
    padding: 14px 28px;
    border-radius: var(--ps-radius);
    text-decoration: none !important;
    white-space: nowrap;
    border: 2px solid var(--ps-orange);
    transition: background .2s, border-color .2s;
    flex-shrink: 0;
}
.ps-btn-cta-large:hover {
    background: var(--ps-orange-dark);
    border-color: var(--ps-orange-dark);
    color: var(--ps-white) !important;
}

/* =========================================================
   MOBILNA
   ========================================================= */
@media (max-width: 1290px) {
    .ps-header-cta { display: none; }
}
@media (max-width: 768px) {
    .ps-hero { padding: 36px 0 24px; }
    .ps-hero-title { font-size: 1.6rem; }
    .ps-search-wrap { padding: 16px; }
    .ps-search-section { padding: 20px 0 16px; }
    .ps-latest-jobs { padding: 32px 0 40px; }

    /* Formularz wyszukiwarki – kolumna na mobile */
    .ps-search-section .search_jobs,
    .ps-search-wrap .search_jobs,
    .home .search_jobs {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .ps-search-section .search_jobs .search_keywords,
    .ps-search-section .search_jobs .search_location,
    .ps-search-section .search_jobs .search_categories,
    .ps-search-section .search_jobs .search_submit,
    .ps-search-wrap .search_jobs .search_keywords,
    .ps-search-wrap .search_jobs .search_location,
    .ps-search-wrap .search_jobs .search_categories,
    .ps-search-wrap .search_jobs .search_submit,
    .home .search_jobs .search_keywords,
    .home .search_jobs .search_location,
    .home .search_jobs .search_categories,
    .home .search_jobs .search_submit {
        flex: 1 1 100% !important;
        min-width: 100% !important;
    }
    .ps-search-section .search_jobs input[type="submit"],
    .ps-search-section .search_jobs button[type="submit"],
    .ps-search-wrap .search_jobs input[type="submit"],
    .ps-search-wrap .search_jobs button[type="submit"],
    .home .search_jobs input[type="submit"],
    .home .search_jobs button[type="submit"] {
        width: 100% !important;
    }

    /* Kategorie – poziomy scroll na mobile (jak app) */
    .ps-categories { padding: 20px 0; }
    .ps-categories-grid {
        justify-content: flex-start; /* scroll od lewej na mobile */
        gap: 6px;
    }
    .ps-cat-item { width: 80px; padding: 8px 4px; }
    .ps-cat-icon { width: 52px; height: 52px; border-radius: 10px; }
    .ps-cat-icon img { width: 42px !important; height: 42px !important; max-width: 42px !important; }
    .ps-cat-emoji { font-size: 24px; }
    .ps-cat-name { font-size: 10px; }

    /* Lokalizacje – 2 kolumny */
    .ps-locations-grid { grid-template-columns: repeat(2, 1fr); }
    .ps-locations { padding: 32px 0; }

    /* Blog – 1 kolumna */
    .ps-blog-grid { grid-template-columns: 1fr; }
    .ps-blog { padding: 32px 0 40px; }

    /* CTA pracodawcy – pionowo */
    .ps-employer-cta-inner {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }
    .ps-employer-cta-icon { display: none; }
    .ps-employer-cta-text h2 { font-size: 1.2rem; }
    .ps-btn-cta-large { width: 100%; text-align: center; }

    /* Section header – pionowo na bardzo wąskich */
    .ps-section-header { flex-wrap: wrap; gap: 8px; }

    /* Podstrony lokalizacyjne – mobile */
    .ps-loc-hero { padding: 14px 0 12px; }
    .ps-loc-h1 { font-size: 1.25rem; }
    .ps-loc-year { display: block; font-size: 1rem; }
    .ps-loc-cat-grid { grid-template-columns: repeat(2, 1fr); }
    .ps-loc-nearby-grid { grid-template-columns: repeat(2, 1fr); }
    .ps-loc-hero-body { gap: 10px; }
    .ps-loc-herb { width: 40px; max-height: 46px; }

    /* Kategorie hero – mobile */
    .ps-cat-hero-body { gap: 12px; }
    .ps-cat-hero-icon { width: 56px; height: 56px; font-size: 28px; }
    .ps-cat-hero-h1 { font-size: 1.15rem; }
}

/* =========================================================
   HERBY MIAST – sekcja lokalizacji na homepage
   ========================================================= */
.ps-location-herb {
    width: 24px;
    height: auto;
    max-height: 28px;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.15));
}

/* =========================================================
   HERO KATEGORII – taxonomy-job_listing_category.php
   ========================================================= */
.ps-cat-hero {
    background: var(--ps-white);
    border-bottom: 1px solid var(--ps-border);
    padding: 18px 0 14px;
}
.ps-cat-hero-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}
.ps-cat-hero-body {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 10px;
}
.ps-cat-hero-icon {
    width: 72px;
    height: 72px;
    border-radius: 16px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 34px;
    line-height: 1;
}
.ps-cat-hero-icon img {
    width: 52px !important;
    height: 52px !important;
    max-width: 52px !important;
    min-width: unset !important;
    object-fit: contain !important;
    display: block !important;
}
.ps-cat-hero-text { flex: 1; min-width: 0; }
.ps-cat-hero-h1 {
    font-family: var(--ps-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ps-text);
    margin: 0 0 6px;
    line-height: 1.25;
}
.ps-cat-hero-location {
    color: var(--ps-muted);
    font-weight: 500;
}
.ps-cat-hero-tagline {
    font-size: .9rem;
    color: var(--ps-muted);
    margin: 0;
}
.ps-cat-splitmap { /* identyczny layout jak oferty-pracy */ }

/* =========================================================
   LISTA OFERT – styl wg mockupu Huberta v10
   ========================================================= */

/* Counter "Znaleziono X oferty" – stylizacja parent .showing_jobs */
.showing_jobs,
.listings-container .showing_jobs,
.full-page-content-inner .showing_jobs {
    display: block !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
    margin: 16px 0 12px !important;
    padding: 0 4px !important;
}
.showing_jobs strong,
.showing_jobs b,
.showing_jobs .count {
    color: #16a34a !important;
    font-weight: 700 !important;
}

/* Wynagrodzenie / Stawka w listach ofert – zielony kolor (jak w mockupie) */
.ws-meta-salary,
.ws-meta-rate,
.job-listing-footer .ws-meta-salary,
.job-list-content .ws-meta-salary,
ul.listing-icons .ws-meta-salary,
ul.listing-icons .ws-meta-rate {
    color: #16a34a !important;
    font-weight: 600 !important;
}
.ws-meta-salary i,
.ws-meta-rate i,
.ws-meta-salary svg,
.ws-meta-rate svg {
    color: #16a34a !important;
    fill: #16a34a !important;
}

/* Verified badge ✓ przy nazwie firmy (placeholder – feature na taska 27) */
.ps-company-verified {
    display: inline-block;
    width: 17px;
    height: 17px;
    margin-left: 6px;
    border-radius: 50%;
    background: #16a34a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center center / 11px 11px no-repeat;
    vertical-align: middle;
    cursor: help;
}
.ps-company-verified::before { content: none; } /* stary cienki ✓ tekstowy – wyłączony */

/* "PILNE" pill – czerwony tag wyróżniający pilne oferty */
.ps-urgent-badge,
span.urgent_job,
span.job-urgent {
    display: inline-block;
    padding: 3px 8px;
    background: #dc2626 !important;
    color: #ffffff !important;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    border-radius: 10px;
    letter-spacing: .4px;
    margin-left: 4px;
    text-transform: uppercase;
}

/* =========================================================
   PODSTRONY LOKALIZACYJNE – template-praca-lokalizacja.php
   ========================================================= */

/* ── Hero nad splitmap ────────────────────────────────────────────── */
.ps-loc-hero {
    background: var(--ps-white);
    border-bottom: 1px solid var(--ps-border);
    padding: 20px 0 16px;
}
.ps-loc-hero-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}
/* Herb + H1 w jednym wierszu */
.ps-loc-hero-body {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 10px;
}
.ps-loc-herb {
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    height: auto !important;
    max-height: 64px !important;
    object-fit: contain !important;
    flex-shrink: 0 !important;
    display: block !important;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.18));
}
.ps-loc-hero-text { flex: 1; min-width: 0; }

.ps-loc-breadcrumbs {
    font-size: .8rem;
    color: var(--ps-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}
.ps-loc-breadcrumbs a {
    color: var(--ps-muted);
    text-decoration: none;
}
.ps-loc-breadcrumbs a:hover { color: var(--ps-green); }
.ps-loc-h1 {
    font-family: var(--ps-font-heading);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--ps-text);
    margin: 0 0 6px;
    line-height: 1.25;
}
.ps-loc-year {
    color: var(--ps-muted);
    font-weight: 500;
}
.ps-loc-tagline {
    font-size: .9rem;
    color: var(--ps-muted);
    margin: 0;
}

/* ══════════════════════════════════════════════════════════════════════
   SPLITVIEW – bounded height (Hubert v10)
   Desktop: list + mapa = ~calc(100vh - 120px), pełna stopka pod spodem
   Mobile:  jeden column - lista pełna szerokość, mapa pod nią, footer pod
   ══════════════════════════════════════════════════════════════════════ */

/* Desktop: splitview ograniczona do wysokości viewport minus nagłówek.
   UWAGA: zostawiamy parent flex layout (50vw list + flex:auto map) i parent
   height na #search_map = calc(100vh - 82px). Tylko clamp height splitview.
   Footer pod spodem dzięki get_footer() w template (nie empty). */
/* Hubert v13: strona scrolluje naturalnie (bez wewnętrznego scrolla listy),
   mapa STICKY – zostaje w widoku gdy przewijasz oferty. Spójne na wszystkich
   typach (oferty-pracy, miasta, branża, województwo, typ umowy). */
.ps-loc-splitmap.with-map,
.ps-splitmap-page.with-map,
.ps-cat-splitmap.with-map {
    height: auto !important;
    min-height: 500px;
    margin-bottom: 0;
    overflow: visible !important;
    position: relative;
    align-items: flex-start; /* żeby sticky mapy działało w flex */
}

/* Lista po lewej – rośnie z treścią, scroll całej strony */
.ps-loc-splitmap .full-page-content-container,
.ps-splitmap-page .full-page-content-container,
.ps-cat-splitmap .full-page-content-container {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
}

/* Mapa po prawej – sticky, trzyma się w widoku */
.ps-loc-splitmap .full-page-map-container,
.ps-splitmap-page .full-page-map-container,
.ps-cat-splitmap .full-page-map-container {
    position: sticky !important;
    top: 82px !important;
    height: calc(100vh - 82px) !important;
    align-self: flex-start !important;
}
.ps-loc-splitmap .full-page-map-container #search_map,
.ps-splitmap-page .full-page-map-container #search_map,
.ps-cat-splitmap .full-page-map-container #search_map {
    height: calc(100vh - 82px) !important;
}

/* ── SEO content + Nearby – BELOW splitview, pełna szerokość ─────────── */
.ps-loc-below-splitview {
    padding: 40px 0;
    background: var(--ps-bg, #f8fafc);
}
.ps-loc-below-splitview .container {
    max-width: 1200px;
}
.ps-loc-below-splitview .ps-loc-about,
.ps-loc-below-splitview .ps-loc-categories,
.ps-loc-below-splitview .ps-loc-faq,
.ps-loc-below-splitview .ps-loc-nearby {
    background: #fff;
    border: 1px solid var(--ps-border);
    border-radius: 12px;
    padding: 28px 32px;
    margin-bottom: 24px;
}
.ps-loc-below-splitview h2 {
    font-family: var(--ps-font-heading);
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: var(--ps-text);
    margin: 0 0 18px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--ps-green);
    display: inline-block;
}
.ps-loc-below-splitview .ps-loc-about p {
    font-size: .95rem;
    color: #475569;
    line-height: 1.7;
}
.ps-loc-below-splitview .ps-loc-cat-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.ps-loc-below-splitview .ps-loc-faq-item {
    border-bottom: 1px solid var(--ps-border);
    padding: 12px 0;
}
.ps-loc-below-splitview .ps-loc-faq-item:last-child { border-bottom: none; }

/* Tablet: 2 kolumny dla kategorii w SEO-below */
@media (max-width: 991px) {
    .ps-loc-below-splitview .ps-loc-cat-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ── MOBILE: splitview rozjeżdża się na 1 kolumnę ─────────────────── */
@media (max-width: 768px) {
    .ps-loc-splitmap.with-map,
    .ps-splitmap-page.with-map,
    .ps-cat-splitmap.with-map {
        height: auto !important;
        min-height: 0 !important;
        flex-direction: column;
        /* Hubert 08.08.2026, mobile, punkt 3: pusta, "rozciągnięta" przestrzeń
           między belką a wyszukiwarką. Przyczyna: motyw rodzic w SWOJEJ
           media query (max-width:1099px) dodaje padding-top:400px, żeby
           zrobić miejsce pod mapę, którą przy tamtym układzie ustawia
           position:absolute; top:0 nad treścią. Nasz układ (wyżej, ten sam
           breakpoint) przenosi mapę normalnym flow pod listę (order:2) –
           ale nigdy nie kasowaliśmy tamtego paddingu, więc zostawał jako
           pusta dziura na górze, mimo że mapa dawno nie jest już position:absolute. */
        padding-top: 0 !important;
    }
    /* Mapa – pod listą, ograniczona wysokość 320px */
    .ps-loc-splitmap .full-page-map-container,
    .ps-splitmap-page .full-page-map-container,
    .ps-cat-splitmap .full-page-map-container {
        order: 2;
        width: 100% !important;
        flex: 0 0 320px !important;
        height: 320px !important;
        max-height: 320px !important;
    }
    .ps-loc-splitmap .full-page-map-container #search_map,
    .ps-splitmap-page .full-page-map-container #search_map,
    .ps-cat-splitmap .full-page-map-container #search_map {
        height: 320px !important;
        min-height: 320px !important;
        max-height: 320px !important;
    }
    /* Lista – pełna szerokość, scroll całej strony */
    .ps-loc-splitmap .full-page-content-container,
    .ps-splitmap-page .full-page-content-container,
    .ps-cat-splitmap .full-page-content-container {
        order: 1;
        flex: 1 1 100% !important;
        width: 100% !important;
        height: auto !important;
    }
    .ps-loc-below-splitview {
        padding: 24px 0;
    }
    .ps-loc-below-splitview .ps-loc-about,
    .ps-loc-below-splitview .ps-loc-categories,
    .ps-loc-below-splitview .ps-loc-faq,
    .ps-loc-below-splitview .ps-loc-nearby {
        padding: 20px 18px;
        border-radius: 8px;
    }
    .ps-loc-below-splitview .ps-loc-cat-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .ps-loc-below-splitview h2 {
        font-size: 1.15rem !important;
    }
}

/* ── Stara reguła – sekcje wewnątrz splitview (legacy fallback) ──── */
.ps-loc-splitmap .ps-loc-about,
.ps-loc-splitmap .ps-loc-categories,
.ps-loc-splitmap .ps-loc-faq,
.ps-loc-splitmap .ps-loc-nearby {
    padding: 24px 20px;
    border-top: 1px solid var(--ps-border);
    background: var(--ps-white);
}

.ps-loc-about h2,
.ps-loc-categories h2,
.ps-loc-faq h2,
.ps-loc-nearby h2 {
    font-family: var(--ps-font-heading);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ps-text);
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--ps-green);
    display: inline-block;
}

.ps-loc-about p { font-size: .875rem; color: var(--ps-muted); line-height: 1.65; }
.ps-loc-about h3 {
    font-family: var(--ps-font-heading);
    font-size: .98rem;
    font-weight: 700;
    color: var(--ps-text);
    margin: 18px 0 6px;
}
.ps-loc-about h3:first-child { margin-top: 0; }

/* Rozwijanie opisu miasta – "Czytaj więcej" ─────────────────────── */
.ps-loc-about-content {
    overflow: hidden;
    transition: max-height .4s ease;
}
.ps-loc-about-content.is-collapsed {
    position: relative;
}
.ps-loc-about-content.is-collapsed::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 48px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), var(--ps-white));
    pointer-events: none;
}
.ps-loc-about-toggle {
    display: flex !important;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding: 8px 16px !important;
    background: var(--ps-white) !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius, 8px);
    color: var(--ps-green) !important;
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease;
}
.ps-loc-about-toggle:hover {
    background: #f0fdf4 !important;
    border-color: var(--ps-green) !important;
}
.ps-loc-about-toggle-icon {
    transition: transform .3s ease;
}
.ps-loc-about-toggle[aria-expanded="true"] .ps-loc-about-toggle-icon {
    transform: rotate(180deg);
}

/* Kategorie – siatka linków z ikonami ───────────────────────────── */
.ps-loc-cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
}
.ps-loc-cat-link {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 7px !important;
    padding: 7px 10px !important;
    background: var(--ps-white) !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    font-size: .78rem !important;
    font-weight: 500 !important;
    color: var(--ps-text) !important;
    text-decoration: none !important;
    transition: border-color .2s, background .2s;
    line-height: 1.3 !important;
}
.ps-loc-cat-link:hover {
    border-color: var(--ps-green) !important;
    background: #f0f9f1 !important;
    color: var(--ps-green) !important;
}

/* Kwadratowa ramka ikony – wymuszone rozmiary przeciw img{width:100%} */
.ps-loc-cat-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    border-radius: 6px !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
}

/* Obraz ikony – wymuszone wymiary (theme ma img{width:100%}) */
.ps-loc-cat-icon img {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    min-width: unset !important;
    object-fit: contain !important;
    display: block !important;
    flex-shrink: 0 !important;
}
.ps-loc-cat-emoji {
    font-size: 16px !important;
    line-height: 1 !important;
}


/* FAQ */
.ps-loc-faq-item {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ps-border);
}
.ps-loc-faq-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ps-loc-faq-item h3 {
    font-family: var(--ps-font-heading);
    font-size: .9rem;
    font-weight: 600;
    color: var(--ps-text);
    margin: 0 0 6px;
}
.ps-loc-faq-item p {
    font-size: .825rem;
    color: var(--ps-muted);
    margin: 0;
    line-height: 1.55;
}

/* Okoliczne lokalizacje */
.ps-loc-nearby-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.ps-loc-nearby-link {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    font-size: .8rem;
    font-weight: 500;
    color: var(--ps-muted);
    text-decoration: none;
    transition: border-color .2s, color .2s;
}
.ps-loc-nearby-link svg { color: var(--ps-green); flex-shrink: 0; }
.ps-loc-nearby-link:hover { border-color: var(--ps-green); color: var(--ps-green); }

/* Herb w sekcji "okoliczne miejscowości" na stronie lokalizacyjnej
   !important wymagane – WorkScout CSS ma img { width:100% } */
.ps-nearby-herb,
.ps-loc-nearby-link img.ps-nearby-herb,
.ps-loc-nearby-link img {
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: auto !important;
    max-height: 20px !important;
    object-fit: contain !important;
    flex-shrink: 0 !important;
    display: block !important;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,.18));
}


/* ── Ikony kategorii – wyrównaj emoji do wyglądu PNG ────────────────
   Gdy brak pliku PNG, emoji fallback ma kolorowe tło.
   Nadpisujemy: neutralne tło + emoji wewnątrz wyśrodkowane tak samo. */
.ps-cat-emoji {
    font-size: 30px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    filter: grayscale(15%);   /* subtelne wyciszenie barwnych emoji */
}

/* =========================================================
   BLOG – ARCHIWUM (archive.php) I POJEDYNCZE WPISY (single.php)
   WorkScout renderuje .container + .eleven.columns + get_sidebar()
   ========================================================= */

/* ── Fix: WorkScout parent ma text-transform:capitalize na #titlebar h1/h2 ──
   Powoduje to nieprawidłowe wielkie litery ("Moje Konto" zamiast "Moje konto").
   Nadpisujemy wartość dla wszystkich wariantów tytułów titlebar. */
#titlebar h1,
#titlebar h2,
#titlebar .page-title {
    text-transform: none !important;
}

/* Tytuł "titlebar" nad blogiem */
#titlebar.single {
    background: var(--ps-white) !important;
    border-bottom: 1px solid var(--ps-border) !important;
    padding: 20px 0 !important;
}
#titlebar.single h2.page-title,
#titlebar.single h2 {
    font-family: var(--ps-font-heading) !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    margin: 0 0 4px !important;
}
#titlebar.single span {
    font-size: .85rem !important;
    color: var(--ps-muted) !important;
}

/* Kontener treści + sidebara – wyrównaj top */
.container.right-sidebar,
.container.left-sidebar {
    padding-top: 32px !important;
    padding-bottom: 40px !important;
}

/* ── Karty wpisów na archiwum bloga ─────────────────────────────────
   WorkScout renderuje template-parts/content.php – zazwyczaj artykuł
   w klasie .blog-post lub .post.                                      */
.blog-post,
article.post {
    background: var(--ps-white);
    border: 1px solid var(--ps-border);
    border-radius: var(--ps-radius);
    overflow: hidden;
    margin-bottom: 24px !important;
    transition: box-shadow .2s;
}
.blog-post:hover,
article.post:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }

/* Miniaturka */
.blog-post .post-thumbnail img,
article.post .post-thumbnail img,
.blog-post .wp-post-image,
article.post .wp-post-image {
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    display: block !important;
}

/* Nagłówek wpisu */
.blog-post h2, .blog-post h3,
article.post h2, article.post h3 {
    font-family: var(--ps-font-heading) !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    line-height: 1.35 !important;
    margin: 16px 16px 8px !important;
}
.blog-post h2 a, .blog-post h3 a,
article.post h2 a, article.post h3 a {
    color: inherit !important;
    text-decoration: none !important;
}
.blog-post h2 a:hover, .blog-post h3 a:hover,
article.post h2 a:hover, article.post h3 a:hover {
    color: var(--ps-green) !important;
}

/* Meta (data, autor, kategoria) */
.blog-post .post-meta, .blog-post ul.meta,
article.post .post-meta, article.post ul.meta {
    padding: 0 16px !important;
    font-size: .78rem !important;
    color: var(--ps-muted) !important;
    list-style: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 0 0 8px !important;
}
.blog-post .post-meta a, .blog-post ul.meta a,
article.post .post-meta a, article.post ul.meta a {
    color: var(--ps-muted) !important;
    text-decoration: none !important;
}
.blog-post .post-meta a:hover, article.post .post-meta a:hover {
    color: var(--ps-green) !important;
}

/* Excerpt */
.blog-post p, article.post > p,
.blog-post .entry-content p {
    font-size: .9rem !important;
    color: var(--ps-muted) !important;
    line-height: 1.65 !important;
    padding: 0 16px !important;
    margin: 0 0 12px !important;
}

/* Przycisk "Czytaj więcej" */
.blog-post .more-btn, .blog-post a.more-btn,
.blog-post a[class*="button"],
article.post .more-btn, article.post a.more-btn {
    display: inline-block !important;
    margin: 0 16px 16px !important;
    padding: 8px 18px !important;
    background: var(--ps-green) !important;
    color: var(--ps-white) !important;
    border-radius: var(--ps-radius) !important;
    font-size: .85rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border: none !important;
    transition: background .15s !important;
}
.blog-post .more-btn:hover, article.post .more-btn:hover { background: var(--ps-green-dark) !important; }

/* ── Pojedynczy wpis (single.php) ─────────────────────────────────── */
.single article.post,
.single .post {
    background: var(--ps-white) !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    padding: 28px !important;
    margin-bottom: 24px !important;
}

/* Treść wpisu */
.single .entry-content,
.single .post-content {
    font-size: 1rem !important;
    line-height: 1.75 !important;
    color: var(--ps-text) !important;
}
.single .entry-content h2,
.single .post-content h2 {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    margin: 28px 0 12px !important;
    padding-bottom: 6px !important;
    border-bottom: 2px solid var(--ps-bg) !important;
}
.single .entry-content h3,
.single .post-content h3 {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    margin: 20px 0 8px !important;
}
.single .entry-content ul,
.single .post-content ul {
    padding-left: 20px !important;
    margin-bottom: 16px !important;
}
.single .entry-content ul li,
.single .post-content ul li {
    margin-bottom: 6px !important;
    line-height: 1.6 !important;
}
.single .entry-content strong,
.single .post-content strong { color: var(--ps-text) !important; }

/* Nawigacja między wpisami */
.post-navigation {
    background: var(--ps-bg) !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    padding: 16px 20px !important;
    display: flex !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 24px !important;
}
.post-navigation a {
    font-size: .85rem !important;
    color: var(--ps-green) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    flex: 1 !important;
}
.post-navigation .nav-next { text-align: right !important; }

/* ── Sidebar bloga ─────────────────────────────────────────────────── */
.sidebar .widget {
    background: var(--ps-white) !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
}
.sidebar .widget-title,
.sidebar h4.widget-title,
.sidebar h3.widget-title {
    font-family: var(--ps-font-heading) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    margin: 0 0 14px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid var(--ps-bg) !important;
}

/* Search widget w sidebarze */
.sidebar .widget_search .search-form {
    display: flex !important;
    gap: 6px !important;
}
.sidebar .widget_search input[type="search"],
.sidebar .widget_search input[type="text"] {
    flex: 1 !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    padding: 8px 12px !important;
    font-size: .9rem !important;
    font-family: var(--ps-font) !important;
    outline: none !important;
}
.sidebar .widget_search input[type="submit"],
.sidebar .widget_search button {
    background: var(--ps-green) !important;
    color: var(--ps-white) !important;
    border: none !important;
    border-radius: var(--ps-radius) !important;
    padding: 8px 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
}

/* Recent Posts w sidebarze */
.sidebar .widget_recent_entries ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.sidebar .widget_recent_entries ul li {
    border-bottom: 1px solid var(--ps-bg) !important;
    padding: 8px 0 !important;
}
.sidebar .widget_recent_entries ul li:last-child { border-bottom: none !important; }
.sidebar .widget_recent_entries ul li a {
    font-size: .88rem !important;
    color: var(--ps-text) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    display: block !important;
}
.sidebar .widget_recent_entries ul li a:hover { color: var(--ps-green) !important; }
.sidebar .widget_recent_entries ul li .post-date {
    font-size: .75rem !important;
    color: var(--ps-muted) !important;
    display: block !important;
    margin-top: 2px !important;
}

/* Blog – mobile: sidebar poniżej treści */
@media (max-width: 768px) {
    .container.right-sidebar .eleven { width: 100% !important; }
    .container.right-sidebar .sidebar { width: 100% !important; padding: 0 !important; }
    .sidebar .widget { margin-bottom: 12px; }
    .single article.post { padding: 16px !important; }
    .single .entry-content h2 { font-size: 1.15rem !important; }
    #titlebar.single h2 { font-size: 1.15rem !important; }
}

/* ── FA6 Free Solid – failsafe @font-face z absolutną ścieżką ──────────
   Deklaracja w child theme style.css jest ładowana PO font-awesome.min.css
   i używa ścieżki absolutnej (/wp-content/...) która NIE jest zmieniana
   przez LiteSpeed łączenie ani minifikację CSS.
   Chroni nas jeśli LiteSpeed psuje względne ścieżki w font-awesome.min.css.
   ──────────────────────────────────────────────────────────────────────── */
@font-face {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-style: normal;
    font-display: block;
    src: url("/wp-content/themes/workscout/fonts/fa-solid-900.woff2") format("woff2"),
         url("/wp-content/themes/workscout/fonts/fa-solid-900.ttf") format("truetype");
}

/* =========================================================
   STOPKA NIESTANDARDOWA – footer.php child theme
   ========================================================= */

/* Ukryj WorkScout margin-top-45 div który poprzedza WorkScout footer,
   a który jest renderowany przez parent footer.php. Nasz child footer.php
   całkowicie zastępuje parent, więc ten blok nigdy nie powstaje –
   ale zostawiamy selector defensywnie. */
.margin-top-45 { display: none !important; }

/* Główny kontener stopki */
.ps-footer {
    font-family: var(--ps-font);
    background: var(--ps-white);
    border-top: 1px solid var(--ps-border);
    margin-top: 0;
}
/* Reset kolorów dziedziczonych z WorkScout – zapobiega niebieskim/podkreślonym tekstom */
.ps-footer,
.ps-footer p,
.ps-footer span,
.ps-footer li,
.ps-footer h4 {
    color: var(--ps-text) !important;
    text-decoration: none !important;
}

/* ── Sekcja brand (Hubert v10: osobny pas pod nawigacją linków) ── */
.ps-footer-brand-section {
    padding: 36px 0 24px;
    border-bottom: 1px solid var(--ps-border);
}
.ps-footer-brand-inner {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* WAŻNE: parent .container ma width:1200px ale na splitview pages (oferty-pracy,
   praca-X) body ma class .fullwidth która resetuje .container do auto.
   Wymuszamy nasze własne centrowanie containerów w footer. */
.ps-footer .container,
.ps-footer-brand-section .container,
.ps-footer-main .container,
.ps-footer-newsletter-section .container,
.ps-footer-bottom .container {
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
}

/* Główna siatka linków: 4 kolumny (Hubert v10 final – brand + 3 linki w jednym rzędzie)
   WAŻNE: używamy !important + max-specificity selectora żeby pokonać każdy
   inny CSS który mógłby próbować nadpisać (parent theme, stary child CSS itd.) */
.ps-footer-main {
    padding: 48px 0 32px;
}
.ps-footer .ps-footer-grid,
.ps-footer-grid {
    display: grid !important;
    grid-template-columns: 2fr 1fr 1fr 1fr !important; /* brand szerszy, linki równe */
    gap: 40px !important;
    align-items: start !important;
}
.ps-footer .ps-footer-grid--4col,
.ps-footer-grid--4col {
    grid-template-columns: 2fr 1fr 1fr 1fr !important;
}
.ps-footer .ps-footer-grid--3col,
.ps-footer-grid--3col {
    grid-template-columns: 1fr 1fr 1fr !important;
}

/* Brand column – logo/opis/social ułożone pionowo */
.ps-footer-col--brand {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-right: 20px;
}
.ps-footer-col--brand .ps-footer-logo-link {
    text-decoration: none !important;
}
.ps-footer-col--brand .ps-footer-desc {
    margin: 0 !important;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--ps-muted) !important;
}
.ps-footer-col--brand .ps-footer-social {
    margin-top: 4px;
    display: flex;
    gap: 8px;
}

/* Pojedyncza kolumna linków */
.ps-footer-col {}

/* ── RESPONSIVE: 4 kolumny → 2 kolumny → 1 kolumna ────────────────── */
/* Tablet: brand pełna szerokość na górze, linki 3 kolumny pod */
@media (max-width: 991px) {
    .ps-footer .ps-footer-grid,
    .ps-footer .ps-footer-grid--4col,
    .ps-footer-grid--4col {
        grid-template-columns: 1fr 1fr 1fr !important;
    }
    .ps-footer-col--brand {
        grid-column: 1 / -1 !important;
        padding-right: 0;
        margin-bottom: 8px;
        padding-bottom: 16px;
        border-bottom: 1px solid var(--ps-border);
    }
}

/* Smartphone: 2 kolumny linków */
@media (max-width: 640px) {
    .ps-footer .ps-footer-grid,
    .ps-footer .ps-footer-grid--4col,
    .ps-footer-grid--4col {
        grid-template-columns: 1fr 1fr !important;
        gap: 28px !important;
    }
    .ps-footer-col--brand {
        grid-column: 1 / -1 !important;
    }
}

/* Sekcja newsletter – pełna szerokość pod kolumnami */
.ps-footer-newsletter-section {
    padding: 24px 0 32px;
    border-top: 1px solid var(--ps-border);
    background: var(--ps-bg);
}
.ps-footer-newsletter-wrap {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    justify-content: space-between;
}
.ps-footer-newsletter-text {
    flex: 0 1 380px;
}
.ps-footer-newsletter-title {
    font-family: var(--ps-font-heading) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 0 6px !important;
    color: var(--ps-text) !important;
}
.ps-footer-newsletter-wrap .ps-newsletter-form,
.ps-footer-newsletter-wrap .ps-mailpoet-newsletter {
    display: flex;
    gap: 8px;
    flex: 1 1 380px;
    min-width: 280px;
    max-width: 520px;
}
.ps-footer-newsletter-wrap .ps-footer-email-input {
    flex: 1;
}

/* MailPoet shortcode (form ID 1) - dopasowanie do stylu strony.
   MailPoet renderuje własny nagłówek/opis/notkę RODO w pierwszej kolumnie
   (duplikat .ps-footer-newsletter-text i notki pod formularzem) - ukryte.
   Zostaje tylko druga kolumna (pole e-mail + przycisk), rozciągnięta na 100%. */
.ps-mailpoet-newsletter {
    width: 100%;
}
.ps-mailpoet-newsletter .mailpoet_form_popup_overlay {
    display: none !important;
}
.ps-mailpoet-newsletter .mailpoet_form_columns_container,
.ps-mailpoet-newsletter .mailpoet_form_columns,
.ps-mailpoet-newsletter .mailpoet_form_column:last-child {
    width: 100% !important;
}
.ps-mailpoet-newsletter .mailpoet_form_column:first-child {
    display: none !important;
}
.ps-mailpoet-newsletter .mailpoet_form_column:last-child {
    flex-basis: 100% !important;
    margin-left: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
}
.ps-mailpoet-newsletter form.mailpoet_form {
    padding: 0 !important;
}
/* Dwa osobne div.mailpoet_paragraph (jeden na pole, jeden na przycisk) -
   flex trzeba dać na RODZICU (.mailpoet_form_column, wyżej), nie na nich
   samych (każdy ma tylko jedno dziecko, flex na nich nie robi nic dla
   ustawienia obok siebie - stąd przyklejony przycisk pod polem). */
.ps-mailpoet-newsletter .mailpoet_form_column:last-child > .mailpoet_paragraph {
    margin: 0 !important;
}
.ps-mailpoet-newsletter .mailpoet_form_column:last-child > .mailpoet_paragraph:first-child {
    flex: 1 !important;
    min-width: 0 !important;
}
.ps-mailpoet-newsletter input.mailpoet_text {
    width: 100% !important;
    box-sizing: border-box !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    background: var(--ps-white) !important;
    padding: 8px 12px !important;
    font-size: .85rem !important;
    font-family: var(--ps-font) !important;
    color: var(--ps-text) !important;
    margin: 0 !important;
}
.ps-mailpoet-newsletter input.mailpoet_submit {
    width: auto !important;
    white-space: nowrap;
    background: var(--ps-green) !important;
    border: none !important;
    border-radius: var(--ps-radius) !important;
    padding: 8px 14px !important;
    font-size: .85rem !important;
    font-family: var(--ps-font) !important;
    font-weight: 700 !important;
    color: var(--ps-white) !important;
    margin: 0 !important;
}
.ps-mailpoet-newsletter .mailpoet_message {
    margin-top: 8px !important;
    padding: 0 !important;
    font-size: .8rem !important;
}

/* Logo */
.ps-footer-logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
    font-family: var(--ps-font-heading) !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    line-height: 1;
    margin-bottom: 14px;
}
.ps-footer-logo-praca {
    color: var(--ps-text) !important;
}
.ps-footer-logo-city {
    color: var(--ps-green) !important;
}

/* Opis pod logiem */
.ps-footer-desc {
    font-size: .875rem !important;
    color: #475569 !important;
    line-height: 1.65 !important;
    margin: 0 0 18px !important;
    max-width: 280px;
    text-decoration: none !important;
}

/* Ikony social media */
.ps-footer-social {
    display: flex;
    gap: 10px;
}
.ps-footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--ps-bg);
    color: var(--ps-muted) !important;
    text-decoration: none !important;
    font-size: .9rem;
    transition: background .15s, color .15s;
}
.ps-footer-social-link:hover {
    background: var(--ps-green);
    color: var(--ps-white) !important;
}

/* Nagłówki kolumn */
.ps-footer-heading {
    font-family: var(--ps-font-heading) !important;
    font-size: .8rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: none !important;
}
.ps-footer-heading--newsletter {
    margin-top: 24px !important;
}

/* Lista linków */
.ps-footer-links {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.ps-footer-links li {
    margin-bottom: 8px !important;
}
.ps-footer-links a {
    font-size: .875rem !important;
    color: var(--ps-muted) !important;
    text-decoration: none !important;
    line-height: 1.5;
    transition: color .15s;
}
.ps-footer-links a:hover {
    color: var(--ps-green) !important;
}

/* Newsletter */
.ps-footer-newsletter-desc {
    font-size: .8rem !important;
    color: var(--ps-muted) !important;
    margin: 0 0 10px !important;
}
.ps-footer-newsletter-form {}
.ps-newsletter-form {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.ps-footer-email-input {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--ps-border) !important;
    border-radius: var(--ps-radius) !important;
    padding: 8px 12px !important;
    font-size: .85rem !important;
    font-family: var(--ps-font) !important;
    color: var(--ps-text) !important;
    outline: none !important;
    background: var(--ps-white) !important;
}
.ps-footer-email-input:focus {
    border-color: var(--ps-green) !important;
}
.ps-footer-newsletter-btn {
    background: var(--ps-green) !important;
    color: var(--ps-white) !important;
    border: none !important;
    border-radius: var(--ps-radius) !important;
    padding: 8px 14px !important;
    font-size: .85rem !important;
    font-weight: 600 !important;
    font-family: var(--ps-font) !important;
    cursor: pointer !important;
    white-space: nowrap;
    transition: background .15s !important;
}
.ps-footer-newsletter-btn:hover {
    background: var(--ps-green-dark) !important;
}
.ps-footer-newsletter-note {
    font-size: .75rem !important;
    color: var(--ps-muted) !important;
    margin: 8px 0 0 !important;
    line-height: 1.4;
}
.ps-footer-newsletter-note a {
    color: var(--ps-muted) !important;
    text-decoration: underline;
}

/* Pasek dolny */
.ps-footer-bottom {
    background: var(--ps-bg);
    border-top: 1px solid var(--ps-border);
    padding: 14px 0;
}
/* WAŻNE: WorkScout .container ma width:1200px; padding:0; – treść lepi się do
   krawędzi. Wymuszamy boczny padding na inner-wrapperach naszej stopki. */
.ps-footer .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
}
.ps-footer-bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    box-sizing: border-box;
}
.ps-footer-copy {
    font-size: .8rem !important;
    color: var(--ps-muted) !important;
    margin: 0 !important;
}
.ps-footer-bottom-nav {
    display: flex;
    gap: 16px;
}
.ps-footer-bottom-nav a {
    font-size: .8rem !important;
    color: var(--ps-muted) !important;
    text-decoration: none !important;
}
.ps-footer-bottom-nav a:hover { color: var(--ps-green) !important; }

/* Responsive footer – USUNIĘTE stare reguły dla --3col layoutu (Hubert v10).
   Nowe media queries są przy definicji ps-footer-grid--4col (linia ~2240).
   Dodatkowy mobile cleanup poniżej. */
@media (max-width: 640px) {
    .ps-footer-newsletter-wrap { flex-direction: column; align-items: stretch; }
    /* Hubert 08.08.2026, mobile, punkt 2: pole newslettera "rozciągnięte".
       Przyczyna: ".ps-footer-newsletter-wrap .ps-newsletter-form" ma na
       desktopie "flex: 1 1 380px" – przy poziomym układzie 380px to baza
       SZEROKOŚCI. Ta reguła (linia ~2693) nie jest tu nadpisywana, więc
       kiedy wrap zmienia się w kolumnę (flex-direction:column, wyżej),
       oś główna staje się PIONOWA i te same 380px stają się bazą WYSOKOŚCI –
       pole (i przez align-items:stretch całe pole+przycisk) robi się
       380px wysokie zamiast normalnej wysokości pola tekstowego. */
    .ps-footer-newsletter-wrap .ps-newsletter-form,
    .ps-footer-newsletter-wrap .ps-mailpoet-newsletter { max-width: 100%; flex: 0 0 auto; width: 100%; }
    /* Ten sam bug jak wyżej, tylko na drugim dziecku: .ps-footer-newsletter-text
       ma na desktopie "flex: 0 1 380px" (baza SZEROKOŚCI). W kolumnie te same
       380px stają się bazą WYSOKOŚCI - stąd 380px pustego bloku tekstowego
       między "Newsletter"/opisem a polem (Hubert 12.08.2026, wraca po
       poprzedniej łatce bo ta objęła tylko .ps-newsletter-form, nie -text). */
    .ps-footer-newsletter-wrap .ps-footer-newsletter-text { flex: 0 0 auto; width: 100%; }
    .ps-footer-main { padding: 32px 0 28px; }
    .ps-footer-bottom-inner { flex-direction: column; align-items: flex-start; gap: 8px; }
    .ps-footer-desc { max-width: 100%; }
}

/* =========================================================
   #TITLEBAR – ukryj na standardowych stronach WP (badziewie)
   =========================================================
   WorkScout renderuje #titlebar (pasek z breadcrumbem/tytułem strony)
   na standardowych stronach WordPress (body.page). Na stronach
   single job listing (body.single-job_listing) titlebar jest
   POTRZEBNY – zawiera tytuł ogłoszenia nad firmą. Na homepage
   (body.home, body.front-page) titlebar nie pojawia się.

   Selektory wykluczają job listing, blog i archive żeby nie
   przypadkowo ukryć czegoś ważnego tam gdzie titlebar jest używany.
   ========================================================= */
body.page #titlebar {
    display: none !important;
}

/* ── dodaj-ogloszenie / panel-pracodawcy: pokaż formularz logowania gdy JS opóźniony ──
   WorkScout ukrywa tab-content display:none i odkrywa przez JS.
   LiteSpeed "Opóźnij JS" może blokować tab-switch przy pierwszym kliknięciu.
   CSS fallback: #tab1 (login) widoczny domyślnie — JS może nadpisać jeśli załadowany. */
.sign-in-form .tabs-container #tab1 {
    display: block !important;
}
/* Gdy JS zadziała i przełączy na #tab2 (register) — cofnij wymuszenie */
.sign-in-form .tabs-container #tab1.ui-tabs-hide,
.sign-in-form .tabs-container #tab1[style*="display: none"],
.sign-in-form .tabs-container #tab1[style*="display:none"] {
    display: none !important;
}

/* =========================================================
   STRONA OGŁOSZENIA – nowe elementy
   ========================================================= */

/* ── Przycisk "Zadzwoń" ─────────────────────────────────── */
.ps-btn-call {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: #16a34a;
    color: #fff !important;
    border: none;
    border-radius: 6px;
    padding: 10px 18px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none !important;
    margin-bottom: 8px;
    transition: background .2s;
}
.ps-btn-call:hover { background: #15803d; }
.ps-btn-call i     { font-size: 14px; }

/* ── Wrapper przycisków aplikacji ───────────────────────── */
.ps-apply-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 10px;
}

/* ── Zakładki modal aplikacji ───────────────────────────── */
.ps-apply-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 16px;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 4px;
}
.ps-tab-btn {
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -6px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color .15s, border-color .15s;
}
.ps-tab-btn.active,
.ps-tab-btn:hover {
    color: #1e3a5f;
    border-bottom-color: #1e3a5f;
}

/* ── Formularz szybkiej wiadomości ──────────────────────── */
.ps-apply-intro {
    font-size: 13px;
    color: #64748b;
    margin-bottom: 14px;
}
.ps-apply-form .ps-field {
    margin-bottom: 12px;
}
.ps-apply-form label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 4px;
}
.ps-apply-form label .req { color: #dc2626; }
.ps-apply-form input[type="text"],
.ps-apply-form input[type="tel"],
.ps-apply-form textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    transition: border-color .15s;
    box-sizing: border-box;
}
.ps-apply-form input:focus,
.ps-apply-form textarea:focus {
    border-color: #1e3a5f;
    outline: none;
}
.ps-apply-form textarea { resize: vertical; min-height: 90px; }
.ps-submit-msg {
    width: 100%;
    justify-content: center;
    gap: 6px;
    margin-top: 4px;
}
/* Komunikat po wysłaniu */
.ps-apply-result {
    margin-top: 10px;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
}
.ps-apply-ok  { background: #dcfce7; color: #166534; }
.ps-apply-err { background: #fee2e2; color: #991b1b; }

/* ══════════════════════════════════════════════════════════
   MODAL APLIKACJI – vanilla (niezależnie od Magnific Popup)
   ══════════════════════════════════════════════════════════
   Powód: WorkScout custom.min.js inicjalizuje magnificPopup na
   .popup-with-zoom-anim ale czasem nie działa (race condition,
   JS error wcześniej). Robimy własny mechanizm na vanilla JS.
   Klasa .mfp-hide dalej w HTML jako default-hidden; po kliknięciu
   JS dodaje .ps-apply-open i usuwa .mfp-hide. */

.ps-apply-modal.mfp-hide {
    display: none !important;
}

/* Backdrop (overlay) – ciemny półprzezroczysty fullscreen */
.ps-apply-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .65);
    z-index: 99998;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
}
.ps-apply-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
}

/* Modal pozycjonowany na środku ekranu */
.ps-apply-modal.ps-apply-open {
    display: block !important;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 92%;
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
    z-index: 99999;
    padding: 24px;
    box-sizing: border-box;
    animation: psApplyZoomIn .25s ease;
}

@keyframes psApplyZoomIn {
    from { opacity: 0; transform: translate(-50%, -50%) scale(.9); }
    to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Przycisk zamykający (X) w prawym górnym rogu */
.ps-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: none;
    border: none;
    width: 36px;
    height: 36px;
    font-size: 28px;
    line-height: 1;
    color: #64748b;
    cursor: pointer;
    border-radius: 6px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, color .15s;
}
.ps-modal-close:hover {
    background: #f1f5f9;
    color: #0f172a;
}

/* Blokada scroll na body gdy modal otwarty */
body.ps-modal-open {
    overflow: hidden;
}

/* Headline modala – większe odstępy żeby X nie nachodził */
.ps-apply-modal .small-dialog-headline {
    padding-right: 40px;
    margin-bottom: 16px;
}
.ps-apply-modal .small-dialog-headline h2 {
    font-size: 18px;
    margin: 0;
    line-height: 1.4;
}

/* Responsive: na małych ekranach modal full-screen */
@media (max-width: 640px) {
    .ps-apply-modal.ps-apply-open {
        width: 100% !important;
        height: 100% !important;
        max-height: 100vh !important;
        max-width: 100% !important;
        border-radius: 0 !important;
        padding: 16px !important;
    }
}

/* ── Tytuł stanowiska w nagłówku (nad firmą) ────────────── */
.ps-job-title-header {
    margin-bottom: 4px !important;
    line-height: 1.3 !important;
}
.ps-job-title-header .job-type,
.ps-job-title-header .new_job {
    vertical-align: middle;
    font-size: 11px !important;
    margin-left: 4px;
}
.ps-job-cats a {
    color: #64748b;
    font-size: 13px;
    text-decoration: none;
}
.ps-job-cats a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════
   FORMULARZ DODAJ-OGŁOSZENIE – design wg mockupu Huberta
   ══════════════════════════════════════════════════════════
   - Sekcje z nagłówkami (JS injectuje .ps-form-section-header)
   - Czerwona pigułka "Wymagane" / szara "Opcjonalne"
   - Białe karty wokół grup pól, zielony akcent
   - Ukrycie pól stawki godzinowej (mylące przy Salary)
   - Lepsze pola input (większy padding, focus ring) */

/* ── Pigułka WYMAGANE (czerwona, prawy róg labela) ──────────────────── */
.job-manager-form label.ps-required-label::after,
form.submit-job-form label.ps-required-label::after,
.job-manager-form fieldset > label.ps-required-label::after {
    content: 'Wymagane';
    display: inline-block;
    margin-left: 10px;
    padding: 3px 9px;
    background: #dc2626;
    color: #fff !important;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .4px;
    border-radius: 12px;
    text-transform: uppercase;
    vertical-align: middle;
}

/* ── Etykieta OPCJONALNE (szara pigułka, zamienia "(opcjonalnie)") ──── */
.job-manager-form label.ps-optional-label small,
form.submit-job-form label.ps-optional-label small {
    display: inline-block !important;
    margin-left: 10px;
    padding: 3px 9px;
    background: #f1f5f9;
    color: #64748b !important;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .4px;
    border-radius: 12px;
    text-transform: uppercase;
    vertical-align: middle;
}

/* ── Labels base – większe, ciemne ──────────────────────────────────── */
.job-manager-form fieldset > label,
form.submit-job-form fieldset > label {
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #0f172a !important;
    margin-bottom: 6px !important;
    display: block;
}

/* ── Input/textarea/select – większy padding, focus ring zielony ────── */
.job-manager-form input[type="text"],
.job-manager-form input[type="email"],
.job-manager-form input[type="url"],
.job-manager-form input[type="tel"],
.job-manager-form input[type="number"],
.job-manager-form input[type="date"],
.job-manager-form textarea,
.job-manager-form select,
form.submit-job-form input[type="text"],
form.submit-job-form input[type="email"],
form.submit-job-form input[type="url"],
form.submit-job-form textarea,
form.submit-job-form select {
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    transition: border-color .15s, box-shadow .15s;
    width: 100%;
    box-sizing: border-box;
}
.job-manager-form input:focus,
.job-manager-form textarea:focus,
.job-manager-form select:focus,
form.submit-job-form input:focus,
form.submit-job-form textarea:focus,
form.submit-job-form select:focus {
    border-color: #16a34a !important;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .15) !important;
    outline: none !important;
}

/* ── Fieldset – większy odstęp między polami ───────────────────────── */
.job-manager-form fieldset,
form.submit-job-form fieldset {
    margin-bottom: 20px !important;
    padding: 0 !important;
    border: none !important;
}

/* ── Nagłówki sekcji (JS injectuje .ps-form-section-header) ──────── */
.ps-form-section-header {
    margin: 32px 0 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e2e8f0;
}
.ps-form-section-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: #16a34a;
    display: flex;
    align-items: center;
    gap: 10px;
}
.ps-form-section-header .ps-form-section-hint {
    margin: 6px 0 0;
    font-size: 13px;
    color: #64748b;
    font-style: italic;
}
/* Pierwsza sekcja – mniejszy margines górny */
.ps-form-section-header:first-of-type {
    margin-top: 0;
}

/* ── Ukrycie pól stawki godzinowej (wszystkie warianty nazw) ──────── */
fieldset[class*="rate_min"],
fieldset[class*="rate_max"],
fieldset.fieldset-_rate_min,
fieldset.fieldset-_rate_max,
fieldset.fieldset-rate_min,
fieldset.fieldset-rate_max {
    display: none !important;
}

/* ── Helper: stary fallback ──────────────────────────────────────────── */
.submit-job-form .field.required-field > label::after {
    content: ' *';
    color: #dc2626;
    font-weight: 700;
}
/* Zmniejsz odstępy między polami formularza */
.submit-job-form .field {
    margin-bottom: 16px !important;
}
.submit-job-form fieldset {
    margin-bottom: 20px !important;
    padding: 16px !important;
}

/* ── Taksonomia: term-checklist w formularzu ────────────── */
.submit-job-form .checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    list-style: none;
    padding: 0;
    margin: 6px 0 0;
}
.submit-job-form .checkboxes li {
    margin: 0;
}
.submit-job-form .checkboxes label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 400;
    cursor: pointer;
    font-size: 14px;
}


/* =========================================================
   UKRYJ CAŁY BLOK WYBORU ROLI – portal tylko dla pracodawców
   Employer radio jest już checked="checked" w PHP (registration-form.php).
   Całkowite ukrycie eliminuje zbędny zielony button "Pracodawca".
   ========================================================= */
.account-type {
    display: none !important;
}

/* =========================================================
   BOOKMARK BUTTON – ukryj na wypadek gdyby hook był wywołany z innego miejsca
   ========================================================= */
.wp-job-manager-bookmarks-form,
.bookmark-notice,
.job-bookmark-btn {
    display: none !important;
}

/* ══════════════════════════════════════════════════════════════════════
   SINGLE JOB – KOLORYSTYKA SERWISU (Hubert v13 pkt 13)
   WorkScout dziedziczy własny niebiesko-turkusowy akcent. Wymuszamy
   kolory PracaSochaczew: zielony #16a34a + pomarańczowy CTA #f97316.
   ══════════════════════════════════════════════════════════════════════ */

/* Linki w treści ogłoszenia → zielony */
/* Tylko linki w treści opisu → zielone (NIE share-post, NIE przyciski) */
body.single-job_listing .job_description a {
    color: var(--ps-green) !important;
}

/* Ikony w sidebarze "Przegląd oferty" → zielony */
body.single-job_listing .job-overview ul li i,
body.single-job_listing .job-overview ul li svg,
body.single-job_listing .job-overview ul li .la,
body.single-job_listing .job-overview ul li [class^="icon-"],
body.single-job_listing .job-overview ul li [class*=" icon-"] {
    color: var(--ps-green) !important;
}

/* Nagłówki sekcji sidebara + widgetów → ciemny tekst serwisu */
body.single-job_listing .widget h4,
body.single-job_listing .widget h3,
body.single-job_listing #job-details h4 {
    color: var(--ps-text) !important;
}

/* Listy z ptaszkami w opisie → zielone ptaszki (jeśli WorkScout daje inny kolor) */
body.single-job_listing .job_description ul li::marker { color: var(--ps-green); }

/* Przycisk "Aplikuj teraz" → pomarańczowy outline (mockup WALPORT) */
body.single-job_listing .ps-btn-apply,
body.single-job_listing a.apply-dialog-button,
body.single-job_listing .application_button.button {
    background: #fff !important;
    color: var(--ps-orange) !important;
    border: 2px solid var(--ps-orange) !important;
    font-weight: 700 !important;
    transition: background .15s, color .15s !important;
}
body.single-job_listing .ps-btn-apply:hover,
body.single-job_listing a.apply-dialog-button:hover,
body.single-job_listing .application_button.button:hover {
    background: var(--ps-orange) !important;
    color: #fff !important;
}

/* Przycisk "Zadzwoń/SMS" → zielony filled */
body.single-job_listing .ps-btn-call {
    background: var(--ps-green) !important;
    color: #fff !important;
    border: 2px solid var(--ps-green) !important;
}
body.single-job_listing .ps-btn-call:hover {
    background: var(--ps-green-dark, #15803d) !important;
}

/* Generyczne przyciski WorkScout na single job → zielony (zamiast niebieskiego) */
body.single-job_listing .single_job_listing .button:not(.ps-btn-apply):not(.ps-btn-call):not(.application_button),
body.single-job_listing #job-details .button:not(.ps-btn-apply):not(.ps-btn-call) {
    background-color: var(--ps-green) !important;
    border-color: var(--ps-green) !important;
    color: #fff !important;
}
body.single-job_listing .single_job_listing .button:not(.ps-btn-apply):not(.ps-btn-call):not(.application_button):hover,
body.single-job_listing #job-details .button:not(.ps-btn-apply):not(.ps-btn-call):hover {
    background-color: var(--ps-green-dark, #15803d) !important;
    border-color: var(--ps-green-dark, #15803d) !important;
}

/* Wynagrodzenie w sidebarze → zielony akcent */
body.single-job_listing .job-overview .ps-najwazniejsze-salary {
    color: var(--ps-green) !important;
}

/* ── Sidebar "Najważniejsze informacje" – czysta karta (mockup Single ogłoszenie) ── */
body.single-job_listing #job-details .widget {
    background: #fff !important;
    border: 1px solid #e6e9ef !important;
    border-radius: 12px !important;
    padding: 20px 22px !important;
    margin-bottom: 24px !important;
    box-shadow: 0 1px 3px rgba(16,24,40,.04) !important;
}
body.single-job_listing #job-details .widget > h4 {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    margin: 0 0 14px !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid var(--ps-green) !important;
    display: inline-block;
}
body.single-job_listing .job-overview ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
body.single-job_listing .job-overview ul li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid #f0f2f6 !important;
    list-style: none !important;
}
body.single-job_listing .job-overview ul li:last-child { border-bottom: 0 !important; }
body.single-job_listing .job-overview ul li > i,
body.single-job_listing .job-overview ul li > svg {
    flex: 0 0 20px !important;
    margin-top: 2px !important;
    font-size: 16px !important;
}
body.single-job_listing .job-overview ul li > div { display: flex !important; flex-direction: column !important; }
body.single-job_listing .job-overview ul li strong {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--ps-muted) !important;
    text-transform: uppercase;
    letter-spacing: .02em;
}
body.single-job_listing .job-overview ul li span {
    font-size: 14px !important;
    color: var(--ps-text) !important;
    font-weight: 500 !important;
}
/* Przycisk Aplikuj w karcie sidebara – pełna szerokość */
body.single-job_listing .job-overview ul .button,
body.single-job_listing .job-overview ul .ps-apply-wrap {
    margin-top: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Mapa lokalizacji – nagłówek */
body.single-job_listing #job_map + h4,
body.single-job_listing .widget #job_map { border-radius: 8px; }

/* Tytuł stanowiska (h1) – ciemny, nie niebieski */
body.single-job_listing #titlebar h1,
body.single-job_listing .single-page-header h1 {
    color: var(--ps-text) !important;
}

/* Linki firmy (website/email) → zielony */
body.single-job_listing .company-info-boxed-links a,
body.single-job_listing .company-data__content--list-item a {
    color: var(--ps-green) !important;
}

/* ── Single job – usunięcia + poprawki (Hubert v13 transza 31.05) ────── */

/* Przyciski share (FB/X/LinkedIn) – biały tekst+ikona (były zielone/nieczytelne) */
body.single-job_listing .share-post a,
body.single-job_listing .share-post a * ,
body.single-job_listing .share-post a svg,
body.single-job_listing .share-post a i {
    color: #fff !important;
    fill: #fff !important;
    stroke: #fff !important;
}
body.single-job_listing .share-post a path { fill: #fff !important; stroke: #fff !important; }

/* Logo firmy w ogłoszeniu – białe tło (było szare) */
body.single-job_listing .company-info-boxed-logo,
body.single-job_listing .company-info-boxed-logo img,
body.single-job_listing .company-info-boxed-logo a {
    background: #fff !important;
    background-color: #fff !important;
}

/* Odstęp między przyciskami Zadzwoń / Aplikuj (były sklejone) */
body.single-job_listing .ps-apply-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}
body.single-job_listing .company-info-apply-btn {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Usuń "Zaloguj się, aby napisać" / Send Message */
body.single-job_listing .send-message-to-owner,
body.single-job_listing a[href="#small-dialog"].send-message-to-owner {
    display: none !important;
}

/* Usuń "Powiadom mnie o podobnych ofertach" (job alert) */
body.single-job_listing .job_alerts_form,
body.single-job_listing .single_job_alert,
body.single-job_listing a.job-alert-link,
body.single-job_listing .job-alert {
    display: none !important;
}

/* Usuń "Strona www" / linki firmy z karty (Hubert v13) */
body.single-job_listing .company-info-boxed-links {
    display: none !important;
}

/* Usuń przycisk X (Twitter) z paska share na dole (Hubert v13) */
body.single-job_listing .share-post li:has(.x-share),
body.single-job_listing .share-post .x-share {
    display: none !important;
}

/* ── Single job: nagłówek w 1 segmencie (Hubert v13) ─────────────────── */

/* Titlebar – tylko breadcrumb (H1 przeniesiony do karty) */
body.single-job_listing #titlebar.titlebar-boxed-company-info {
    padding: 18px 0 8px !important;
    background: transparent !important;
    min-height: 0 !important;
}
body.single-job_listing #titlebar .eleven.columns > span {
    font-size: 13px;
    color: var(--ps-muted);
}
body.single-job_listing #titlebar .eleven.columns > span a { color: var(--ps-muted) !important; }
body.single-job_listing #titlebar .eleven.columns > span a:hover { color: var(--ps-green) !important; }

/* Tytuł w karcie firmy */
body.single-job_listing .company-info .content .ps-single-title {
    font-family: var(--ps-font-heading, inherit);
    font-size: 1.55rem !important;
    font-weight: 700 !important;
    color: var(--ps-text) !important;
    margin: 0 0 8px !important;
    line-height: 1.25 !important;
}
/* Rząd tagów w karcie */
body.single-job_listing .ps-single-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px;
}
body.single-job_listing .ps-single-tags .job-type,
body.single-job_listing .ps-single-tags .new_job,
body.single-job_listing .ps-single-tags .ps-badge-pilne {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #fff !important;
    padding: 4px 10px !important;
    border-radius: 6px !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    display: inline-block !important;
}

/* Karta firmy – jeden zwarty segment, czysty flex (logo | treść | przyciski) */
body.single-job_listing .company-info-boxed {
    background: transparent;
}
body.single-job_listing .company-info-boxed .company-info {
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
    flex-wrap: nowrap !important;
    margin: 0 0 32px !important;
    padding: 24px !important;
    background: #fff !important;
    border: 1px solid var(--ps-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.06) !important;
}
/* Logo – stała wąska kolumna, białe tło */
body.single-job_listing .company-info-boxed-logo {
    flex: 0 0 96px !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid var(--ps-border);
    border-radius: 8px;
    padding: 6px;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
/* Nie rozciągaj obrazka do 100% kolumny – dotyczy też domyślnej ikonki firmy,
   która przy width:100% robiła się kilka razy większa niż jej naturalny rozmiar. */
body.single-job_listing .company-info-boxed-logo img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 84px !important;
    background: #fff !important;
}
/* Środek – tytuł/tagi/firma – rośnie */
body.single-job_listing .company-info .content {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
}
/* Przyciski – STAŁA szerokość po prawej (nie flex-grow!) */
body.single-job_listing .company-info-apply-btn {
    flex: 0 0 260px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    justify-content: center !important;
    align-self: center !important;
}
body.single-job_listing .company-info-apply-btn .ps-apply-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
    width: 100% !important;
}
body.single-job_listing .company-info-apply-btn .ps-btn-call,
body.single-job_listing .company-info-apply-btn .ps-btn-apply,
body.single-job_listing .company-info-apply-btn .button {
    width: 100% !important;
    box-sizing: border-box !important;
    justify-content: center !important;
    text-align: center !important;
    margin: 0 !important;
}

/* Responsive: na wąskich ekranach segment stackuje się pionowo */
@media (max-width: 768px) {
    body.single-job_listing .company-info-boxed .company-info {
        flex-wrap: wrap !important;
        gap: 16px !important;
    }
    body.single-job_listing .company-info-apply-btn {
        flex: 1 1 100% !important;
    }
}

/* ══════════════════════════════════════════════════════════════════════
   Server-side listing ofert (Hubert 31.05) – przycisk filtrowania,
   paginacja, komunikat braku ofert
   ══════════════════════════════════════════════════════════════════════ */
.filters-container .ps-filter-submit {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    margin-top: 14px !important;
    background: var(--ps-green) !important;
    border-color: var(--ps-green) !important;
    color: #fff !important;
    font-weight: 600 !important;
    padding: 0 24px !important;
    height: 46px !important;
    line-height: 46px !important;
    border-radius: var(--ps-radius) !important;
    cursor: pointer;
}
.filters-container .ps-filter-submit:hover {
    background: var(--ps-green-dark, #1b5e20) !important;
    border-color: var(--ps-green-dark, #1b5e20) !important;
}
.ps-no-jobs {
    padding: 28px 20px !important;
    background: #f1f5f9 !important;
    border-radius: 10px !important;
    color: var(--ps-text) !important;
    text-align: center;
}
.ps-no-jobs a { color: var(--ps-green) !important; font-weight: 600; }
.ps-jobs-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    margin: 24px 0 8px;
}
.ps-jobs-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    color: var(--ps-text);
    text-decoration: none;
    background: #fff;
}
.ps-jobs-pagination .page-numbers.current {
    background: var(--ps-green);
    border-color: var(--ps-green);
    color: #fff;
}
.ps-jobs-pagination .page-numbers:hover:not(.current) { border-color: var(--ps-green); color: var(--ps-green); }

/* ══════════════════════════════════════════════════════════════════════
   MOBILE SAFETY-NET (Hubert 02.06) – spójność wersji mobilnej
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* Single job: treść i sidebar pełna szerokość, mapa pełna szerokość */
    body.single-job_listing .eleven.columns,
    body.single-job_listing .five.columns,
    body.single-job_listing #job-details {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        margin-left: 0 !important;
        padding-right: 0 !important;
    }
    body.single-job_listing .padding-right { padding-right: 0 !important; }
    /* Nagłówek oferty: logo | treść | przyciski → kolumna */
    body.single-job_listing .company-info-boxed .company-info {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px !important;
    }
    body.single-job_listing .company-info-apply-btn {
        flex: 1 1 100% !important;
        width: 100% !important;
    }
    body.single-job_listing .company-info-apply-btn .ps-btn-call,
    body.single-job_listing .company-info-apply-btn .ps-btn-apply,
    body.single-job_listing .company-info-apply-btn .button { width: 100% !important; }
    /* Mapa lokalizacji w sidebarze – pełna szerokość, sensowna wysokość */
    body.single-job_listing #job_map { height: 300px !important; min-height: 300px !important; }
    body.single-job_listing .ps-single-title { font-size: 1.3rem !important; }

    /* Karta logowania – odstęp od krawędzi ekranu */
    #login-register-password,
    .ps-login-wrap { margin: 24px 14px !important; max-width: none !important; padding: 22px 18px !important; }

    /* Panel filtrów /oferty-pracy/ – zawijanie przycisków paneli */
    .filters-container .panel-wrapper,
    .panel-wrapper.widget_range_filter { flex-wrap: wrap !important; gap: 8px !important; }
    .filters-container .panel-dropdown,
    .filters-container .ps-filter-submit { width: 100% !important; }
    .filters-container .ps-filter-submit { justify-content: center !important; }

    /* Listing kart – pełna szerokość, data nie nachodzi */
    .new-layout.job_listings > li { width: 100% !important; }

    /* Odstęp pod panelem filtrów, gdy na mobile ląduje nad listą ofert
       (Hubert 21.08.2026) – bez tego pierwsza karta sklejała się z
       przyciskiem "Filtruj oferty", inaczej niż odstępy między kartami. */
    .filters-container { margin-bottom: 16px !important; }

    /* Paginacja – mniejsze odstępy */
    .ps-jobs-pagination { gap: 4px !important; }
}

@media (max-width: 480px) {
    /* Bardzo wąskie ekrany – tytuły i paddingi */
    .ps-loc-h1, .ps-cat-hero-h1 { font-size: 1.25rem !important; }
    body.single-job_listing .single_job_listing { padding: 0 !important; }
    /* Sidebar „Najważniejsze informacje" – etykiety nie łamią się brzydko */
    body.single-job_listing #job-details .widget { padding: 16px 16px !important; }
    /* Zakładki logowania – mniejszy padding */
    #login-register-password .tabs-nav-o li a,
    .ps-login-wrap .tabs-nav-o li a { padding: 9px 6px !important; font-size: 14px !important; }
}

/* ── Panel pracodawcy (wylogowany) – prompt logowania spójny z serwisem (Hubert 02.06) ── */
#job-manager-job-dashboard {
    max-width: 460px;
    margin: 48px auto;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: 14px;
    padding: 32px 28px;
    box-shadow: 0 4px 18px rgba(16,24,40,.06);
    text-align: center;
}
#job-manager-job-dashboard .account-sign-in {
    font-size: 16px;
    color: #475569;
    margin: 0 0 18px;
}
#job-manager-job-dashboard a.button {
    display: inline-block;
    background: var(--ps-green, #2e7d32) !important;
    border-color: var(--ps-green, #2e7d32) !important;
    color: #fff !important;
    font-weight: 600 !important;
    padding: 12px 28px !important;
    border-radius: 10px !important;
    text-decoration: none !important;
}
#job-manager-job-dashboard a.button:hover {
    background: var(--ps-green-dark, #1b5e20) !important;
    border-color: var(--ps-green-dark, #1b5e20) !important;
}

/* ── Belka meta w nagłówku oferty: lokalizacja/wynagrodzenie/data/wygasa (Hubert 02.06) ── */
body.single-job_listing .ps-jm-header-meta {
    list-style: none !important;
    margin: 12px 0 14px !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column;
    gap: 7px;
}
body.single-job_listing .ps-jm-header-meta li {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    font-size: 14px !important;
    color: var(--ps-text, #1f2937) !important;
}
body.single-job_listing .ps-jm-header-meta li::before { display: none !important; }
body.single-job_listing .ps-jm-header-meta li i {
    color: var(--ps-green, #2e7d32) !important;
    width: 16px; text-align: center; flex-shrink: 0;
    font-size: 15px;
}
body.single-job_listing .ps-jm-header-meta .ps-jm-salary {
    color: var(--ps-green, #2e7d32) !important;
    font-weight: 700 !important;
}
body.single-job_listing .ps-jm-header-meta .ps-jm-date,
body.single-job_listing .ps-jm-header-meta .ps-jm-exp { color: var(--ps-muted, #64748b) !important; }

/* Sidebar: przycisk Aplikuj pod kartą „Najważniejsze informacje" */
body.single-job_listing .ps-sidebar-apply { margin-top: 16px; }

/* Sidebar: przyciski Zadzwoń/Aplikuj – wyśrodkowane jak w nagłówku (Hubert 02.06) */
body.single-job_listing .ps-sidebar-apply .ps-apply-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
}
body.single-job_listing .ps-sidebar-apply .button,
body.single-job_listing .ps-sidebar-apply .ps-btn-call,
body.single-job_listing .ps-sidebar-apply .ps-btn-apply,
body.single-job_listing .ps-sidebar-apply a.application_button {
    width: 100% !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 8px !important;
}

/* Pinezka SVG na mapie single job – bez domyślnego białego tła/ramki Leaflet divIcon */
.leaflet-div-icon.ps-map-pin,
.ps-map-pin {
    background: transparent !important;
    border: 0 !important;
}

/* Single job: odstęp nazwy firmy od tytułu i od tagów (Hubert 02.06) */
body.single-job_listing .company-info .content > h4 {
    margin: 6px 0 16px !important;
    line-height: 1.3 !important;
}
body.single-job_listing .company-info .content .ps-single-title {
    margin-bottom: 6px !important;
}
body.single-job_listing .company-info .content .ps-single-tags {
    margin-top: 0 !important;
}

/* Sidebar single job: usuń szare tło WorkScout z .job-overview (zostaje biała karta) */
body.single-job_listing .job-overview {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/* Listing: kolorowe tagi pod nazwą firmy (Hubert 02.06) */
.new-layout .listing-icons li.ps-listing-tags-li {
    margin: 3px 0 5px !important;
    padding: 0 !important;
}
.new-layout .listing-icons li.ps-listing-tags-li::before { display: none !important; }
.new-layout .listing-icons li.ps-listing-tags-li > .ps-listing-tags { margin: 0 !important; }
.new-layout .listing-icons li.ps-listing-tags-li:has(.ps-listing-tags:empty) { display: none !important; }

/* ══════════════════════════════════════════════════════════════════════
   CENNIK /cennik/ – 4 pakiety (Hubert 02.06)
   ══════════════════════════════════════════════════════════════════════ */
.ps-pricing { max-width: 1180px; width: 100%; margin: 0 auto; }
.ps-pricing-intro {
    text-align: center; font-size: 16px; color: #475569;
    max-width: 760px; margin: 0 auto 34px; line-height: 1.6;
}
.ps-pricing-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)); /* 4 pakiety w 1 rzędzie */
    gap: 18px;
    width: 100%;
    align-items: stretch;
}
.ps-price-card {
    position: relative;
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: 14px;
    padding: 26px 18px 22px;
    box-shadow: 0 2px 10px rgba(16,24,40,.05);
}
.ps-price-featured {
    border: 2px solid var(--ps-green, #2e7d32);
    box-shadow: 0 8px 26px rgba(46,125,50,.15);
}
.ps-price-badge {
    position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
    background: var(--ps-green, #2e7d32); color: #fff;
    font-size: 12px; font-weight: 700; padding: 5px 14px; border-radius: 999px;
    white-space: nowrap;
}
.ps-price-name {
    font-size: 18px; font-weight: 700; color: #1f2937;
    margin: 6px 0 14px; line-height: 1.3;
}
.ps-price-name span {
    display: block; font-size: 13px; font-weight: 600;
    color: var(--ps-green, #2e7d32); text-transform: uppercase; letter-spacing: .03em;
}
.ps-price-amount { margin: 0 0 18px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ps-price-old { text-decoration: line-through; color: #94a3b8; font-size: 16px; }
.ps-price-now { font-size: 34px; font-weight: 800; color: #1f2937; line-height: 1; }
/* lista cech – zabij natywne punktory motywu (•), zostaw nasz zielony ✓.
   Flex zamiast absolutnego pozycjonowania → ✓ i tekst równo, z odstępem,
   bez nachodzenia na linie separatora. */
.ps-price-feats {
    list-style: none !important; margin: 0 0 22px !important;
    padding: 0 !important; flex: 1 1 auto;
}
.ps-price-feats li {
    list-style: none !important;
    display: flex; align-items: flex-start; gap: 10px;
    padding: 10px 0; font-size: 14px; color: #475569;
    border-bottom: 1px solid #f1f5f9; line-height: 1.45; margin: 0 !important;
}
.ps-price-feats li::marker { content: "" !important; } /* fallback gdy list-style nie wystarczy */
.ps-price-feats li:last-child { border-bottom: 0; }
.ps-price-feats li::before {
    content: "\2713"; /* ✓ */ flex: 0 0 auto;
    color: var(--ps-green, #2e7d32); font-weight: 800; font-size: 15px; line-height: 1.45;
}
.ps-price-btn {
    display: block; text-align: center; padding: 13px 16px;
    background: var(--ps-orange, #F57C00); color: #fff !important;
    font-weight: 700; border-radius: 10px; text-decoration: none !important;
    transition: background .15s;
}
.ps-price-btn:not(.ps-price-btn--disabled):hover { background: var(--ps-orange-dark, #E65100); }
.ps-price-btn--disabled {
    background: #e2e8f0; color: #94a3b8 !important; cursor: not-allowed;
}
/* Pakiety „wkrótce" – wyszarzone */
.ps-price-soon { opacity: .62; }
.ps-price-soon .ps-price-now,
.ps-price-soon .ps-price-name { color: #64748b; }
.ps-price-soon-tag {
    position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
    background: #64748b; color: #fff; font-size: 11px; font-weight: 700;
    padding: 5px 12px; border-radius: 999px; white-space: nowrap;
}
.ps-pricing-note { text-align: center; color: #94a3b8; font-size: 13px; margin-top: 28px; }
.ps-pricing-note a { color: var(--ps-green, #2e7d32); }

/* 4 w rzędzie aż do realnego tabletu; 2 na tablecie; 1 na telefonie.
   Próg 860px – żeby 4 karty zostały w 1 rzędzie także przy węższym oknie
   desktopu/laptopa (gdzie nav WorkScout schodzi już do hamburgera). */
@media (max-width: 860px) { .ps-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 16px; } }
@media (max-width: 520px) { .ps-pricing-grid { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════════════════
   PANEL PRACODAWCY (job-dashboard WorkScout) → wygląd pracasochaczew.pl
   (pierwszy pass – do dopracowania po screenie z zalogowanego panelu)
   ══════════════════════════════════════════════════════════════════════ */
.dashboard-box {
    background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
    box-shadow: 0 2px 12px rgba(16,24,40,.06); overflow: hidden; margin-bottom: 26px;
}
.dashboard-box .headline {
    background: var(--ps-green, #2e7d32); padding: 16px 24px; margin: 0;
}
.dashboard-box .headline h3 {
    color: #fff !important; margin: 0; font-size: 18px; font-weight: 700;
    display: flex; align-items: center; gap: 10px;
}
.dashboard-box .headline h3 i { color: #fff; }
.dashboard-box .content { padding: 4px 24px; }

/* lista ogłoszeń w panelu */
.dashboard-box-list > li,
.dashboard-box-list .item-listing {
    border-bottom: 1px solid #f1f5f9; padding: 18px 0; margin: 0;
}
.dashboard-box-list > li:last-child { border-bottom: 0; }
.dashboard-box-list .item-listing-title .job-title,
.dashboard-box-list .item-listing-title a {
    font-size: 16px; font-weight: 700; color: #1f2937; text-decoration: none;
}
.dashboard-box-list .item-listing-title .job-title:hover { color: var(--ps-green, #2e7d32); }
.dashboard-box-list .item-listing-footer ul {
    display: flex; gap: 18px; flex-wrap: wrap; margin: 6px 0 0; padding: 0; list-style: none;
}
.dashboard-box-list .item-listing-footer li {
    color: #64748b; font-size: 13px; display: flex; align-items: center; gap: 5px; border: 0;
}

/* ── Blog: widget „Ostatnie wpisy" – równe zielone ptaszki ──────────── */
.widget_recent_entries ul { list-style: none !important; margin: 0; padding: 0; }
.widget.widget_recent_entries ul li,
.widget_recent_entries li {
    list-style: none !important; position: relative !important;
    padding: 0 0 11px 26px !important; margin: 0 0 11px !important;
    border-bottom: 1px solid #f1f5f9; line-height: 1.45;
}
.widget_recent_entries li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.widget.widget_recent_entries ul li::before,
.widget_recent_entries li::before {
    content: "\2713" !important; font-family: inherit !important; /* nadpisz ewentualny FA */
    position: absolute !important; left: 0 !important; top: 2px !important;
    color: var(--ps-green, #2e7d32) !important; font-weight: 800 !important;
}
.widget_recent_entries li a { color: #1f2937; text-decoration: none; font-weight: 600; }
.widget_recent_entries li a:hover { color: var(--ps-green, #2e7d32); }
.widget_recent_entries .post-date { display: block; color: #94a3b8; font-size: 12px; margin-top: 2px; }

/* ══════════════════════════════════════════════════════════════════════
   POPRAWKI 17.06 – ikony FA, hamburger, wyszukiwarka, komentarze, blog
   ══════════════════════════════════════════════════════════════════════ */

/* 1. SHIM IKON: stare "fa fa-X" (FA4) polegały na Font Awesome z Elementora.
   Po jego usunięciu wymuszamy rodzinę+grubość z FA motywu (FA5/6 solid=900).
   Dotyczy TYLKO bare <i class="fa ..."> – elementy .fas/.far/.fab nietknięte. */
i.fa, span.fa {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
    font-weight: 900 !important;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}

/* 2. HAMBURGER (off-canvas .mobile-navigation-wrapper) → białe tło, styl portalu.
   Górny pasek zostaje zielony, żeby jasne logo i biały X pozostały widoczne. */
.mobile-navigation-wrapper {
    background: #ffffff !important;
    color: #1f2937 !important;
}
.mobile-navigation-wrapper .mobile-nav-header {
    background: var(--ps-green, #2e7d32) !important;
    border-bottom: 0 !important;
}
.mobile-navigation-wrapper .mobile-navigation-list,
.mobile-navigation-wrapper .mobile-nav-widgets { background: #ffffff !important; }
.mobile-navigation-wrapper .mobile-navigation-list a,
.mobile-navigation-wrapper .mobile-navigation-list li > a,
.mobile-navigation-wrapper #mobile-nav a { color: #1f2937 !important; }
.mobile-navigation-wrapper .mobile-navigation-list a:hover,
.mobile-navigation-wrapper #mobile-nav a:hover { color: var(--ps-green, #2e7d32) !important; }
.mobile-navigation-wrapper .mobile-navigation-list li,
.mobile-navigation-wrapper #mobile-nav li { border-bottom: 1px solid #f1f5f9; }
.mobile-navigation-wrapper .mobile-nav-widgets,
.mobile-navigation-wrapper .mobile-nav-widgets * { color: #1f2937 !important; }

/* 3. WYSZUKIWARKA w sidebarze – pełna szerokość, symetryczna */
.widget_search .search-form,
.widget-box.search .search-form,
.widget_search .search-form .input { width: 100%; display: block; box-sizing: border-box; }
.widget_search .search-field,
.widget-box.search input[type="text"],
.widget-box.search input[type="search"] {
    width: 100% !important; box-sizing: border-box !important;
    padding: 12px 16px; border: 1px solid #d7dce3; border-radius: 10px; font-size: 14px;
}
.widget_search .search-field:focus { border-color: var(--ps-green, #2e7d32); outline: none; }

/* 4. FORMULARZ KOMENTARZY (single post) → styl portalu */
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
#respond input[type="text"],
#respond input[type="email"],
#respond input[type="url"],
#respond textarea {
    width: 100%; box-sizing: border-box;
    border: 1px solid #d7dce3; border-radius: 10px; padding: 12px 14px; font-size: 14px;
}
.comment-form input:focus, .comment-form textarea:focus,
#respond input:focus, #respond textarea:focus { border-color: var(--ps-green, #2e7d32); outline: none; }
.comment-form .form-submit .submit,
#respond #submit, #respond .submit {
    background: var(--ps-green, #2e7d32) !important; color: #fff !important;
    border: 0 !important; border-radius: 10px !important;
    font-weight: 700 !important; padding: 12px 28px !important; cursor: pointer;
}
.comment-form .form-submit .submit:hover,
#respond #submit:hover { background: var(--ps-green-dark, #1b5e20) !important; }

/* 5. BLOG – karty wpisów + przycisk „Czytaj więcej" w stylu portalu */
.post-container {
    background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
    box-shadow: 0 2px 10px rgba(16,24,40,.05); padding: 26px; margin-bottom: 24px;
}
.post-container .read-more,
a.button.read-more {
    display: inline-block; background: var(--ps-green, #2e7d32) !important; color: #fff !important;
    border: 0 !important; border-radius: 9px !important; font-weight: 600 !important; padding: 10px 22px !important;
}
.post-container .read-more:hover,
a.button.read-more:hover { background: var(--ps-green-dark, #1b5e20) !important; }

/* 6. WYSZUKIWARKA: usuń szarą „obwolutę" (.widget-box #f8f8f8) wokół pola */
.widget-box.search { background: transparent !important; padding: 0 !important; }

/* 7. PANEL: nawigacja boczna (.dashboard-nav) → kolory portalu zamiast
   domyślnej zieleni WorkScouta (nagłówki sekcji + pozycja aktywna). */
.dashboard-nav-inner ul li.active > a,
.dashboard-nav-inner ul li.active-submenu > a {
    color: var(--ps-green, #2e7d32) !important;
    background: #eef7f0 !important;
    box-shadow: inset 3px 0 0 var(--ps-green, #2e7d32);
}
.dashboard-nav-inner ul li a:hover { color: var(--ps-green, #2e7d32) !important; }
.dashboard-nav-inner ul li.active > a i,
.dashboard-nav-inner ul li a:hover i { color: var(--ps-green, #2e7d32) !important; }
/* nagłówki sekcji (Start / Zarządzaj / Konto) – ujednolić na portalowy zielony */
.dashboard-nav-container .dashboard-nav-inner > div,
.dashboard-nav-inner .nav-tabs-title,
.dashboard-nav-inner h4,
.dashboard-nav .dashboard-nav-inner ul:before {
    color: var(--ps-green, #2e7d32) !important;
}

/* 8. PANEL: ukryj sekcję „Zadania" (Tasks/Freelancer) – portal pracy jej nie używa.
   Celujemy w nadrzędny <li> zawierający pozycje zadań (task_*-menu). Reaktywacja:
   usuń tę regułę. Pełne wyłączenie funkcji = deaktywacja wtyczki WorkScout Freelancer. */
.dashboard-nav-inner ul > li:has(#task_my_project-menu),
.dashboard-nav-inner ul > li:has(#task_dashboard-menu),
.dashboard-nav-inner ul > li:has(#task_my_bids-menu) { display: none !important; }

/* ══════════════════════════════════════════════════════════════════════
   PANEL PRACODAWCY – własny sidebar wg makiety (ZADANIE 2, Etap 1)
   Klasy ps-panel-* używane przez child template-dashboard.php.
   ══════════════════════════════════════════════════════════════════════ */
.ps-employer-panel .ps-panel-nav-wrap { display: block; }

/* Karta konta */
.ps-panel-account {
	display: flex; align-items: center; gap: 12px;
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	box-shadow: 0 2px 12px rgba(16,24,40,.06);
	padding: 16px; margin: 0 0 26px;
}
.ps-panel-avatar {
	flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%;
	background: var(--ps-green, #2e7d32); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 19px; font-weight: 700; line-height: 1;
}
.ps-panel-account-meta { display: flex; flex-direction: column; min-width: 0; }
.ps-panel-account-name { font-size: 15px; font-weight: 700; color: #1f2937; line-height: 1.3; }
.ps-panel-account-company {
	font-size: 13px; color: #64748b; line-height: 1.3;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ── Plakietka „Wkrótce" przy „Kup pakiet" (makieta Huberta 30.07.2026) ──────
   Pozycja jest klikalna – strona /kup-pakiet/ renderuje komunikat o starcie
   sprzedaży w 2027. Plakietka znika po włączeniu PS_PAYMENTS_LIVE. */
.ps-panel-item .ps-panel-badge {
	margin-left: auto; flex-shrink: 0;
	font-style: normal; font-size: 11px; font-weight: 600; line-height: 1;
	padding: 4px 8px; border-radius: 999px;
	background: #e0edff; color: #2563eb;
}
.ps-panel-item.has-badge > a { display: flex; align-items: center; gap: 12px; }

/* ══════════════════════════════════════════════════════════════════════════
   ODZYSKIWANIE I USTAWIANIE HASŁA – karta spójna z ekranem logowania
   ══════════════════════════════════════════════════════════════════════════
   Szablony WorkScout Core (templates/account/lost_password.php i
   reset_password.php) są zbudowane na siatce Bootstrapa: .col-md-8 > .row >
   .col-md-6. Reszta serwisu tej siatki nie używa, więc formularz lądował
   w wąskiej kolumnie przyklejonej do lewej krawędzi i wyglądał jak wyrwany
   z innej strony. Zerujemy siatkę i nadajemy ten sam wygląd karty, co
   #login-register-password na /moje-konto/. */
.col-md-8:has(#resetpassform),
.col-md-8:has(#lostpasswordform) {
	float: none !important; width: 100% !important; max-width: none !important;
	padding: 0 !important;
}
.col-md-8:has(#resetpassform) .row,
.col-md-8:has(#lostpasswordform) .row { margin: 0 !important; }

.col-md-6:has(#resetpassform),
.col-md-6:has(#lostpasswordform) {
	float: none !important;
	width: 100% !important;
	max-width: 440px !important;
	margin: 48px auto !important;
	background: #fff !important;
	border: 1px solid #e6e9ef !important;
	border-radius: 14px !important;
	padding: 30px 28px !important;
	box-shadow: 0 4px 18px rgba(16,24,40,.06) !important;
	box-sizing: border-box !important;
	color-scheme: light !important;
}

/* Fallback dla przeglądarek bez :has() – stylujemy same formularze. */
#resetpassform, #lostpasswordform { max-width: 440px; margin: 0 auto; }

#resetpassform label,
#lostpasswordform label {
	display: block; font-size: 13px; font-weight: 600; color: #1f2937; margin: 0 0 6px;
}
#resetpassform input[type="password"],
#resetpassform input[type="text"],
#lostpasswordform input[type="text"],
#lostpasswordform input[type="email"] {
	width: 100%; box-sizing: border-box;
	border: 1px solid #d7dce3; border-radius: 10px;
	padding: 12px 14px; font-size: 14px; color: #1f2937; background: #fff;
	transition: border-color .15s;
}
#resetpassform input:focus,
#lostpasswordform input:focus {
	border-color: var(--ps-green, #2e7d32); outline: none;
}
#resetpassform p, #lostpasswordform p { margin: 0 0 16px; }
#resetpassform .description {
	font-size: 12px; line-height: 1.5; color: #64748b;
	background: #f8fafc; border-radius: 8px; padding: 10px 12px;
}
#resetpassform input[type="submit"],
#lostpasswordform input[type="submit"] {
	width: 100%; border: none; cursor: pointer;
	background: var(--ps-green, #2e7d32); color: #fff;
	font-size: 14px; font-weight: 600;
	padding: 13px 20px; border-radius: 10px; transition: background .15s;
}
#resetpassform input[type="submit"]:hover,
#lostpasswordform input[type="submit"]:hover { background: #1b5e20; }

/* Ikona koperty w polu e-mail (lost password) – WorkScout wstawia <i> w <label> */
#lostpasswordform label i { display: none; }

/* ══════════════════════════════════════════════════════════════════════════
   EKRAN LOGOWANIA – wg makiety „Zakładka logowanie" (Hubert 30.07.2026)
   ══════════════════════════════════════════════════════════════════════════ */
.ps-login-form { max-width: 420px; margin: 0 auto; }
.ps-login-title { font-size: 21px; color: #1f2937; margin: 0 0 6px; text-align: center; }
.ps-login-lead { font-size: 14px; color: #64748b; margin: 0 0 22px; text-align: center; }

.ps-login-error {
	display: flex; gap: 12px; align-items: flex-start;
	background: #fef2f2; border: 1px solid #fecaca; border-radius: 10px;
	padding: 14px 16px; margin: 0 0 20px; color: #991b1b;
}
.ps-login-error svg { flex-shrink: 0; margin-top: 1px; }
.ps-login-error strong { display: block; font-size: 14px; margin-bottom: 2px; }
.ps-login-error span { font-size: 13px; color: #b91c1c; }

.ps-login-row { margin: 0 0 16px; }
.ps-login-row > label {
	display: block; font-size: 13px; font-weight: 600; color: #1f2937; margin: 0 0 6px;
}
.ps-login-field { position: relative; display: flex; align-items: center; }
.ps-login-ico {
	position: absolute; left: 14px; color: #94a3b8; pointer-events: none;
}
.ps-login-field input {
	width: 100%; box-sizing: border-box;
	border: 1px solid #d7dce3; border-radius: 10px;
	padding: 13px 44px 13px 42px; font-size: 14px; color: #1f2937; background: #fff;
	transition: border-color .15s;
}
.ps-login-field input:focus { border-color: var(--ps-green, #2e7d32); outline: none; }
.ps-login-eye {
	position: absolute; right: 8px; background: none; border: none; cursor: pointer;
	color: #94a3b8; padding: 8px; line-height: 0; border-radius: 6px;
}
.ps-login-eye:hover, .ps-login-eye.is-on { color: var(--ps-green, #2e7d32); }
.ps-login-lost {
	display: block; text-align: right; margin-top: 6px;
	font-size: 13px; font-weight: 600; color: var(--ps-green, #2e7d32);
}
.ps-login-remember {
	display: flex; align-items: center; gap: 8px; cursor: pointer;
	font-size: 14px; color: #475569; margin: 4px 0 18px;
}
.ps-login-remember input { accent-color: var(--ps-green, #2e7d32); }
.ps-login-submit {
	width: 100%; border: none; cursor: pointer;
	background: var(--ps-green, #2e7d32); color: #fff;
	font-size: 15px; font-weight: 600; padding: 14px 20px; border-radius: 10px;
	transition: background .15s;
}
.ps-login-submit:hover { background: #1b5e20; }
.ps-login-sep {
	position: relative; text-align: center; margin: 22px 0 16px;
	font-size: 13px; color: #94a3b8;
}
.ps-login-sep::before {
	content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: #eef1f5;
}
.ps-login-sep span { position: relative; background: #fff; padding: 0 12px; }
.ps-login-alt { text-align: center; font-size: 14px; color: #64748b; margin: 0; }
.ps-login-alt a { color: var(--ps-green, #2e7d32); font-weight: 600; }

/* Pasek weryfikacji adresu (bez zmian – zostaje na dole, to inny komunikat). */
.ps-verify-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
	display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap;
	padding: 14px 20px; font-size: 14px;
	background: #fffbeb; color: #92400e; border-top: 1px solid #fde68a;
}
.ps-verify-bar a { color: #92400e; text-decoration: underline; }

/* Pasek podglądu oferty – od 05.08.2026 na GÓRZE treści (job_content_start),
   nie jako niski-kontrast fixed bar na dole. Żółty, ostrzegawczy styl zamiast
   ciemnego – Hubert: „gdyby nie pytanie w teście to bym tego nie zauważył”. */
.ps-preview-bar {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	margin: 0 0 20px; padding: 14px 18px; border-radius: 10px;
	background: #fffbeb; border: 1px solid #fde68a; color: #92400e; font-size: 14px;
}
.ps-preview-bar svg { flex-shrink: 0; color: #d97706; }
.ps-preview-bar span { flex: 1 1 260px; }
.ps-preview-bar a {
	color: #92400e; font-weight: 700; text-decoration: underline; white-space: nowrap;
}
.ps-preview-asview { text-align: center; margin: 0 0 24px; }
.ps-preview-asview a { font-size: 14px; font-weight: 600; color: var(--ps-green, #2e7d32); text-decoration: none; }
.ps-preview-asview a:hover { text-decoration: underline; }

.ps-verify-toast {
	position: fixed; left: 50%; transform: translateX(-50%); bottom: 24px; z-index: 100000;
	padding: 14px 22px; border-radius: 10px; font-size: 14px; font-weight: 600;
	box-shadow: 0 6px 24px rgba(16,24,40,.18);
}
.ps-verify-toast.is-ok  { background: #dcfce7; color: #166534; }
.ps-verify-toast.is-err { background: #fee2e2; color: #991b1b; }

/* ══════════════════════════════════════════════════════════════════════════
   KREATOR REJESTRACJI – kroki 1 i 2 (makiety Huberta 30.07.2026)
   ══════════════════════════════════════════════════════════════════════════ */
.ps-reg-form {
	max-width: 440px; margin: 0 auto;
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	padding: 32px 30px; box-shadow: 0 4px 18px rgba(16,24,40,.06); box-sizing: border-box;
}
.ps-reg-form--wide { max-width: 640px; }
.ps-reg-title { font-size: 21px; color: #1f2937; margin: 0 0 8px; text-align: center; }
.ps-reg-lead { font-size: 14px; line-height: 1.6; color: #64748b; margin: 0 0 24px; text-align: center; }
.ps-reg-sec {
	font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	color: #94a3b8; margin: 26px 0 14px; padding-bottom: 8px; border-bottom: 1px solid #eef1f5;
}
.ps-reg-row { margin: 0 0 16px; }
.ps-reg-row > label {
	display: block; font-size: 13px; font-weight: 600; color: #1f2937; margin: 0 0 6px;
}
/* Gwiazdka wymagalności na formularzu rejestracji nie miała NIGDZIE reguły koloru –
   każde inne miejsce w serwisie (formularz ogłoszenia, ustawienia, aplikowanie)
   dostało swoją własną „.xxx .req { color: #dc2626 }” osobno, a rejestracja
   nigdy. Stąd gwiazdki tu wychodziły w domyślnym, szarym kolorze tekstu etykiety
   (Hubert, 05.08.2026, punkt 1.1). */
.ps-reg-row .req { color: #dc2626; font-weight: 700; }
/* Ten sam brakujący wzorzec co wyżej, tym razem na logowaniu (Hubert 08.08.2026,
   runda 3, dodatkowa uwaga do 1.1) – .req w login-form.php już istniał w HTML,
   ale bez własnej reguły koloru wychodził szary jak każde inne miejsce bez niej. */
.ps-login-row .req { color: #dc2626; font-weight: 700; }
/* Formularz „Wyślij CV" (wtyczka WP Job Manager - Applications) w ogóle nie
   oznacza pól wymaganych gwiazdką w HTML – dokładamy ją czysto przez CSS,
   bez ingerencji w kod wtyczki (Hubert 08.08.2026, runda 3, punkt 7.1). */
.job-manager-application-form label[for="candidate_name"]::after,
.job-manager-application-form label[for="candidate_email"]::after {
	content: " *"; color: #dc2626; font-weight: 700;
}
.ps-reg-row input[type="text"], .ps-reg-row input[type="email"],
.ps-reg-row input[type="tel"], .ps-reg-row input[type="password"],
.ps-reg-row select {
	width: 100%; box-sizing: border-box;
	border: 1px solid #d7dce3; border-radius: 10px; padding: 12px 14px;
	font-size: 14px; color: #1f2937; background: #fff; transition: border-color .15s;
}
.ps-reg-row input:focus, .ps-reg-row select:focus {
	border-color: var(--ps-green, #2e7d32); outline: none;
}
.ps-reg-row input.has-err { border-color: #dc2626; }
.ps-reg-row select[disabled] { background: #f1f5f9; color: #64748b; cursor: not-allowed; }
.ps-reg-static {
	margin: 0; padding: 12px 14px; background: #f8fafc; border-radius: 10px;
	font-size: 14px; color: #475569;
}
.ps-reg-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: 400 !important; }
/* margin-left:0 – checkbox zgody był wsunięty o 4 px (domyślny margines
   przeglądarki) względem wszystkich pozostałych pól. Hubert 03.08.2026, pkt 1.1:
   „Nie wszystkie treści w polach są wyrównane do lewej strony". */
.ps-reg-check input { margin: 3px 0 0 0; accent-color: var(--ps-green, #2e7d32); flex-shrink: 0; }
.ps-reg-check span { font-size: 13px; line-height: 1.5; color: #475569; }
.ps-reg-check a { color: var(--ps-green, #2e7d32); }
.ps-reg-submit {
	width: 100%; border: none; cursor: pointer;
	background: var(--ps-green, #2e7d32); color: #fff;
	font-size: 15px; font-weight: 600; padding: 14px 20px; border-radius: 10px;
	margin-top: 8px; transition: background .15s;
}
.ps-reg-submit:hover { background: #1b5e20; }
.ps-reg-alt { text-align: center; font-size: 14px; color: #64748b; margin: 18px 0 0; }
.ps-reg-alt a { color: var(--ps-green, #2e7d32); font-weight: 600; }

/* Pułapka na boty – niewidoczna, ale nie display:none (część botów to wykrywa) */
.ps-reg-hp {
	position: absolute !important; left: -9999px !important;
	width: 1px; height: 1px; overflow: hidden;
}

/* ══════════════════════════════════════════════════════════════════════════
   MENU HAMBURGER – panel wysuwany wg makiety Huberta 30.07.2026
   ══════════════════════════════════════════════════════════════════════════ */
.ps-mm-overlay {
	position: fixed; inset: 0; z-index: 99998;
	background: rgba(15,23,42,.45); opacity: 0; transition: opacity .2s;
}
.ps-mm-overlay.is-open { opacity: 1; }

.ps-mm {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 99999;
	width: 340px; max-width: 88vw;
	background: #fff; display: flex; flex-direction: column;
	transform: translateX(100%); transition: transform .22s ease;
	box-shadow: -6px 0 28px rgba(16,24,40,.16);
}
.ps-mm.is-open { transform: translateX(0); }

.ps-mm-head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 20px 22px; border-bottom: 1px solid #eef1f5; flex-shrink: 0;
}
.ps-mm-logo { font-size: 17px; font-weight: 700; color: var(--ps-green, #2e7d32); }
.ps-mm-logo span { color: #1f2937; }
.ps-mm-logo--sm { font-size: 14px; }

/* Logo graficzne – to samo, co w nagłówku strony (Hubert 03.08.2026 pkt 13.3). */
.ps-mm-logo--img { display: inline-flex; align-items: center; line-height: 0; }
.ps-mm-logo--img img { max-height: 34px; width: auto; display: block; }
.ps-mm-logo--footimg { max-height: 24px; width: auto; display: block; opacity: .8; }
.ps-mm-close {
	background: none; border: none; cursor: pointer; font-size: 30px; line-height: 1;
	color: #64748b; padding: 0 4px;
}
.ps-mm-close:hover { color: #1f2937; }

.ps-mm-body { flex: 1; overflow-y: auto; padding: 8px 0; }
.ps-mm-list { list-style: none; margin: 0; padding: 8px 0; }
.ps-mm-list + .ps-mm-list { border-top: 1px solid #eef1f5; }
.ps-mm-list a {
	display: flex; align-items: center; gap: 14px;
	padding: 12px 22px; font-size: 15px; color: #1f2937; text-decoration: none;
	transition: background .15s, color .15s;
}
.ps-mm-list a:hover { background: #f8fafc; color: var(--ps-green, #2e7d32); }
.ps-mm-list svg { color: var(--ps-green, #2e7d32); flex-shrink: 0; }
.ps-mm-social svg { color: #1f2937; }

.ps-mm-foot {
	flex-shrink: 0; padding: 18px 22px; border-top: 1px solid #eef1f5; text-align: center;
}
.ps-mm-foot small { display: block; margin-top: 4px; font-size: 12px; color: #94a3b8; }

/* ══════════════════════════════════════════════════════════════════════════
   MOJE OGŁOSZENIA – tabela wg makiety Huberta 30.07.2026
   ══════════════════════════════════════════════════════════════════════════ */
.ps-jobs {
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	box-shadow: 0 2px 10px rgba(16,24,40,.04); overflow: hidden;
}

/* Zakładki z licznikami */
.ps-jobs-tabs {
	display: flex; gap: 4px; flex-wrap: wrap;
	padding: 6px 20px 0; border-bottom: 1px solid #eef1f5;
}
.ps-jobs-tab {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 14px 16px; font-size: 14px; font-weight: 600;
	color: #64748b; text-decoration: none;
	border-bottom: 3px solid transparent; margin-bottom: -1px;
	transition: color .15s, border-color .15s;
}
.ps-jobs-tab:hover { color: #1f2937; }
.ps-jobs-tab.is-active { color: var(--ps-green, #2e7d32); border-bottom-color: var(--ps-green, #2e7d32); }
.ps-jobs-tab-count {
	min-width: 22px; padding: 2px 7px; border-radius: 999px;
	background: #eef1f5; color: #475569; font-size: 12px; font-weight: 700; text-align: center;
}
.ps-jobs-tab.is-active .ps-jobs-tab-count { background: var(--ps-green, #2e7d32); color: #fff; }

/* Tabela – przewijana poziomo na wąskich ekranach, nigdy nie rozpycha strony */
.ps-jobs-scroll { overflow-x: auto; }
.ps-jobs-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ps-jobs-table th {
	text-align: left; font-size: 12px; font-weight: 600; color: #64748b;
	padding: 14px 16px; border-bottom: 1px solid #eef1f5; white-space: nowrap;
}
.ps-jobs-table th a { color: inherit; text-decoration: none; }
.ps-jobs-table th a:hover { color: var(--ps-green, #2e7d32); }
.ps-jobs-table td {
	padding: 16px; border-bottom: 1px solid #f1f5f9; color: #1f2937; vertical-align: middle;
}
.ps-jobs-table tr:last-child td { border-bottom: none; }
.ps-jobs-table tr:hover td { background: #fafbfc; }
.ps-col-id { font-weight: 600; white-space: nowrap; }
.ps-col-num { text-align: right; }
.ps-cell-title { font-weight: 600; min-width: 170px; }
.ps-col-akcje { white-space: nowrap; }

/* Plakietki statusów – kolory wg makiety (sekcja 4), nie wg opisu statusów */
.ps-badge {
	display: inline-block; padding: 5px 11px; border-radius: 999px;
	font-size: 12px; font-weight: 600; white-space: nowrap;
}
.ps-badge--green  { background: #dcfce7; color: #166534; }
.ps-badge--blue   { background: #dbeafe; color: #1e40af; }
.ps-badge--yellow { background: #fef3c7; color: #92400e; }
.ps-badge--gray   { background: #e5e7eb; color: #4b5563; }
.ps-badge--red    { background: #fee2e2; color: #991b1b; }

/* Akcje wierszowe */
.ps-act { font-size: 13px; font-weight: 600; text-decoration: none; margin-right: 14px; }
.ps-act:last-child { margin-right: 0; }
.ps-act--edit { color: var(--ps-green, #2e7d32); }
.ps-act--view { color: #2563eb; }
.ps-act--del  { color: #dc2626; }
/* Marta 09.08.2026: wyraźnie wyróżniona akcja przy szkicach/odrzuconych –
   ta sama bezpieczna ścieżka co "Edytuj" (formularz), ale nazwana i
   wyglądająca tak, żeby było od razu widać, że stąd da się opublikować. */
.ps-act--publish { color: var(--ps-green, #2e7d32); font-weight: 800; }
.ps-act--publish::after { content: " →"; }
.ps-act:hover { text-decoration: underline; }

/* Stopka: zakres, paginacja, liczba wierszy */
.ps-jobs-foot {
	display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
	padding: 16px 20px; border-top: 1px solid #eef1f5; font-size: 13px; color: #64748b;
}
.ps-jobs-pager { display: flex; gap: 4px; margin: 0 auto; }
.ps-jobs-pager a, .ps-jobs-pager span {
	min-width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 8px; text-decoration: none; color: #475569; font-weight: 600;
}
.ps-jobs-pager a:hover { background: #f1f5f9; }
.ps-jobs-pager .is-active { background: var(--ps-green, #2e7d32); color: #fff; }
.ps-jobs-pp select {
	border: 1px solid #d7dce3; border-radius: 8px; padding: 6px 10px;
	font-size: 13px; margin-left: 6px; background: #fff;
}

/* Stan pusty */
.ps-jobs-empty { padding: 48px 24px; text-align: center; }
.ps-jobs-empty p { margin: 0 0 8px; color: #475569; }
.ps-jobs-empty .ps-action-btn { display: inline-block; margin-top: 16px; text-decoration: none; }

/* Mobile: tabela w kartach – nagłówki kolumn jako etykiety przed wartością */
@media (max-width: 780px) {
	.ps-jobs-table thead { display: none; }
	.ps-jobs-table, .ps-jobs-table tbody, .ps-jobs-table tr, .ps-jobs-table td { display: block; width: 100%; }
	/* margin bez wartości bocznych – przy `width:100%` marginesy po 12 px
	   z każdej strony robiły kartę SZERSZĄ niż ekran i strona przewijała się
	   w bok. Hubert 03.08.2026, pkt 10.10: „nie wszystko mieści się na ekranie
	   telefonu". */
	.ps-jobs-table tr {
		border: 1px solid #eef1f5; border-radius: 12px; margin: 12px 0; padding: 6px 0;
	}
	.ps-jobs-table td {
		display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
		border-bottom: 1px solid #f8fafc; padding: 10px 14px; text-align: right;
		overflow-wrap: anywhere;
	}
	.ps-jobs-table td::before {
		content: attr(data-label); font-size: 12px; font-weight: 600; color: #64748b;
		text-align: left; flex-shrink: 0;
	}
	/* Te dwie reguły z widoku tabelarycznego rozpychały kartę na wąskim ekranie:
	   min-width tytułu i zakaz zawijania w kolumnie akcji. */
	.ps-cell-title { min-width: 0; }
	.ps-col-akcje { white-space: normal; }
	.ps-col-akcje .ps-act { display: inline-block; }
	.ps-jobs-table td.ps-col-akcje { flex-wrap: wrap; justify-content: flex-end; row-gap: 8px; }
	.ps-col-num { text-align: right; }
	.ps-jobs-foot { justify-content: center; }
	.ps-jobs-pager { margin: 0; }
}

/* ══════════════════════════════════════════════════════════════════════════
   PODSUMOWANIE OGŁOSZENIA – ekran przed wysłaniem (PDF Huberta 30.07.2026)
   ══════════════════════════════════════════════════════════════════════════ */
.ps-summary {
	max-width: 720px; margin: 0 auto 24px;
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	padding: 28px 30px; box-shadow: 0 2px 10px rgba(16,24,40,.04);
}
.ps-summary-title { font-size: 21px; color: #1f2937; margin: 0 0 6px; }
.ps-summary-lead { font-size: 14px; color: #64748b; margin: 0 0 22px; }

.ps-summary-list { margin: 0 0 22px; }
.ps-summary-row {
	display: flex; gap: 16px; padding: 11px 0; border-bottom: 1px solid #f1f5f9;
}
.ps-summary-row:last-child { border-bottom: none; }
.ps-summary-row dt {
	flex: 0 0 180px; font-size: 13px; font-weight: 600; color: #64748b; margin: 0;
}
.ps-summary-row dd { flex: 1; margin: 0; font-size: 14px; color: #1f2937; word-break: break-word; }

/* Blok publikacji – jedyna część ekranu, która zmieni się w 2027 */
.ps-summary-pub {
	border: 1px solid #d7dce3; border-radius: 12px; padding: 18px 20px; margin: 0 0 18px;
	background: #f8fafc;
}
.ps-summary-pub--free { border-color: #bbf7d0; background: #f0fdf4; }
.ps-summary-pub--package { border-color: #bfdbfe; background: #eff6ff; }
.ps-summary-pub-head {
	display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 4px;
}
.ps-summary-pub-label { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #64748b; }
.ps-summary-pub-price { font-size: 16px; font-weight: 700; color: var(--ps-green, #2e7d32); }
.ps-summary-pub-kind { display: block; font-size: 16px; color: #1f2937; }
.ps-summary-pub-note { font-size: 13px; color: #475569; margin: 8px 0 0; line-height: 1.5; }

.ps-summary-mod {
	display: flex; gap: 12px; align-items: flex-start;
	background: #fffbeb; border: 1px solid #fde68a; border-radius: 12px; padding: 14px 16px;
	color: #92400e;
}
.ps-summary-mod svg { flex-shrink: 0; margin-top: 2px; }
.ps-summary-mod strong { display: block; font-size: 14px; margin-bottom: 2px; }
.ps-summary-mod span { font-size: 13px; line-height: 1.5; }

.ps-preview-actions {
	max-width: 720px; margin: 0 auto 20px;
	display: flex; gap: 10px; flex-wrap: wrap;
}
.ps-preview-actions .ps-action-btn { flex: 1; min-width: 200px; }

/* Podgląd oferty – zwinięty, żeby nie przytłaczał podsumowania */
.ps-preview-details {
	max-width: 720px; margin: 0 auto 30px;
	border: 1px solid #e6e9ef; border-radius: 12px; background: #fff;
}
.ps-preview-details > summary {
	cursor: pointer; padding: 14px 20px; font-size: 14px; font-weight: 600;
	color: var(--ps-green, #2e7d32); list-style: none;
}
.ps-preview-details > summary::-webkit-details-marker { display: none; }
.ps-preview-details > summary::before { content: '▸ '; }
.ps-preview-details[open] > summary::before { content: '▾ '; }
.ps-preview-details .job_listing_preview { padding: 0 20px 20px; }

/* Ekran potwierdzenia po wysłaniu */
.ps-submitted {
	max-width: 560px; margin: 40px auto; padding: 40px 32px; text-align: center;
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	box-shadow: 0 4px 18px rgba(16,24,40,.06);
}
.ps-submitted-ico { color: var(--ps-green, #2e7d32); margin-bottom: 14px; }
.ps-submitted h2 { font-size: 23px; color: #1f2937; margin: 0 0 14px; }
.ps-submitted p { font-size: 14px; line-height: 1.6; color: #475569; margin: 0 0 12px; }
.ps-submitted-pkg { color: #2563eb !important; font-weight: 600; }
.ps-submitted-actions {
	display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 24px;
}
.ps-submitted-actions .ps-action-btn { text-decoration: none; }

@media (max-width: 640px) {
	.ps-summary { padding: 20px 18px; }
	.ps-summary-row { flex-direction: column; gap: 4px; }
	.ps-summary-row dt { flex: none; }
	.ps-preview-actions .ps-action-btn { min-width: 100%; }
}

/* ══════════════════════════════════════════════════════════════════════════
   FORMULARZ OGŁOSZENIA – 4 sekcje (wytyczne Huberta 30.07.2026)
   Sekcje renderowane serwerowo przez job_manager/job-submit.php.
   ══════════════════════════════════════════════════════════════════════════ */
.ps-form-sec {
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	padding: 24px 26px; margin: 0 0 20px;
	box-shadow: 0 2px 10px rgba(16,24,40,.04);
}
.ps-form-sec-h {
	display: flex; align-items: center; gap: 10px;
	font-size: 16px; font-weight: 700; color: #1f2937;
	margin: 0 0 6px; padding-bottom: 12px; border-bottom: 1px solid #eef1f5;
}
/* Ikona sekcji w zielonym kwadracie – makieta 03.08.2026. Wcześniej ikona
   dostawała tylko kolor, bez tła; brak kwadratu potwierdzony przy przeglądzie
   adwersaryjnym 04.08.2026. */
.ps-form-sec-h .ps-sec-ico {
	color: var(--ps-green, #2e7d32); flex-shrink: 0;
	background: #eaf6ec; border-radius: 8px; padding: 6px; box-sizing: content-box;
}
.ps-form-sec-hint {
	font-size: 13px; color: #64748b; line-height: 1.5;
	margin: 0 0 16px; padding: 10px 12px;
	background: #f8fafc; border-radius: 8px;
}
.ps-form-sec fieldset { border: none; margin: 0 0 18px; padding: 0; }
.ps-form-sec fieldset:last-child { margin-bottom: 0; }
.ps-form-sec fieldset > label {
	display: block; font-size: 13px; font-weight: 600; color: #1f2937; margin: 0 0 6px;
}
.ps-form-sec .field small.description,
.ps-form-sec fieldset small.description {
	display: block; margin-top: 6px; font-size: 12px; color: #64748b; line-height: 1.5;
}

/* ⚠ ZNALEZIONE 04.08.2026: motyw rodzic (workscout/inc/customizer.php) woła
   `wp_deregister_style('select2')` na haku wp_enqueue_scripts z priorytetem
   PHP_INT_MAX – czyli po WSZYSTKICH innych hookach, łącznie z jakimkolwiek,
   który dałoby się dopisać z motywu potomnego. Sam select2.js NADAL się ładuje
   i inicjalizuje pole „Kategoria ogłoszenia" (select2-single), tylko bez ani
   jednej reguły CSS – widget renderował się bez wysokości, obramowania,
   dopasowania do pozostałych pól w tym samym wierszu. Zamiast walczyć
   z kolejnością hooków, stylujemy wprost strukturę DOM, którą generuje
   select2 – te reguły nie zależą od jego własnego arkusza w ogóle. */
.select2-container { width: 100% !important; }
.select2-container .select2-selection--single {
	height: auto !important; border: 1px solid #cbd5e1 !important; border-radius: 8px !important;
	padding: 11px 14px !important; box-sizing: border-box; display: block;
}
.select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0; line-height: 1.4; font-size: 14px; color: #1f2937;
}
.select2-container .select2-selection--single .select2-selection__arrow {
	height: 100%; top: 0; right: 8px;
}
.select2-container--open .select2-selection--single {
	border-color: var(--ps-green, #2e7d32) !important;
}
.select2-dropdown { border-color: #cbd5e1; border-radius: 8px; overflow: hidden; }
.select2-results__option--highlighted[aria-selected] { background: var(--ps-green, #2e7d32) !important; }

/* ══════════════════════════════════════════════════════════════════════════
   UKŁAD FORMULARZA OGŁOSZENIA WG MAKIETY HUBERTA (otrzymana 03.08.2026)
   Siatki kolumn, sekcja „Sposób aplikacji" i para pól wynagrodzenia.
   ══════════════════════════════════════════════════════════════════════════ */

/* Etykieta widoczna tylko dla czytników ekranu (np. drugie pole wynagrodzenia,
   które w makiecie nie ma własnego podpisu). */
.ps-sr-only {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Hubert 08.08.2026, runda 3, punkt 4.1: zdanie nadal wyglądało „rozstrzelone”
   mimo poprzedniej poprawki – bo ten div ma DWIE klasy naraz,
   "dashboard-headline ps-panel-headline" (patrz template-dashboard.php), a
   reguła motywu rodzica ".dashboard-headline span" (line-height:30px;
   margin-top:-10px) ma WYŻSZĄ specyficzność (klasa+element) niż sam
   ".ps-form-lead" (jedna klasa) – więc realnie wygrywała mimo że ładuje się
   wcześniej. Selektor z przodkiem podbija specyficzność i realnie nadpisuje. */
.ps-panel-headline .ps-form-lead { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: #64748b; }
.ps-panel-headline .ps-form-lead .req { color: #dc2626; font-weight: 700; }
.ps-form-sec-h .req { color: #dc2626; font-weight: 700; }
.ps-form-sec-suffix { font-size: 13px; font-weight: 400; color: #94a3b8; margin-left: 4px; }

/* Sekcja 1: Stanowisko | Kategoria | Lokalizacja w jednym wierszu, opis pod nimi. */
.ps-form-sec--podstawowe {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 20px;
}
.ps-form-sec--podstawowe > .ps-form-sec-h,
.ps-form-sec--podstawowe > .ps-form-sec-hint,
.ps-form-sec--podstawowe > .fieldset-job_description { grid-column: 1 / -1; }

/* Sekcja 3: cztery kolumny checkboxów obok siebie, w każdej lista pionowa. */
.ps-form-sec--zatrudnienie {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 20px;
}
.ps-form-sec--zatrudnienie > .ps-form-sec-h,
.ps-form-sec--zatrudnienie > .ps-form-sec-hint { grid-column: 1 / -1; }
.ps-form-sec--zatrudnienie .ps-checkbox-list,
.ps-form-sec--zatrudnienie .job-manager-term-checklist { display: block; }
.ps-form-sec--zatrudnienie .job-manager-term-checklist li { display: block; margin: 0 0 8px; }
.ps-form-sec--zatrudnienie .ps-checkbox-item { display: flex; margin: 0 0 8px; }

/* ⚠ ZNALEZIONE 04.08.2026 przy przeglądzie adwersaryjnym: „Wymiar pracy" i
   „Rodzaj umowy" to pola TAKSONOMII – renderuje je natywny szablon wtyczki
   (job-manager-term-checklist), bez ŻADNEGO stylu kafelka. „System pracy"
   i „Miejsce pracy / Tryb pracy" to moje własne pola (form-fields/checkbox-list-field.php,
   klasa .ps-checkbox-item) ze stylem kafelka z obwódką. Efekt: w tej samej
   sekcji dwie kolumny wyglądały jak gołe checkboxy z systemu, a dwie jak
   zaprojektowane przyciski – rażąca niespójność w jednym wierszu. Dajemy
   checklistom taksonomii dokładnie ten sam wygląd. */
.ps-form-sec--zatrudnienie .job-manager-term-checklist li label.selectit {
	display: flex; align-items: center; gap: 8px; cursor: pointer;
	border: 1px solid #d7dce3; border-radius: 10px; padding: 10px 14px;
	font-size: 14px; font-weight: 400; color: #1f2937;
	transition: border-color .15s, background .15s, opacity .15s;
}
.ps-form-sec--zatrudnienie .job-manager-term-checklist li label.selectit:hover {
	border-color: var(--ps-green, #2e7d32);
}
.ps-form-sec--zatrudnienie .job-manager-term-checklist input[type="checkbox"] {
	accent-color: var(--ps-green, #2e7d32); margin: 0;
}
.ps-form-sec--zatrudnienie .job-manager-term-checklist label.is-disabled {
	opacity: .45; cursor: not-allowed;
}

/* Sekcja 4: trzy kolumny; wakaty i wynagrodzenie w drugim wierszu. */
.ps-form-sec--dodatkowe {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 20px;
}
.ps-form-sec--dodatkowe > .ps-form-sec-h,
.ps-form-sec--dodatkowe > .ps-form-sec-hint { grid-column: 1 / -1; }
/* „Wynagrodzenie brutto (PLN)" to jedna etykieta nad parą pól od/do –
   dlatego oba fieldsety zajmują razem dwie kolumny i stoją w jednym wierszu. */
.ps-form-sec--dodatkowe > .fieldset-salary_min { grid-column: 2 / 3; }
.ps-form-sec--dodatkowe > .fieldset-salary_max { grid-column: 3 / 4; align-self: end; }
.fieldset-salary_min .field, .fieldset-salary_max .field { display: flex; align-items: center; gap: 8px; }
.fieldset-salary_min .field::before { content: 'od'; font-size: 13px; color: #64748b; flex-shrink: 0; }
.fieldset-salary_max .field::before { content: 'do'; font-size: 13px; color: #64748b; flex-shrink: 0; }
.fieldset-salary_min .field::after,
.fieldset-salary_max .field::after { content: 'zł'; font-size: 13px; color: #64748b; flex-shrink: 0; }
.fieldset-salary_min .field input, .fieldset-salary_max .field input { min-width: 0; }

/* ── Sekcja 2: „Sposób aplikacji" ─────────────────────────────────────────
   Radio i jego pole w jednym wierszu, checkbox szybkiej aplikacji po prawej.
   Oba warianty widoczne cały czas; nieaktywny wyszarzony (klasa is-active
   sterowana przez JS w inc/formularz-ogloszenia.php). */
.ps-apply-legend { font-size: 13px; font-weight: 600; color: #1f2937; margin: 0 0 14px; }
.ps-apply-legend .req { color: #dc2626; }
/* ⚠ ZNALEZIONE 04.08.2026: każdy .ps-apply-row jest WŁASNYM grid-container,
   niezależnym od drugiego wiersza. Trzecia kolumna (checkbox „Szybka aplikacja")
   istnieje tylko w wierszu e-mail; w wierszu „Link" nic jej nie zajmuje, więc
   przy `auto` ten pusty tor zapadał się do 0px, a środkowa kolumna (pole
   tekstowe) przejmowała całą zwolnioną przestrzeń – pole linku wychodziło
   wyraźnie szersze niż pole e-mail, mimo identycznego markupu kolumn. Stała
   szerokość zamiast `auto` naprawia to niezależnie od tego, czy dany wiersz
   ma w trzeciej kolumnie jakąkolwiek treść. */
.ps-apply-row {
	display: grid; grid-template-columns: 210px minmax(0, 1fr) 190px;
	align-items: start; gap: 12px 16px; margin: 0 0 16px;
}
.ps-apply-row:last-of-type { margin-bottom: 0; }
.ps-apply-radio {
	display: flex; align-items: center; gap: 9px; cursor: pointer;
	font-size: 14px; color: #1f2937; padding-top: 11px;
}
.ps-apply-radio input { accent-color: var(--ps-green, #2e7d32); width: 17px; height: 17px; flex-shrink: 0; }
.ps-apply-pole input[type="text"] { width: 100%; }
.ps-apply-pole .description { display: block; margin-top: 6px; font-size: 12px; color: #64748b; }

/* Wariant niewybrany – wyraźnie przygaszony, żeby zmiana po kliknięciu radio
   była WIDOCZNA (Hubert, punkt 7.4: „Nie widzę aby coś się zmieniało"). */
.ps-apply-row:not(.is-active) .ps-apply-pole { opacity: .45; }
.ps-apply-row:not(.is-active) .ps-apply-pole input { background: #f8fafc; }

.ps-apply-quick {
	display: flex; align-items: center; gap: 8px; cursor: pointer;
	font-size: 13px; color: #1f2937; padding-top: 12px; white-space: nowrap;
}
.ps-apply-quick input { accent-color: var(--ps-green, #2e7d32); width: 16px; height: 16px; }
.ps-info {
	display: inline-flex; align-items: center; justify-content: center;
	width: 16px; height: 16px; border-radius: 50%; border: 1px solid #cbd5e1;
	font-size: 11px; font-style: italic; font-weight: 700; color: #64748b; cursor: help;
}

/* Notka pod przyciskami (makieta: kłódka + zdanie o szkicu). */
.ps-form-foot {
	display: flex; align-items: center; gap: 7px;
	font-size: 12.5px; color: #94a3b8; margin: 0 0 8px;
}
.ps-form-foot svg { flex-shrink: 0; }

/* Ikony w przyciskach akcji. */
.ps-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }

@media (max-width: 1100px) {
	.ps-form-sec--zatrudnienie { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.ps-form-sec--podstawowe,
	.ps-form-sec--dodatkowe { grid-template-columns: 1fr; }
	.ps-form-sec--dodatkowe > .fieldset-salary_min,
	.ps-form-sec--dodatkowe > .fieldset-salary_max { grid-column: auto; }
	.ps-apply-row { grid-template-columns: 1fr; gap: 8px; }
	.ps-apply-radio, .ps-apply-quick { padding-top: 0; }
}
@media (max-width: 560px) {
	.ps-form-sec--zatrudnienie { grid-template-columns: 1fr; }
}

/* Lista checkboxów (System pracy – maks. 2 opcje) */
.ps-checkbox-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ps-checkbox-item {
	display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
	border: 1px solid #d7dce3; border-radius: 10px; padding: 10px 14px;
	font-size: 14px; font-weight: 400; color: #1f2937;
	transition: border-color .15s, background .15s, opacity .15s;
}
.ps-checkbox-item:hover { border-color: var(--ps-green, #2e7d32); }
.ps-checkbox-item input { accent-color: var(--ps-green, #2e7d32); margin: 0; }
.ps-checkbox-item.is-disabled { opacity: .45; cursor: not-allowed; }
.ps-checkbox-item.is-disabled:hover { border-color: #d7dce3; }

/* Limit zaznaczeń osiągnięty – wyszarzamy też pola z taksonomii */
.ps-form-sec label.is-disabled { opacity: .45; cursor: not-allowed; }

/* ── Stabilny układ: miejsce na komunikaty rezerwowane z góry ──────────────
   Podpowiedzi, błędy i liczniki znaków pojawiają się dopiero po interakcji.
   Bez zarezerwowanej wysokości pola przeskakiwały w dół w trakcie pisania –
   zgłoszone 02.08.2026. Stała wysokość sprawia, że układ stoi w miejscu
   niezależnie od tego, czy komunikat jest widoczny. */
.ps-reg-row, .ps-billing-row, .ps-form-sec fieldset { position: relative; }
.ps-billing-hint, .ps-billing-error, .ps-charcount,
.ps-form-sec .field small.description, .ps-form-sec fieldset small.description {
	min-height: 17px;
}

/* Licznik znaków pod stanowiskiem i opisem */
/* Placeholder opisu – TinyMCE nie ma go natywnie (patrz komentarz w JS,
   inc/formularz-ogloszenia.php). Pozycja liczona od góry pola z odstępem na
   pasek narzędzi edytora; kliknięcie w placeholder oddaje focus edytorowi. */
.fieldset-job_description .field { position: relative; }
.ps-desc-placeholder {
	position: absolute; top: 46px; left: 13px; right: 13px;
	color: #94a3b8; font-size: 14px; line-height: 1.6;
	pointer-events: none; cursor: text;
}
.ps-charcount { display: block; margin-top: 6px; font-size: 12px; color: #94a3b8; text-align: right; }
.ps-charcount.is-over { color: #dc2626; font-weight: 600; }
.ps-charcount.is-ok   { color: var(--ps-green, #2e7d32); }

/* Przyciski formularza – zawsze na dole, nigdy nad polami */
.ps-form-actions {
	display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
	margin: 26px 0 8px; padding-top: 20px; border-top: 1px solid #eef1f5;
}

/* Spinner WP Job Managera – ma się pokazywać DOPIERO po kliknięciu „Wyślij".
   Motyw nie ukrywał go domyślnie, więc obok przycisków cały czas kręciły się
   cztery kropki, wyglądające jakby formularz w kółko coś ładował. */
.ps-form-actions .spinner {
	display: none;
	width: 20px; height: 20px; flex-shrink: 0;
	background-size: 20px 20px; background-repeat: no-repeat;
}
.ps-action-btn {
	border: none; cursor: pointer; font-size: 14px; font-weight: 600;
	padding: 13px 26px; border-radius: 10px; transition: background .15s, color .15s;
}
.ps-action-btn--primary   { background: var(--ps-green, #2e7d32); color: #fff; }
.ps-action-btn--primary:hover { background: #1b5e20; }
.ps-action-btn--secondary { background: #fff; color: #1f2937; border: 1px solid #d7dce3; }
.ps-action-btn--secondary:hover { border-color: var(--ps-green, #2e7d32); color: var(--ps-green, #2e7d32); }
.ps-action-btn--draft     { background: #f1f5f9; color: #475569; }
.ps-action-btn--draft:hover { background: #e2e8f0; }
/* „Anuluj" był wypchnięty na prawą krawędź (margin-left:auto) i bez tła, więc
   nie czytał się jako przycisk – Hubert 03.08.2026 pkt 6.3: „jest tak oddalony,
   że dopiero na sam koniec testów go zobaczyłem". Teraz stoi w rzędzie
   z pozostałymi i ma taki sam kształt. */
.ps-action-btn--cancel {
	background: #fff; color: #64748b; text-decoration: none;
	border: 1px solid #d7dce3; padding: 13px 26px;
	display: inline-flex; align-items: center;
}
.ps-action-btn--cancel:hover { color: #dc2626; border-color: #dc2626; }

/* Spinner na koniec rzędu, żeby nie rozpychał przycisków. */
.ps-form-actions .spinner { margin-left: auto; }

/* Numer sekcji + gwiazdka przy polach wymaganych (Hubert pkt 6.1 i 13.4). */
.ps-form-sec-nr { color: var(--ps-green, #2e7d32); }
.ps-form-sec fieldset > label .req { color: #dc2626; font-weight: 700; margin-left: 2px; }
.ps-form-sec fieldset > label small { color: #94a3b8; font-weight: 400; }

@media (max-width: 640px) {
	.ps-form-sec { padding: 18px 16px; }
	.ps-form-actions > * { width: 100%; text-align: center; }
	.ps-action-btn--cancel { margin-left: 0; }
}

/* ══════════════════════════════════════════════════════════════════════════
   USTAWIENIA KONTA – scalony ekran (makieta Huberta 30.07.2026)
   4 sekcje: Logo firmy / Dane do logowania / Dane do rozliczeń / Dane kontaktowe.
   Reużywa siatki .ps-billing-row (label po lewej, pole po prawej) ze starego
   formularza rozliczeń, dokłada nagłówki sekcji i blok logo.
   ══════════════════════════════════════════════════════════════════════════ */
.ps-settings-wrap { max-width: 760px; }

.ps-settings-section {
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	padding: 26px 28px; margin: 0 0 20px;
	box-shadow: 0 2px 10px rgba(16,24,40,.04);
}
.ps-settings-h {
	font-size: 16px; font-weight: 700; color: #1f2937;
	margin: 0 0 20px; padding-bottom: 12px; border-bottom: 1px solid #eef1f5;
}
.ps-settings-sub { font-size: 12px; font-weight: 400; color: #94a3b8; }

/* Blok logo */
.ps-logo-row { display: flex; gap: 22px; align-items: flex-start; flex-wrap: wrap; }
.ps-logo-preview {
	width: 148px; height: 128px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 12px;
	color: #94a3b8; overflow: hidden;
}
.ps-logo-preview.has-logo { background: #fff; }
.ps-logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ps-logo-meta { flex: 1; min-width: 240px; }
.ps-logo-meta p { margin: 0 0 6px; font-size: 14px; color: #475569; line-height: 1.5; }
.ps-logo-hint { color: #94a3b8 !important; font-size: 13px !important; }
.ps-logo-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; align-items: stretch; }

/* „Dodaj logo" to <label> (opakowuje input[type=file]), a „Usuń logo" to <button>.
   Przeglądarka daje <button> własny font (nie dziedziczy po rodzicu!), inny
   line-height i box-sizing – przez co przyciski miały różną wysokość, a tekst
   na buttonie wyglądał na grubszy. Poniżej zerujemy te różnice, żeby oba
   elementy renderowały się identycznie. */
.ps-logo-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	cursor: pointer;
	font-family: inherit;          /* <button> domyślnie NIE dziedziczy kroju */
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;              /* wspólna wysokość linii dla label i button */
	padding: 11px 20px;
	min-height: 42px;
	margin: 0;
	border-radius: 10px;
	background: #fff;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	text-align: center;
	transition: background .15s, color .15s;
}
.ps-logo-btn > span { display: block; line-height: inherit; }
.ps-logo-btn--add { border: 1px solid var(--ps-green, #2e7d32); color: var(--ps-green, #2e7d32); }
.ps-logo-btn--del { border: 1px solid #dc2626; color: #dc2626; }

/* Tekst „Dodaj logo" siedzi w <span> wewnątrz <label>. Motyw ma własne reguły
   na `label span`, które przy najechaniu wygrywały kaskadę i zostawiały czarny
   napis na zielonym tle. Kolor ustawiamy więc również na samym <span>. */
.ps-logo-btn--add:hover,
.ps-logo-btn--add:hover > span { background-color: transparent; color: #fff; }
.ps-logo-btn--add:hover { background: var(--ps-green, #2e7d32); }
.ps-logo-btn--del:hover,
.ps-logo-btn--del:hover > span { color: #fff; }
.ps-logo-btn--del:hover { background: #dc2626; }
.ps-logo-filename { display: block; margin-top: 10px; font-size: 12px; color: var(--ps-green, #2e7d32); }

/* Rezydencja podatkowa – wyszarzona (obsługujemy tylko Polskę) */
.ps-settings-form select[disabled] {
	background: #f1f5f9; color: #64748b; cursor: not-allowed; width: 100%;
	border: 1px solid #e2e8f0; border-radius: 10px; padding: 12px 14px; font-size: 14px;
}

/* Przełącznik Firma / Osoba prywatna – ukrywa pola nieistotne dla wybranego typu */
.ps-settings-form .ps-lbl-osoba { display: none; }
.ps-settings-form.is-osoba .ps-lbl-firma { display: none; }
.ps-settings-form.is-osoba .ps-lbl-osoba { display: block; }
.ps-settings-form.is-osoba .ps-row-nip { display: none; }

.ps-settings-actions { text-align: center; margin: 26px 0 8px; }
.ps-settings-save {
	background: var(--ps-green, #2e7d32); color: #fff; border: none; cursor: pointer;
	font-size: 15px; font-weight: 600; padding: 14px 46px; border-radius: 10px;
	transition: background .15s;
}
.ps-settings-save:hover { background: #1b5e20; }

@media (max-width: 640px) {
	.ps-settings-section { padding: 20px 18px; }
	.ps-logo-row { flex-direction: column; }
}

/* ── Strona „Kup pakiet" – komunikat do startu sprzedaży (2027) ───────────── */
.ps-soon-box {
	max-width: 560px; margin: 32px auto; padding: 36px 32px;
	background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
	box-shadow: 0 4px 18px rgba(16,24,40,.06); text-align: center;
}
.ps-soon-ico { color: var(--ps-green, #2e7d32); margin-bottom: 14px; }
.ps-soon-box h2 { font-size: 21px; color: #1f2937; margin: 0 0 14px; }
.ps-soon-box p { font-size: 14px; line-height: 1.6; color: #475569; margin: 0 0 12px; }
.ps-soon-cta { margin-top: 22px; }
.ps-soon-btn {
	display: inline-block; background: var(--ps-green, #2e7d32); color: #fff !important;
	font-size: 14px; font-weight: 600; text-decoration: none;
	padding: 12px 26px; border-radius: 10px; transition: background .15s;
}
.ps-soon-btn:hover { background: #1b5e20; }

/* Drugie wyjście ze strony pakietów – Hubert 03.08.2026 pkt 4.5: „problem
   z powrotem do panelu pracodawcy". Menu wraca (template_include), ale na
   telefonie sidebar jest zwinięty, więc dokładamy jawny link. */
.ps-soon-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; }
.ps-soon-back {
	display: inline-block; background: #fff; color: var(--ps-green, #2e7d32) !important;
	font-size: 14px; font-weight: 600; text-decoration: none;
	padding: 11px 24px; border-radius: 10px; border: 1px solid var(--ps-green, #2e7d32);
	transition: background .15s, color .15s;
}
.ps-soon-back:hover { background: var(--ps-green, #2e7d32); color: #fff !important; }

/* Nagłówek sekcji – odsunięty od krawędzi, wyrównany do etykiet pozycji */
.ps-panel-navtitle {
	font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: #94a3b8; margin: 4px 0 12px; padding: 0 16px;
}

/* Lista pozycji */
.ps-panel-nav { list-style: none; margin: 0; padding: 0; }
.ps-panel-nav.ps-panel-logout {
	margin-top: 18px; padding-top: 14px; border-top: 1px solid #eef0f4;
}
.ps-panel-item { margin: 0 0 4px; padding: 0; border: 0; }
.ps-panel-item > a {
	display: flex; align-items: center; gap: 12px;
	padding: 11px 14px; border-radius: 10px;
	color: #334155; font-size: 15px; font-weight: 600; text-decoration: none;
	border-left: 3px solid transparent; transition: background .15s, color .15s;
}
.ps-panel-item > a:hover { background: #f3f6f4; color: var(--ps-green, #2e7d32); }
/* Kotwica pozycji: twardo poziomo (ikona OBOK tekstu) – bije regułę WorkScouta */
.ps-employer-panel .ps-panel-nav .ps-panel-item > a { display: flex; flex-direction: row; align-items: center; gap: 12px; text-align: left; }
.ps-panel-item .ps-panel-ico { flex: 0 0 22px; width: 22px; height: 22px; }
.ps-panel-item.is-active > a {
	background: #eef7f0; color: var(--ps-green, #2e7d32);
	border-left-color: var(--ps-green, #2e7d32); font-weight: 700;
}
.ps-panel-logout .ps-panel-item > a { color: #64748b; }
.ps-panel-logout .ps-panel-item > a:hover { color: #dc2626; background: #fef2f2; }

/* Nagłówek treści panelu */
.ps-panel-headline h1 { font-size: 26px; font-weight: 800; color: #1f2937; margin: 0 0 4px; }
.ps-panel-headline > span { color: #64748b; font-size: 15px; }

/* Marta 09.08.2026 (runda finałowa, priorytet Huberta): komunikat po
   "Zapisz szkic" ledwo widoczny – przyczyna: WP Job Manager wypisuje go
   w <div class="job-manager-info">, a ta klasa (w odróżnieniu od
   .job-manager-message/.job-manager-error, które motyw rodzic ładnie
   stylizuje kolorową ramką) nie ma w całym motywie ANI JEDNEJ reguły CSS –
   renderuje się jako gołe, niestylowane zdanie. Ten sam wygląd co
   .ps-billing-ok (zielony "sukces"), żeby było jednoznacznie widać, że
   coś się zapisało. */
.job-manager-info {
	border-radius: 10px; padding: 14px 18px; margin: 0 0 20px;
	font-weight: 600; font-size: 15px; line-height: 1.5;
	background: #e8f5e9; color: #16a34a; border: 1px solid #bbf7d0;
}
.job-manager-info a { color: #16a34a; text-decoration: underline; }

/* ── Dane rozliczeniowe – formularz (ZADANIE 2, mail Huberta) ── */
.ps-billing-wrap { max-width: 760px; }
.ps-billing-notice { border-radius: 10px; padding: 12px 16px; margin: 0 0 18px; font-weight: 600; font-size: 14px; }
.ps-billing-ok  { background: #e8f5e9; color: #16a34a; border: 1px solid #bbf7d0; }
.ps-billing-err { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.ps-billing-form {
    background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
    box-shadow: 0 2px 12px rgba(16,24,40,.06); padding: 26px 28px;
}
.ps-billing-intro { color: #64748b; font-size: 14px; margin: 0 0 20px; }
.ps-billing-toggle { display: flex; gap: 26px; margin: 0 0 22px; }
.ps-billing-radio { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: #334155; cursor: pointer; }
.ps-billing-radio input { accent-color: var(--ps-green, #2e7d32); width: 16px; height: 16px; }
.ps-billing-row { display: grid; grid-template-columns: 210px 1fr; gap: 16px; align-items: start; margin: 0 0 16px; }
.ps-billing-label { font-weight: 700; color: #1f2937; font-size: 14px; padding-top: 12px; }
.ps-billing-label .req { color: #dc2626; }
.ps-billing-field input {
    width: 100%; box-sizing: border-box; border: 1px solid #d7dce3;
    border-radius: 10px; padding: 12px 14px; font-size: 14px; color: #1f2937;
    transition: border-color .15s ease;
}
.ps-billing-field input:focus { border-color: var(--ps-green, #2e7d32); outline: none; }
.ps-billing-field input.has-err { border-color: #dc2626; }
.ps-billing-error { display: block; color: #dc2626; font-size: 12px; margin-top: 5px; }
.ps-billing-verified { display: block; color: #16a34a; font-size: 12px; margin-top: 5px; font-weight: 600; }
.ps-billing-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; }
.ps-billing-cancel {
    display: inline-block; padding: 12px 26px; border-radius: 10px; font-weight: 700; font-size: 14px;
    text-decoration: none; color: #64748b; background: #fff; border: 1px solid #d7dce3;
}
.ps-billing-cancel:hover { background: #f8fafc; color: #334155; }
.ps-billing-save {
    padding: 12px 30px; border-radius: 10px; font-weight: 700; font-size: 14px; cursor: pointer;
    color: #fff; background: var(--ps-green, #2e7d32); border: 0;
}
.ps-billing-save:hover { background: var(--ps-green-dark, #1b5e20); }
.ps-billing-form.is-firma .ps-lbl-osoba { display: none; }
.ps-billing-form.is-osoba .ps-lbl-firma { display: none; }
.ps-billing-form.is-osoba .ps-row-nip  { display: none; }
@media (max-width: 640px) {
    .ps-billing-row { grid-template-columns: 1fr; gap: 6px; }
    .ps-billing-label { padding-top: 0; }
    .ps-billing-actions { flex-direction: column-reverse; }
    .ps-billing-cancel, .ps-billing-save { width: 100%; text-align: center; box-sizing: border-box; }
}

/* ── Firma publikująca ogłoszenie – lista firm (Model B, Hubert 2026-07) ── */
.ps-companies { max-width: 820px; }
.ps-companies-intro { color: #64748b; font-size: 14px; margin: 0 0 18px; }
.ps-companies-empty {
    background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 12px;
    padding: 22px; text-align: center; color: #64748b; margin-bottom: 18px;
}
.ps-companies-list { display: flex; flex-direction: column; gap: 12px; }
.ps-company-card {
    display: flex; align-items: center; gap: 16px;
    background: #fff; border: 1px solid #e6e9ef; border-radius: 14px;
    box-shadow: 0 2px 12px rgba(16,24,40,.06); padding: 16px 18px;
}
.ps-company-logo {
    flex: 0 0 56px; width: 56px; height: 56px; border-radius: 10px; overflow: hidden;
    display: flex; align-items: center; justify-content: center; background: #eef7f0;
}
.ps-company-logo img { width: 56px; height: 56px; object-fit: cover; display: block; }
.ps-company-initial { font-size: 24px; font-weight: 700; color: var(--ps-green, #2e7d32); }
.ps-company-main { flex: 1 1 auto; min-width: 0; }
.ps-company-name { font-size: 16px; font-weight: 700; color: #1f2937; line-height: 1.3; }
.ps-company-status { font-size: 13px; color: #64748b; margin-top: 3px; }
.ps-company-actions { flex: 0 0 auto; display: flex; gap: 8px; }
.ps-company-act {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 9px; font-size: 13px; font-weight: 600;
    text-decoration: none; border: 1px solid #d7dce3; color: #334155; background: #fff;
    transition: background .15s, color .15s, border-color .15s;
}
.ps-company-act:hover { background: #f3f6f4; }
.ps-act-view:hover  { color: var(--ps-green, #2e7d32); border-color: var(--ps-green, #2e7d32); }
.ps-act-delete { color: #dc2626; border-color: #f3c4c4; }
.ps-act-delete:hover { background: #fef2f2; }
.ps-company-act.is-disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }
.ps-companies-notice { border-radius: 10px; padding: 12px 16px; margin: 0 0 16px; font-size: 14px; font-weight: 600; }
.ps-companies-notice-err { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.ps-company-add {
    display: inline-block; margin-top: 18px; padding: 12px 22px; border-radius: 10px;
    background: var(--ps-orange, #F57C00); color: #fff; font-weight: 700; font-size: 14px; text-decoration: none;
}
.ps-company-add:hover { background: var(--ps-orange-dark, #E56A00); color: #fff; }
.ps-companies-limit {
    margin-top: 14px; color: #a16207; background: #fef9c3; border: 1px solid #fde68a;
    border-radius: 10px; padding: 10px 14px; font-size: 13px;
}
@media (max-width: 640px) {
    .ps-company-card { flex-wrap: wrap; }
    .ps-company-actions { flex: 1 1 100%; }
    .ps-company-act span { display: none; }
    .ps-company-act { padding: 9px 12px; }
}

/* Wybór firmy (company_id) jako natywny select – fix „odbijania" scrolla przy chosen.
   Styl zbliżony do pozostałych pól formularza. */
select.ps-native-select {
    display: block !important; width: 100%; box-sizing: border-box;
    border: 1px solid #d7dce3; border-radius: 8px; padding: 12px 14px;
    font-size: 15px; color: #1f2937; background: #fff; line-height: 1.4;
    height: auto; -webkit-appearance: menulist; appearance: menulist; cursor: pointer;
}
select.ps-native-select:focus { border-color: var(--ps-green, #2e7d32); outline: none; }

/* Typ konta pracodawcy (Standard/Agencyjne) w formularzu rejestracji – Model B */
.ps-acctype { margin: 0 0 16px; }
.ps-acctype-title { font-size: 13px; font-weight: 700; color: #1f2937; margin: 0 0 8px; }
.ps-acctype-opt {
    display: flex; align-items: flex-start; gap: 10px; cursor: pointer;
    border: 1px solid #d7dce3; border-radius: 12px; padding: 12px 14px; margin: 0 0 8px;
    transition: border-color .15s, background .15s;
}
.ps-acctype-opt:hover { border-color: var(--ps-green, #2e7d32); }
.ps-acctype-opt input { margin-top: 3px; accent-color: var(--ps-green, #2e7d32); }
.ps-acctype-tx { display: flex; flex-direction: column; line-height: 1.35; flex: 1; }
.ps-acctype-tx strong { font-size: 15px; color: #1f2937; }
.ps-acctype-tx small { font-size: 12px; color: #64748b; }
.ps-acctype-help {
    display: inline-flex; align-items: center; justify-content: center;
    width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0; margin-top: 1px;
    font-size: 11px; font-weight: 700; line-height: 1;
    background: #e2e8f0; color: #64748b; cursor: help;
    transition: background .15s, color .15s;
}
.ps-acctype-help:hover { background: var(--ps-green, #2e7d32); color: #fff; }

/* ── WC „Moje konto" (Zamówienia / Ustawienia konta) wciągnięte w panel ──
   Ukrywamy natywną nawigację WC (nawigujemy własnym sidebarem), content na pełną
   szerokość, formularze + tabele w stylu portalu. Scope .ps-employer-panel –
   poza panelem (checkout itp.) WC zostaje natywne. */
.ps-employer-panel .woocommerce-MyAccount-navigation { display: none !important; }
.ps-employer-panel .woocommerce-MyAccount-content {
	width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important;
}
.ps-employer-panel .woocommerce { box-sizing: border-box; }

/* Pola formularza (edit-account) */
.ps-employer-panel .woocommerce form .form-row label,
.ps-employer-panel .woocommerce fieldset legend {
	font-weight: 700; color: #1f2937; font-size: 14px;
}
.ps-employer-panel .woocommerce form .form-row input.input-text,
.ps-employer-panel .woocommerce-EditAccountForm input {
	width: 100%; box-sizing: border-box;
	border: 1px solid #d7dce3; border-radius: 10px; padding: 12px 14px; font-size: 14px;
}
.ps-employer-panel .woocommerce form .form-row input.input-text:focus,
.ps-employer-panel .woocommerce-EditAccountForm input:focus {
	border-color: var(--ps-green, #2e7d32); outline: none;
}
.ps-employer-panel .woocommerce fieldset {
	border: 1px solid #eef0f4; border-radius: 12px; padding: 18px 20px; margin-top: 18px;
}

/* Przyciski WC → portalowy zielony */
.ps-employer-panel .woocommerce button.button,
.ps-employer-panel .woocommerce a.button {
	background: var(--ps-green, #2e7d32) !important; color: #fff !important;
	border: 0 !important; border-radius: 10px !important;
	font-weight: 700 !important; padding: 12px 26px !important;
}
.ps-employer-panel .woocommerce button.button:hover,
.ps-employer-panel .woocommerce a.button:hover { background: var(--ps-green-dark, #1b5e20) !important; }

/* Tabela zamówień */
.ps-employer-panel .woocommerce table.shop_table {
	border: 1px solid #e6e9ef; border-radius: 12px; border-collapse: separate;
	border-spacing: 0; overflow: hidden;
}
.ps-employer-panel .woocommerce table.shop_table thead th {
	background: #f3f6f4; color: #1f2937; font-weight: 700;
}
.ps-employer-panel .woocommerce-message,
.ps-employer-panel .woocommerce-info {
	border-top-color: var(--ps-green, #2e7d32);
}

/* plakietka statusu ogłoszenia */
.dashboard-status-button {
    display: inline-block; padding: 3px 12px; border-radius: 999px;
    font-size: 12px; font-weight: 700; margin-left: 8px; line-height: 1.6;
}
/* UWAGA: selektory statusu MUSZĄ być zawężone do .dashboard-status-button.
   Gołe .status-publish/.status-draft kolidują z klasami post_class() WP
   (każdy <article> opublikowany ma .status-publish) → malowały tło treści! */
.dashboard-status-button { background: #f1f5f9; color: #64748b; }
.dashboard-status-button.green,  .dashboard-status-button.status-publish { background: #e8f5e9; color: #16a34a; }
.dashboard-status-button.yellow, .dashboard-status-button.status-pending,
.dashboard-status-button.status-pending_payment { background: #fef9c3; color: #a16207; }
.dashboard-status-button.red,    .dashboard-status-button.status-expired { background: #fee2e2; color: #dc2626; }
.dashboard-status-button.gray,   .dashboard-status-button.status-draft   { background: #f1f5f9; color: #64748b; }

/* przyciski akcji w panelu – pomarańczowy CTA, szare drugorzędne */
.dashboard-box .button,
.buttons-to-right .button {
    border-radius: 9px !important; font-weight: 600 !important;
}
.dashboard-box .button:not(.gray),
.buttons-to-right .button:not(.gray) {
    background: var(--ps-orange, #F57C00) !important; color: #fff !important; border: 0 !important;
}
.dashboard-box .button:not(.gray):hover,
.buttons-to-right .button:not(.gray):hover {
    background: var(--ps-orange-dark, #E65100) !important;
}
.dashboard-box .button.gray {
    background: #eef1f5 !important; color: #475569 !important; border: 0 !important;
}
.dashboard-box .button.gray:hover { background: #e2e8f0 !important; }
/* przycisk "Dodaj ogłoszenie" pod listą ogłoszeń – pomarańczowy CTA portalu */
.dashboard-box .button.margin-top-30,
#job-manager-job-dashboard .button.margin-top-30,
.jm-dashboard .button.margin-top-30,
.button.margin-top-30 {
    display: inline-block; margin-top: 22px;
    background: var(--ps-orange, #F57C00) !important; color: #fff !important;
    border: 0 !important; border-radius: 9px !important;
    font-weight: 600 !important; padding: 13px 28px !important; text-decoration: none !important;
}
.dashboard-box .button.margin-top-30:hover,
.button.margin-top-30:hover { background: var(--ps-orange-dark, #E65100) !important; }

/* ══════════════════════════════════════════════════════════════════════
   DROPDOWNY (select) – ujednolicony styl portalu (zamiast workscoutowego)
   Własna strzałka SVG + ramka + zaokrąglenie + focus zielony.
   .job_manager_form obejmuje formularz oferty ORAZ firmy (oba na frameworku WPJM).
   ══════════════════════════════════════════════════════════════════════ */
.job_manager_form select,
.ps-search-wrap select,
.ps-homepage select,
.job_filters select,
.widget select,
.single-job_listing .filter select,
select.postform,
select.orderby,
.dashboard-box select {
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center; background-size: 14px;
    border: 1px solid #d7dce3; border-radius: 10px;
    padding: 12px 40px 12px 14px; font-size: 14px; color: #1f2937;
    line-height: 1.4; height: auto; cursor: pointer; box-shadow: none;
}
.job_manager_form select:focus,
.ps-search-wrap select:focus,
.ps-homepage select:focus,
.job_filters select:focus,
.widget select:focus,
.dashboard-box select:focus {
    border-color: var(--ps-green, #2e7d32); outline: none;
}

/* Profil firmy: gdy brak ocen, nie pokazujemy w ogóle etykiety "Brak ocen"
   (Hubert 10.08.2026) - zamiast tłumaczyć tekst, po prostu go ukrywamy. */
.company-not-rated { display: none !important; }

/* Panel pracodawcy (mobile): przycisk "Menu panelu" - zielony zamiast
   domyślnego szarego z motywu nadrzędnego (Hubert 11.08.2026). */
a.dashboard-responsive-nav-trigger {
    background-color: var(--ps-green, #2E7D32) !important;
}

/* Cookie consent: style zarządzane przez CookieYes (customizer w WP Admin). */
