body {
            font-family: 'Poppins', sans-serif;
            background-color: #f0f2f5; 
            color: #333;
        }
        :root {
            --primary-color: #007bff; 
            --secondary-color: #6c757d;
            --accent-color-1: #ffc107; /* Amarillo */
            --accent-color-2: #28a745; /* Verde */
            --accent-color-3: #fd7e14; /* Naranja */
            --card-bg: #ffffff;
            --text-dark: #212529;
            --text-light: #f8f9fa;
        }
        .navbar-custom {
            background-color: var(--primary-color);
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        .navbar-custom .navbar-brand,
        .navbar-custom .nav-link {
            color: var(--text-light);
            font-weight: 500;
        }
        .navbar-custom .nav-link:hover,
        .navbar-custom .navbar-brand:hover {
            color: rgba(255,255,255,0.8);
        }
        .navbar-custom .btn-outline-light {
            border-color: rgba(255,255,255,0.7);
            color: rgba(255,255,255,0.9);
        }
         .navbar-custom .btn-outline-light:hover {
            background-color: var(--text-light);
            color: var(--primary-color);
        }
        .navbar-custom .btn-warning {
            background-color: var(--accent-color-1);
            color: var(--text-dark);
            font-weight: 600;
            border: none;
        }
        .navbar-custom .btn-warning:hover {
            background-color: #ffca2c;
        }
        .hero-section {
            background: linear-gradient(135deg, var(--primary-color) 0%, #0056b3 100%);
            padding: 70px 0 50px; 
            text-align: center;
            color: var(--text-light);
        }
        .hero-section h1 {
            font-size: 2.5rem; /* Ajustado para móviles primero */
            font-weight: 700;
            margin-bottom: 15px;
            text-shadow: 0 1px 3px rgba(0,0,0,0.2);
        }
        .hero-section p.lead {
            font-size: 1.1rem;
            margin-bottom: 25px;
            font-weight: 300;
        }
        .search-form .form-control {
            border-radius: 50px;
            padding: 12px 20px;
            font-size: 1rem;
            border: 1px solid #ced4da;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
        }
        .search-form .form-control:focus {
            border-color: var(--primary-color);
            box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb),.25);
        }
        .search-form .btn-search {
            background-color: var(--accent-color-1);
            border: none;
            color: var(--text-dark);
            border-radius: 50px;
            padding: 12px 25px;
            font-size: 1rem;
            font-weight: 600;
            transition: background-color 0.2s ease;
        }
        .search-form .btn-search:hover {
            background-color: #e9ab00;
        }
        .section-title {
            color: var(--text-dark);
            margin-bottom: 40px;
            text-align: center;
            font-size: 2rem;
            font-weight: 600;
            position: relative;
            padding-bottom: 10px;
        }
        .section-title::after {
            content: '';
            display: block;
            width: 60px;
            height: 4px;
            background-color: var(--primary-color);
            margin: 8px auto 0;
            border-radius: 2px;
        }
        .category-card {
            background-color: var(--card-bg);
            border: 1px solid #e0e0e0;
            border-radius: 12px;
            padding: 20px; /* Un poco menos padding */
            text-align: center;
            transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
            box-shadow: 0 4px 15px rgba(0,0,0,0.07);
            display: flex;
            flex-direction: column;
            height: 100%; /* Para alinear botones si las descripciones varían */
        }
        .category-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 25px rgba(0,0,0,0.1);
        }
        .category-card .icon-circle {
            width: 60px; /* Un poco más pequeño */
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 15px auto;
            font-size: 1.8rem; /* Ajustado */
            color: var(--text-light);
        }
        .icon-circle.bg-cat-1 { background-color: #20c997; } 
        .icon-circle.bg-cat-2 { background-color: #6f42c1; } 
        .icon-circle.bg-cat-3 { background-color: #fd7e14; } 
        .icon-circle.bg-cat-4 { background-color: #17a2b8; } 
        .icon-circle.bg-cat-5 { background-color: #dc3545; } /* Rojo */
        .icon-circle.bg-cat-6 { background-color: #343a40; } /* Gris Oscuro */
        .icon-circle.bg-cat-7 { background-color: #0dcaf0; } /* Cyan */
        .icon-circle.bg-cat-8 { background-color: #d63384; } /* Rosa */

        .category-card h5 {
            color: var(--text-dark);
            font-weight: 600;
            font-size: 1.05rem; /* Ligeramente más pequeño */
            margin-bottom: 8px;
            min-height: 44px; /* Para 2 líneas de título */
            display: flex;
            align-items: center;
            justify-content: center;
        }
         .category-card p {
            color: var(--secondary-color);
            font-size: 0.85rem;
            margin-bottom: 15px;
            flex-grow: 1; /* Para que el texto ocupe espacio y los botones se alineen */
            min-height: 50px; /* Aproximadamente para 3 líneas */
        }
        .category-card .btn-view-category {
            background-color: transparent;
            color: var(--primary-color);
            border: 1px solid var(--primary-color);
            font-weight: 500;
            padding: 6px 15px;
            border-radius: 50px;
            font-size: 0.85rem;
            margin-top: auto; /* Alinea el botón abajo */
        }
        .category-card .btn-view-category:hover {
            background-color: var(--primary-color);
            color: var(--text-light);
        }
        .anuncio-card { /* Renombrado de professional-card para ser genérico */
            background-color: var(--card-bg);
            border-radius: 12px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.07);
            overflow: hidden; 
            transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
            display: flex;
            flex-direction: column;
            height: 100%;
        }
        .anuncio-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 25px rgba(0,0,0,0.1);
        }
        .anuncio-card .img-container {
            height: 180px; 
            overflow: hidden;
            background-color: #eee; /* Placeholder background */
        }
        .anuncio-card .img-container img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .anuncio-card .card-content {
            padding: 15px; /* Un poco menos padding */
            flex-grow: 1; 
            display: flex;
            flex-direction: column;
        }
        .anuncio-card h5 {
            font-weight: 600;
            color: var(--text-dark);
            margin-bottom: 5px;
            font-size: 1.1rem;
        }
        .anuncio-card h5 a { color: var(--text-dark); text-decoration: none; }
        .anuncio-card h5 a:hover { color: var(--primary-color); }
        .anuncio-card .categoria-link { font-size: 0.85rem; color: var(--secondary-color); margin-bottom: 8px; display: block; text-decoration:none;}
        .anuncio-card .categoria-link:hover { color: var(--primary-color); }
        .anuncio-card .descripcion-corta { font-size: 0.9rem; color: #555; margin-bottom: 12px; flex-grow:1; }
        .anuncio-card .location { font-size: 0.85rem; color: var(--secondary-color); margin-bottom: 12px; }
        .anuncio-card .price { font-size: 1.1rem; font-weight: 700; color: var(--accent-color-2); margin-bottom:15px; }
        .anuncio-card .btn-view-anuncio {
            background-color: var(--primary-color); color: var(--text-light); font-weight: 500;
            border: none; border-radius: 50px; padding: 8px 20px; margin-top: auto; font-size: 0.9rem;
            transition: background-color 0.2s ease;
        }
        .anuncio-card .text-muted {
            font-size: 0.8rem; /* Más pequeño */
            margin-bottom: 8px;
        }
        .anuncio-card .location {
            font-size: 0.85rem;
            color: var(--secondary-color);
            margin-bottom: 12px;
        }
        .anuncio-card .btn-view-anuncio { /* Renombrado */
            background-color: var(--accent-color-2);
            color: var(--text-light);
            font-weight: 500;
            border: none;
            border-radius: 50px;
            padding: 8px 18px;
            margin-top: auto; 
            font-size: 0.9rem;
        }
        .anuncio-card .btn-view-anuncio:hover {
            background-color: #218838;
        }
        .cta-section {
            background-color: #e9ecef; 
            padding: 50px 0;
            text-align: center;
        }
        .cta-section h2 {
            font-weight: 600;
            color: var(--text-dark);
            font-size: 1.8rem;
        }
        .cta-section .btn-cta {
            background-color: var(--accent-color-3); 
            color: var(--text-light);
            font-size: 1rem;
            font-weight: 600;
            padding: 10px 25px;
            border-radius: 50px;
            border: none;
        }
         .cta-section .btn-cta:hover {
            background-color: #e66f00;
        }
        .footer-custom {
            background-color: #343a40; 
            color: #adb5bd;
            padding: 40px 0 20px;
        }
        .footer-custom h5 {
            color: var(--text-light);
            font-weight: 600;
            margin-bottom: 15px;
        }
        .footer-custom a {
            color: #adb5bd;
            text-decoration: none;
        }
        .footer-custom a:hover {
            color: var(--text-light);
            text-decoration: underline;
        }
        .footer-custom .social-icons i {
            font-size: 1.3rem;
            margin: 0 8px;
            transition: color 0.2s ease;
        }
        .footer-custom .social-icons i:hover {
            color: var(--primary-color);
        }
        @media (min-width: 768px) {
            .hero-section h1 {
                font-size: 2.8rem;
            }
            .hero-section p.lead {
                font-size: 1.15rem;
            }
            .cta-section h2 {
                font-size: 2rem;
            }
            .cta-section .btn-cta {
                font-size: 1.1rem;
                padding: 12px 30px;
            }
             .section-title {
                font-size: 2.2rem;
            }
        }

        .page-header {
            background-color: var(--primary-color); /* O un color relacionado con la categoría */
            color: var(--text-light);
            padding: 40px 0;
            margin-bottom: 40px;
        }
        .page-header h1 {
            font-size: 2.5rem;
            font-weight: 700;
        }
        .page-header .breadcrumb {
            background-color: transparent;
            padding: 0;
        }
        .page-header .breadcrumb-item a {
            color: rgba(255,255,255,0.8);
            text-decoration: none;
        }
        .page-header .breadcrumb-item a:hover {
            color: #fff;
        }
        .page-header .breadcrumb-item.active {
            color: #fff;
            font-weight: 500;
        }
        .category-description {
            font-size: 1.1rem;
            margin-bottom: 30px;
        }

        .page-header-anuncios {
            background-color: var(--primary-color); 
            color: var(--text-light);
            padding: 50px 0 40px; 
            margin-bottom: 30px;
            border-bottom: 5px solid var(--accent-color-1); 
        }
        .page-header-anuncios h1 { font-size: 2.5rem; font-weight: 700; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); }
        .page-header-anuncios .breadcrumb { background-color: transparent; padding:0; margin-bottom: 0.5rem; }
        .page-header-anuncios .breadcrumb-item a { color: rgba(255,255,255,0.85); text-decoration:none; }
        .page-header-anuncios .breadcrumb-item a:hover { color: #fff; }
        .page-header-anuncios .breadcrumb-item.active { color: #fff; font-weight:500; }
        .category-description-lead { font-size: 1.1rem; font-weight: 300; opacity: 0.9; }

        .search-filter-bar {
            background-color: #fff; 
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 35px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.08);
        }
         .search-filter-bar .form-control, .search-filter-bar .form-select {
            border-radius: 50px; padding: 10px 20px;
        }
        .search-filter-bar .btn-primary {
            border-radius: 50px; padding: 10px 25px; font-weight: 500;
        }

        .anuncio-card.destacado-card { 
            border: 2px solid var(--accent-color-1); 
            box-shadow: 0 5px 15px rgba(var(--bs-warning-rgb),0.3); 
        }
        .destacado-badge {
            position: absolute;
            top: 15px;
            left: -8px; 
            background-color: var(--accent-color-1);
            color: var(--text-dark);
            padding: 6px 12px 6px 15px;
            font-size: 0.8rem;
            font-weight: 700;
            border-radius: 0 20px 20px 0; 
            z-index: 10;
            box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
        }
        .destacado-badge .fa-star { margin-right: 5px; }

        .pagination .page-link { color: var(--primary-color); }
        .pagination .page-item.active .page-link { background-color: var(--primary-color); border-color: var(--primary-color); color:white; }
        .pagination .page-item.disabled .page-link { color: #6c757d; }

        .anuncio-header {
            padding: 20px 0;
            background-color: #e9ecef; /* Un fondo suave para la info básica */
        }
        .anuncio-titulo-h1 {
            color: var(--primary-color);
            font-weight: 700;
            margin-bottom: 0.5rem;
        }
        .anuncio-categoria-link {
            font-size: 1rem;
            color: var(--secondary-color);
            text-decoration: none;
        }
        .anuncio-categoria-link:hover { color: var(--primary-color); }
        .anuncio-fecha { font-size: 0.85rem; color: #777; }

        .anuncio-main-image img {
            width: 100%;
            max-height: 500px; /* Límite de altura */
            object-fit: cover;
            border-radius: 8px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
        }
        /* Estilos para galería futura se añadirían aquí (ej. miniaturas) */

        .anuncio-precio {
            font-size: 2rem;
            font-weight: 700;
            color: var(--accent-color-2);
            margin: 20px 0;
        }
        .anuncio-descripcion {
            font-size: 1.05rem;
            line-height: 1.7;
            white-space: pre-wrap; /* Para respetar saltos de línea de la BD */
            margin-bottom: 30px;
        }
        .anuncio-detalles-section {
            background-color: var(--card-bg);
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.07);
        }
        .anuncio-detalles-section h3 {
            color: var(--primary-color);
            font-size: 1.5rem;
            font-weight: 600;
            margin-bottom: 20px;
            padding-bottom: 10px;
            border-bottom: 2px solid var(--accent-color-1);
        }
        .anuncio-detalles-section ul { list-style: none; padding-left: 0; }
        .anuncio-detalles-section ul li { 
            margin-bottom: 12px; font-size: 1rem; display: flex; align-items: flex-start;
        }
        .anuncio-detalles-section ul li i { 
            color: var(--primary-color); margin-right: 12px; width: 20px; text-align: center; margin-top: 3px;
        }
        .anuncio-mapa-container { margin-top: 30px; }
        #mapAnuncio { height: 350px; border-radius: 8px; border: 1px solid #ddd; }

        .contacto-publicador { margin-top: 30px; }
        .contacto-publicador .card { border: none; box-shadow: 0 2px 8px rgba(0,0,0,0.07); }
        .contacto-publicador .card-header { background-color: var(--primary-color); color: white; font-weight: 600;}
        .contacto-publicador .btn { margin-right: 10px; margin-bottom: 10px; }
        .btn-whatsapp { background-color: #25D366; color: white; }
        .btn-whatsapp:hover { background-color: #1DA851; }