:root {
    --border-radius: 1.25rem;
    --shadow-sm: 0 0.25rem 1rem rgba(0,0,0,0.08);
    --shadow-md: 0 0.5rem 2rem rgba(0,0,0,0.12);
    --shadow-lg: 0 1rem 3rem rgba(0,0,0,0.15);
}
.main-content-card {
    border-radius: var(--border-radius) !important;
    margin-top: 1.5rem !important;
    box-shadow: var(--shadow-lg) !important;
}
.category-badge-custom {
    color: white !important;
    border: none !important;
    box-shadow: 0 0.25rem 0.75rem rgba(0,0,0,0.2);
    font-weight: 600;
    transition: all 0.3s ease;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1);
}
.category-badge-custom:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,0.3) !important;
}
.category-administracja-i-prawo {
    background-color: #c82333 !important;
}
.category-budownictwo-i-remonty {
    background-color: #e6550d !important;
}
.category-dla-domu-i-ogrodu {
    background-color: #d4a017 !important;
}
.category-edukacja {
    background-color: #155724 !important;
}
.category-elektronika-i-it {
    background-color: #0d6efd !important;
}
.category-finanse-i-ubezpieczenia {
    background-color: #117a65 !important;
}
.category-firmy-lokalne {
    background-color: #5a1f7d !important;
}
.category-gastronomia {
    background-color: #bd3275 !important;
}
.category-handel {
    background-color: #005cbf !important;
}
.category-inne {
    background-color: #495057 !important;
}
.category-kultura-i-sztuka {
    background-color: #c2185b !important;
}
.category-marketing-i-reklama {
    background-color: #117a8b !important;
}
.category-motoryzacja {
    background-color: #dc3545 !important;
}
.category-nieruchomo-ci {
    background-color: #856404 !important;
}
.category-noclegi {
    background-color: #17a2b8 !important;
}
.category-opieka-i-pomoc-domowa {
    background-color: #155724 !important;
}
.category-przemys-i-produkcja {
    background-color: #343a40 !important;
}
.category-rolnictwo {
    background-color: #1e7e34 !important;
}
.category-rozrywka {
    background-color: #e6550d !important;
}
.category-specjali-ci {
    background-color: #004085 !important;
}
.category-sport-i-rekreacja {
    background-color: #117a65 !important;
}
.category-transport-i-logistyka {
    background-color: #c82333 !important;
}
.category-turystyka {
    background-color: #d4a017 !important;
}
.category-us-ugi {
    background-color: #5a1f7d !important;
}
.category-zdrowie-i-uroda {
    background-color: #155724 !important;
}
.category-unknown {
    background-color: #dc3545 !important;
}
@media (max-width: 991.98px) {
    .mobile-hero-image {
        width: 100%;
        border-radius: var(--border-radius);
        overflow: hidden;
        box-shadow: var(--shadow-md);
        margin-bottom: 1.5rem;
    }
    .mobile-hero-image img {
        width: 100%;
        height: 240px;
        max-height: 240px;
        object-fit: cover;
        object-position: center;
        display: block;
    }
    .mobile-info-card {
        background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
        border-radius: var(--border-radius);
        box-shadow: var(--shadow-md);
        padding: 2.5rem 1.75rem 1.75rem;
        text-align: center;
        margin-bottom: 1rem;
    }
    .mobile-info-card h2 {
        font-size: 1.6rem;
        margin-bottom: 0.75rem;
    }
    .mobile-info-card h4 {
        font-size: 1.15rem;
        margin-bottom: 1.25rem;
        color: #6c757d;
    }
    .responsive-contact-btn {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        display: block;
        transition: all 0.2s ease;
        border-radius: 0.75rem !important;
    }
    .responsive-contact-btn[data-text-length]:not([data-text-length=">12"]) {
        font-size: 1.1rem !important;
        padding: 1rem 1.25rem !important;
        min-height: 48px;
    }
    .responsive-contact-btn[data-text-length=">12"][data-text-length="≤20"] {
        font-size: 1rem !important;
        padding: 0.875rem 1rem !important;
        min-height: 44px;
    }
    .responsive-contact-btn[data-text-length=">20"] {
        font-size: 0.875rem !important;
        padding: 0.75rem 0.875rem !important;
        min-height: 40px;
        line-height: 1.2;
    }
}
@media (min-width: 992px) {
    .hero-section-desktop {
        background: #f8f9fa !important;
        border-radius: var(--border-radius);
        box-shadow: var(--shadow-md);
        overflow: hidden;
        margin-bottom: 1.5rem;
        border: 1px solid rgba(0,0,0,0.05);
        height: 320px;
        display: flex;
        transition: all 0.3s ease;
    }
    .hero-section-desktop:hover {
        box-shadow: var(--shadow-lg);
        transform: translateY(-2px);
        background: #f5f7fa !important;
    }
    .hero-info-desktop {
        padding: 2.5rem 2.75rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        height: 100%;
        background: transparent !important;
    }
    .hero-info-desktop h2 {
        font-size: 2.3rem;
        margin: 0 0 0.5rem 0;
        line-height: 1.2;
        color: #1a1a1a;
        font-weight: 800;
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-word;
        hyphens: auto;
        max-width: 100%;
        text-shadow: 0 1px 2px rgba(0,0,0,0.05);
    }
    .hero-info-desktop .badge {
        font-size: 1.05rem;
        padding: 0.75em 1.75em;
        align-self: flex-start;
        white-space: nowrap;
        font-weight: 600;
        transition: all 0.3s ease;
    }
}
.accordion-button {
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border-left: 4px solid transparent !important;
    font-weight: 600;
}
.accordion-item:has(#phone) .accordion-button { 
    background: linear-gradient(135deg, #e8eaf6 0%, #c5cae9 100%) !important; 
    border-left-color: #3f51b5 !important; 
    color: #303f9f !important; 
}
.accordion-item:has(#email) .accordion-button { 
    background: linear-gradient(135deg, #e0f2f1 0%, #b2dfdb 100%) !important; 
    border-left-color: #009688 !important; 
    color: #00796b !important; 
}
.accordion-item:has(#location) .accordion-button { 
    background: linear-gradient(135deg, #fce4ec 0%, #f8bbd9 100%) !important; 
    border-left-color: #c2185b !important; 
    color: #880e4f !important; 
}
.accordion-button:hover, .accordion-button:focus {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15) !important;
    border-left-width: 5px !important;
}