/*
 * Odświeżenie wizualne 2026 — runda 2, wyraźniej.
 * Te same kolory marki (#337ab7 niebieski, #107c10 zielony), ta sama czcionka
 * (Source Sans Pro) — ale: nowy spójny ciemny nagłówek (jeden pasek zamiast
 * dwóch), sekcja hero na stronie głównej, mocniejsze cienie/zaokrąglenia na
 * kartach ogłoszeń, więcej przestrzeni.
 * Ładowany jako dodatkowy plik PO app.css (nadpisuje przez kaskadę),
 * żeby nie ruszać niekompilowalnego SASS/Vue w tym projekcie.
 */

:root {
    --refresh-radius: 12px;
    --refresh-radius-sm: 8px;
    --refresh-shadow: 0 2px 6px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.06);
    --refresh-shadow-hover: 0 10px 24px rgba(0,0,0,0.16), 0 4px 8px rgba(0,0,0,0.1);
    --refresh-border: #e3e3e3;
    --refresh-dark: #14181f;
    --refresh-dark-2: #1d2430;
    /* Strona ma ręcznie dobrane kolory (w tym własne ciemne sekcje) — mówimy
       przeglądarce, że to schemat jasny, żeby Chrome/Android nie nakładał
       automatycznego "wymuszonego ciemnego motywu" na wierzch (podwójne
       zaciemnienie robiło tekst/obrazki nieczytelne przy ciemnym motywie
       przeglądarki). */
    color-scheme: light;
}

/* ================== NAGŁÓWEK — spójny, ciemny, jeden pasek ================== */

body > div#app > header {
    background-color: var(--refresh-dark) !important;
    height: 84px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flex !important;
    align-items: center;
    box-shadow: 0 2px 16px rgba(0,0,0,0.25);
}
body > div#app > header > .container {
    width: 100%;
}

body > div#app > header #logo {
    background-image: url(/images/logo-netgun-white.png) !important;
    width: 130px !important;
    height: 51px !important;
}

body > div#app > header > .container > .row > div a,
body > div#app > header > .container > .row > div p,
body > div#app > header > .container > .row > div small {
    color: #e8eaed !important;
}
body > div#app > header > .container > .row > div a:hover {
    color: #ffffff !important;
    text-decoration: underline;
}

body > div#app > header #mobile-menu-toggle svg g rect {
    fill: #fff !important;
}

/* Wyszukiwarka w nagłówku — biała, wyraźniejsza, na ciemnym tle */
body > div#app > header .header-search-form {
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    border-radius: var(--refresh-radius-sm);
    overflow: hidden;
}
body > div#app > header .header-search-form .form-control {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
body > div#app > header .header-search-form .btn {
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Drugi pasek (nav) — dokładnie ten sam ciemny kolor, żeby nie było szwu */
body > div#app > nav {
    background: var(--refresh-dark) !important;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}
body > div#app > nav .col:first-of-type a {
    color: #e8eaed !important;
    padding: 8px 12px !important;
}
body > div#app > nav .col:first-of-type a:hover,
body > div#app > nav .col:first-of-type a:focus {
    border-bottom-color: #337ab7 !important;
    color: #ffffff !important;
}
body > div#app > nav .col:first-of-type a .svg-icon {
    fill: #e8eaed !important;
}

body { padding-top: 84px !important; }

@media (max-width: 767.98px) {
    body { padding-top: 72px !important; }
    body > div#app > header { height: 72px !important; }
    body > div#app > header #logo { width: 108px !important; height: 42px !important; }
    #mobile-menu { top: 72px !important; height: calc(100% - 72px) !important; }
}

/* ================== HERO — strona główna ================== */

#hero-section {
    background: linear-gradient(rgba(10,14,20,0.82), rgba(10,14,20,0.9)), url('/images/kategorie.jpg');
    background-size: cover;
    background-position: center;
    padding: 64px 20px 56px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 8px;
}
#hero-section h1 {
    font-size: 34px;
    font-weight: 700;
    text-transform: none;
    margin: 0 0 14px;
    color: #ffffff;
    letter-spacing: -0.01em;
}
#hero-section p {
    font-size: 17px;
    color: #d7dce3;
    margin: 0 0 28px;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
#hero-section .hero-actions {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}
#hero-section .hero-actions .btn {
    padding: 13px 30px;
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
}
#hero-section .hero-actions .btn-outline-light {
    color: #fff;
    border: 2px solid rgba(255,255,255,0.6);
    background: transparent;
}
#hero-section .hero-actions .btn-outline-light:hover {
    background: rgba(255,255,255,0.12);
    border-color: #fff;
    color: #fff;
}

@media (max-width: 767.98px) {
    #hero-section { padding: 44px 16px 40px; }
    #hero-section h1 { font-size: 24px; }
    #hero-section p { font-size: 15px; }
}

/* ================== Karty ogłoszeń ================== */

.announcements-listing-container > .listing-inner > div > .item {
    background: #ffffff !important;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius);
    box-shadow: var(--refresh-shadow);
    margin-bottom: 1.1rem !important;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    overflow: hidden;
}

.announcements-listing-container > .listing-inner > div > .item:hover {
    box-shadow: var(--refresh-shadow-hover);
    transform: translateY(-3px);
}

.announcements-listing-container > .listing-inner > div > .item > .thumb {
    border-radius: var(--refresh-radius) 0 0 var(--refresh-radius);
}

@media (max-width: 767.98px) {
    .announcements-listing-container > .listing-inner > div > .item > .thumb {
        border-radius: var(--refresh-radius) var(--refresh-radius) 0 0;
    }
}


.announcements-listing-container > .listing-inner > div > .item > .content {
    padding: 16px 18px;
}

.announcements-listing-container > .listing-inner > div > .item > .content > .title > h3 {
    letter-spacing: -0.015em;
    font-size: 19px !important;
}

.announcements-listing-container > .listing-inner > div > .item > .content > .description > .price {
    font-size: 19px !important;
    font-weight: 800 !important;
    background: rgba(16,124,16,0.08);
    border-radius: var(--refresh-radius-sm);
    padding: 7px 14px !important;
    margin-left: 16px !important;
    align-self: center;
}

/* Mała, płaska plakietka "Sprzedam/Kupię" w rogu (bez dużej czarnej wstążki
   po przekątnej — Piotr ocenił ją jako zbyt mocną wizualnie) */
.announcements-listing-container > .listing-inner > div > .item > .badge {
    top: 10px;
    left: 10px;
    background: rgba(20,24,31,0.82);
    border-radius: 999px;
    padding: 4px 10px !important;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 10px !important;
    letter-spacing: 0.04em;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

/* Licznik zdjęć na miniaturce */
.thumb-photo-count {
    position: absolute;
    right: 8px;
    bottom: 8px;
    background: rgba(0,0,0,0.65);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 999px;
    line-height: 1.4;
}

/* Wyrównane wysokości kafelków w widoku siatki (2 kolumny) — teraz różne
   długości opisów nie psują już równych rzędów */
.announcements-listing-container > .listing-inner {
    align-items: stretch;
}
.announcements-listing-container > .listing-inner > div:not(.r-container) {
    display: flex;
    flex-direction: column;
}
.announcements-listing-container > .listing-inner > div > .item {
    width: 100%;
}

/* Wariant kompaktowy na stronie głównej (#mainpage-announcements) — te same
   zasady, wyższa specyficzność selektora bo jest w oryginalnym CSS. */
/* Bazowy CSS ma na tym kontenerze max-height:140px + overflow:hidden, dobrane
   dokładnie pod oryginalną miniaturkę 130px + padding 5px+5px = 140px. Jeśli
   powiększamy miniaturkę, MUSIMY podnieść max-height o tyle samo, inaczej
   dół miniaturki (i znak wodny) zostanie obcięty przez overflow:hidden. */
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item {
    background: #ffffff !important;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius);
    box-shadow: var(--refresh-shadow);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    max-height: 160px !important;
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item:hover {
    box-shadow: var(--refresh-shadow-hover);
    transform: translateY(-3px);
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .thumb {
    width: 150px;
    height: 150px;
    border-radius: var(--refresh-radius) 0 0 var(--refresh-radius);
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .content .title {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal !important;
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .badge {
    top: 6px;
    left: 6px;
    background: rgba(20,24,31,0.82);
    border-radius: 999px;
    padding: 2px 8px !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
    font-size: 9px !important;
    letter-spacing: 0.03em;
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item .thumb-photo-count {
    right: 5px;
    bottom: 5px;
    font-size: 9px;
    padding: 2px 6px;
}
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .content > .price {
    background: rgba(16,124,16,0.08);
    border-radius: var(--refresh-radius-sm);
    padding: 3px 8px;
    display: inline-block;
    align-self: flex-start;
}

/* ================== Sekcja kategorii na stronie głównej ================== */

/* Kafelki kategorii na głównej — białe karty z cieniem zamiast płaskich ikon;
   podpis przeniesiony spod nakładki (białym na ciemnej ikonie) na zwykły,
   ciemny tekst POD ikoną, w obrębie białej karty. */
#mainpage-categories > div > .container > .row > div > a {
    background: #ffffff;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius);
    box-shadow: var(--refresh-shadow);
    padding: 10px 10px 12px;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
#mainpage-categories > div > .container > .row > div > a:hover {
    box-shadow: var(--refresh-shadow-hover);
    transform: translateY(-3px);
}
#mainpage-categories > div > .container > .row > div > a > img {
    border-radius: var(--refresh-radius-sm);
    transition: transform 0.2s ease;
}
#mainpage-categories > div > .container > .row > div > a:hover > img {
    transform: scale(1.04);
}
#mainpage-categories > div > .container > .row > div > a > span {
    position: static !important;
    display: block;
    margin-top: 8px;
    color: #212121 !important;
    text-shadow: none !important;
    font-size: 13px;
    font-weight: 700;
    padding: 0 !important;
}
/* "Dodaj ogłoszenie" ma biały (przezroczysty) ikonę-kontur — zostaje na
   zielonym tle jako wyróżniony kafelek CTA, reszta jest biała */
#mainpage-categories > div > .container > .row > div a#mainpage-categories-add {
    background: #107c10;
    border-color: #107c10;
}
#mainpage-categories > div > .container > .row > div a#mainpage-categories-add:hover {
    background: #0c5a0c;
}
#mainpage-categories > div > .container > .row > div a#mainpage-categories-add > span {
    color: #ffffff !important;
}

/* ================== Przyciski ================== */

.btn {
    border-radius: var(--refresh-radius-sm) !important;
    box-shadow: var(--refresh-shadow);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
    font-weight: 600;
}
.btn:hover {
    box-shadow: var(--refresh-shadow-hover);
    transform: translateY(-1px);
}
.btn:active {
    transform: translateY(0);
}

/* ================== Formularze ================== */

.form-control {
    border-radius: var(--refresh-radius-sm) !important;
    border-color: #d5d5d5;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.form-control:focus {
    border-color: #337ab7;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.15);
}

/* ================== Ogólny spacing ================== */

.container.default-padding {
    padding-top: 44px;
    padding-bottom: 44px;
}

.announcements-listing-container > p {
    margin-bottom: 20px;
}

h1, h2 {
    letter-spacing: -0.01em;
}

/* Banery reklamowe — delikatne zaokrąglenie żeby pasowały do reszty */
#r-container img,
#category-r-above img,
#category-r-below img,
#search-r-above img,
#search-r-below img,
#announcement-detail-banner img {
    border-radius: var(--refresh-radius-sm);
    box-shadow: var(--refresh-shadow);
}

/* Wyśrodkowanie banerów wyszukiwarki — app.css centruje #category-r-above/#category-r-below
   przez margin:0 auto, ale nie zna nowych #search-r-above/#search-r-below, więc trzeba dopisać tu */
#search-r-above > a,
#search-r-above > a > img,
#search-r-below > a,
#search-r-below > a > img {
    display: block;
    margin: 0 auto;
}
#search-r-above > a > img,
#search-r-below > a > img {
    max-width: 100%;
}
#search-r-above {
    margin-top: 30px;
}
#search-r-below {
    margin-bottom: 30px;
}

/* ================== Miniaturki — zoom po najechaniu ================== */

.announcements-listing-container > .listing-inner > div > .item > .thumb,
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .thumb {
    position: relative;
}
.announcements-listing-container > .listing-inner > div > .item > .thumb img,
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item > .thumb img {
    transition: transform 0.35s ease;
}
.announcements-listing-container > .listing-inner > div > .item:hover > .thumb img,
#mainpage-announcements .announcements-listing-container > .listing-inner > div > .item:hover > .thumb img {
    transform: scale(1.08);
}

/* ================== Podgląd do 3 zdjęć na miniaturce (strona główna) ==================
   .thumb ma już position:relative (wyżej). Strzałki i kropki muszą mieć jawny
   z-index, bo cała karta (.item > a) jest position:absolute na wierzchu bez
   z-index — bez tego nawigacja byłaby niewidoczna dla kliknięć. */
.thumb-gallery-nav {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 34%;
    z-index: 3;
    cursor: pointer;
    display: flex;
    align-items: center;
    opacity: 0;
    transition: opacity 0.15s ease;
}
.item:hover .thumb-gallery-nav,
#footer-promo-listing a:hover .thumb-gallery-nav {
    opacity: 1;
}
/* Telefony/tablety nie mają :hover — bez tego strzałki byłyby niewidoczne,
   mimo że przewijanie stykiem i tak działa (klik trafia w niewidoczną strefę). */
@media (hover: none), (pointer: coarse) {
    .thumb-gallery-nav {
        opacity: 1;
        background: rgba(0,0,0,0.28);
    }
}
.thumb-gallery-nav.thumb-gallery-prev {
    left: 0;
    justify-content: flex-start;
    background: linear-gradient(90deg, rgba(0,0,0,0.32), rgba(0,0,0,0));
}
.thumb-gallery-nav.thumb-gallery-next {
    right: 0;
    justify-content: flex-end;
    background: linear-gradient(270deg, rgba(0,0,0,0.32), rgba(0,0,0,0));
}
.thumb-gallery-nav::before {
    content: '';
    width: 7px;
    height: 7px;
    margin: 0 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}
.thumb-gallery-prev::before {
    transform: rotate(-135deg);
}
.thumb-gallery-next::before {
    transform: rotate(45deg);
}
.thumb-gallery-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6px;
    z-index: 3;
    display: flex;
    justify-content: center;
    gap: 4px;
    pointer-events: none;
}
.thumb-gallery-dots > span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255,255,255,0.55);
    box-shadow: 0 0 1px rgba(0,0,0,0.4);
}
.thumb-gallery-dots > span.active {
    background: #ffffff;
}

/* Ekran "zainteresowała Cię ta oferta?" po przewinięciu przez wszystkie
   dostępne podglądy — wzorowany na OTOMOTO, tekstowy wariant (bez ilustracji).
   Dopiero kliknięcie w niego przenosi do ogłoszenia; strzałka wstecz (mały
   okrągły przycisk) wraca do ostatniego zdjęcia. */
.thumb-gallery-cta {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 4;
    background: linear-gradient(180deg, #eef2f7, #dde4ec);
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 10px;
}
.thumb.thumb-gallery-cta-active .thumb-gallery-cta {
    display: flex;
}
.thumb.thumb-gallery-cta-active .thumb-gallery-nav,
.thumb.thumb-gallery-cta-active .thumb-gallery-dots,
.thumb.thumb-gallery-cta-active .thumb-photo-count {
    display: none;
}
.thumb-gallery-cta-text {
    font-size: 11px;
    font-weight: 700;
    color: #21262e;
    line-height: 1.3;
    margin-bottom: 6px;
}
.thumb-gallery-cta-link {
    font-size: 11px;
    font-weight: 700;
    color: #337ab7;
    text-decoration: underline;
}
.thumb-gallery-cta-back {
    position: absolute;
    top: 6px;
    left: 6px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.25);
}
.thumb-gallery-cta-back::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    border-left: 2px solid #337ab7;
    border-bottom: 2px solid #337ab7;
    transform: translate(-65%, -50%) rotate(45deg);
}

/* #mainpage-announcements ma kompaktowe miniaturki 150x150 (nie 350x350) —
   nieco mniejsza czcionka na ekranie CTA, żeby na pewno się zmieściła. */
#mainpage-announcements .thumb-gallery-cta-text,
#mainpage-announcements .thumb-gallery-cta-link {
    font-size: 10px;
}

/* ================== Pasek nagłówka listy (tytuł + sortowanie) ================== */

#announcements-listing-header {
    background: #ffffff;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius-sm);
    padding: 14px 18px !important;
    margin-bottom: 16px;
    box-shadow: var(--refresh-shadow);
}
#announcements-listing-header h1,
#announcements-listing-header h2 {
    margin: 0;
    font-size: 21px;
}

/* ================== Sidebar kategorii ================== */

.announcements-listing-sidebar {
    background: #ffffff;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius);
    box-shadow: var(--refresh-shadow);
    padding: 18px 20px;
}
.announcements-listing-sidebar h5 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
    margin-bottom: 12px;
}
.announcements-listing-sidebar ul li {
    padding: 5px 0;
}

.pagination-container {
    margin-top: 28px;
}

/* ================== Przyciski akcji ("Moje ogłoszenia": Edytuj/Opłać/Usuń...) ================== */
/* Były w pełnej szerokości, jeden pod drugim — teraz elastyczny rząd. */

.announcements-listing-container > .listing-inner > div > .actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px !important;
}
.announcements-listing-container > .listing-inner > div > .actions > .btn {
    width: auto !important;
    flex: 1 1 auto;
    min-width: 130px;
    margin-top: 0 !important;
}

/* ================== Paginacja (numery stron) — odświeżona ================== */

.pagination-container .pagination {
    gap: 6px;
}
.pagination-container .page-item .page-link {
    min-width: 40px;
    height: 40px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 14px !important;
    margin-left: 0 !important;
    border: 1px solid var(--refresh-border) !important;
    color: #353434;
    font-weight: 600;
    transition: all 0.15s ease;
}
.pagination-container .page-item .page-link:hover {
    background-color: #f3f7ff !important;
    border-color: #337ab7 !important;
    color: #337ab7 !important;
    transform: translateY(-1px);
}
.pagination-container .page-item.active .page-link {
    background-color: #337ab7 !important;
    border-color: #337ab7 !important;
    box-shadow: 0 4px 10px rgba(51,122,183,0.3);
}
.pagination-container .page-item.disabled .page-link {
    background: #f7f7f7 !important;
    border-color: var(--refresh-border) !important;
    color: #c2c2c2;
}
.pagination-container .page-item:first-child .page-link,
.pagination-container .page-item:last-child .page-link {
    padding: 0 18px !important;
    font-weight: 700;
    background: #ffffff;
}

/* ================== Karty Bootstrap (.card) — formularz dodawania ogłoszenia itp. ================== */

.card {
    border: 1px solid var(--refresh-border) !important;
    border-radius: var(--refresh-radius) !important;
    box-shadow: var(--refresh-shadow);
    /* Celowo BEZ overflow:hidden — na stronie "Moje ogłoszenia" karty ogłoszeń
       wewnątrz .card mają hover (uniesienie + cień), overflow:hidden by je
       obcinał. Zaokrąglenie górnych rogów załatwia radius na .card-header. */
}
.card-header {
    background: #ffffff !important;
    border-bottom: 1px solid var(--refresh-border) !important;
    border-radius: var(--refresh-radius) var(--refresh-radius) 0 0 !important;
    font-weight: 700;
    font-size: 17px;
    padding: 18px 20px !important;
}
.card-body {
    padding: 20px !important;
}
.card-body.no-padding {
    padding: 0 !important;
}
.card-body.no-bottom-padding {
    padding-bottom: 0 !important;
}

/* ================== Strona ogłoszenia (szczegóły) ================== */

#announcement-view {
    margin-top: 10px;
}
#announcement-view > div {
    background: #ffffff;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius);
    box-shadow: var(--refresh-shadow);
    overflow: hidden;
}
#announcement-view .header {
    padding: 20px 24px 0;
}
#announcement-view .content {
    padding: 0 24px 24px;
}
#announcement-view .images {
    border-radius: var(--refresh-radius-sm);
    overflow: hidden;
}

/* Galeria zdjęć — zaokrąglone kafelki, delikatny zoom po najechaniu */
.pswp-thumbnails > div {
    border-radius: var(--refresh-radius-sm);
    overflow: hidden;
}
.pswp-thumbnails > div > img {
    transition: transform 0.25s ease;
}
.pswp-thumbnails > div:hover > img {
    transform: scale(1.05);
}
.pswp-thumbnails > .badge {
    border-radius: 0 var(--refresh-radius-sm) 0 var(--refresh-radius-sm);
}

/* Blok cena/data w nagłówku ogłoszenia — odświeżony, cena na zielono jak
   na kafelkach listy (zamiast zwykłej ciemnoszarej) */
#announcement-view > div > .header > .badge {
    background-color: #ffffff !important;
    border: 1px solid var(--refresh-border);
    border-radius: var(--refresh-radius-sm);
}
#announcement-view > div.with-gallery > .header > .badge:before {
    border-right-color: #ffffff !important;
}
#announcement-view > div > .header > .badge > .price > span:nth-of-type(2) > span {
    color: #107c10 !important;
}

/* ================== Stopka — przywrócona do oryginalnej szarej (2026-08-08) ================== */
/* Wcześniej stopka była przyciemniona pod nowy design (var(--refresh-dark)).
   Piotr poprosił o przywrócenie oryginalnego szarego wyglądu sprzed refreshu. */

body > div#app > footer {
    margin-top: 40px;
}
body > div#app > footer #footer-promo-listing .thumb {
    position: relative;
    border-radius: var(--refresh-radius-sm);
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* ================== Szuflada menu mobilnego — ciemna, spójna z nagłówkiem ================== */

#mobile-menu > div:first-of-type {
    background-color: var(--refresh-dark) !important;
}
#mobile-menu > div:first-of-type > a {
    color: #e8eaed !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
#mobile-menu > div:first-of-type > a:hover,
#mobile-menu > div:first-of-type > a:active {
    color: #ffffff !important;
}
#mobile-menu > div:first-of-type > p,
#mobile-menu > div:first-of-type > p > small {
    color: #9aa1ad !important;
}

/* ================== Blog — karty wpisów spójne z resztą strony ================== */
/* Wysoka specyficzność (#announcements-listing) potrzebna, bo szablon bloga
   ma własny @section('footer') z inline <style>, który ładuje się PO tym
   pliku w kolejności źródła i normalnie wygrałby przy równej specyficzności. */

#announcements-listing .entries-list .entry {
    background: #ffffff;
    border: 1px solid var(--refresh-border) !important;
    border-radius: var(--refresh-radius);
    box-shadow: var(--refresh-shadow);
    padding: 18px 20px !important;
    margin-bottom: 16px !important;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
#announcements-listing .entries-list .entry:hover {
    box-shadow: var(--refresh-shadow-hover);
}
#announcements-listing .entries-list .entry h2,
#announcements-listing .entries-list .entry h2 a {
    color: #337ab7 !important;
    font-size: 18px !important;
    text-transform: none !important;
}
#announcements-listing .entries-list .entry .categories a {
    color: #107c10 !important;
}
#announcements-listing .entries-list .entry img.img-fluid {
    border-radius: var(--refresh-radius-sm);
}

/* Dropdown wielokrotnego wyboru (województwo/kategoria w zaawansowanym
   wyszukiwaniu) — domyślny zielono-żółty highlight komponentu nie pasował
   do nowej kolorystyki, zamieniony na niebieski akcent marki (#337ab7) */
.multiselect__option--highlight {
    background-color: #337ab7 !important;
    color: #fff !important;
}
.multiselect__option--highlight::after {
    background-color: #337ab7 !important;
    color: #fff !important;
}
