/*
 * CSS Unificado para Listado de Vacantes
 * Versión: 2.0
 * Descripción: Estilos refactorizados para igualar la apariencia del listado de "Talentos".
 * Utiliza variables CSS para un tema consistente y fácil de mantener.
*/

/* === 1. VARIABLES DEL TEMA === */
:root {
    --theme-primary: #E64E1E; 
    --theme-text-dark: #111111;
    --theme-text-light: #444444;
    --theme-background: #ffffff;
    --theme-border-color: rgba(34, 36, 38, 0.08);

    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Ubuntu Sans', sans-serif;
    --font-ui: 'Roboto', sans-serif;

    --card-border-radius: 10px;
    --card-shadow: 0 6px 18px rgba(34, 36, 38, 0.06);
    --card-shadow-hover: 0 12px 28px rgba(34, 36, 38, 0.09);
    --global-gap: 18px;
}


/* === 2. FILTROS DE BÚSQUEDA === */
.job_filters {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    align-items: center !important;
    background: var(--theme-background) !important;
    border-radius: var(--card-border-radius) !important;
    margin-bottom: var(--global-gap) !important;
}

.job_filters input[type="text"],
.job_filters input[type="search"],
.job_filters select {
    padding: 10px 12px !important;
    border-radius: var(--card-border-radius) !important;
    border: 1px solid var(--theme-border-color) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    min-width: 140px !important;
    box-sizing: border-box !important;
}

.job_filters button[type="submit"] {
    background: #E64E1E !important;
    color: var(--theme-background) !important;
    border: 0 !important;
    padding: 10px 18px !important;
    border-radius: var(--card-border-radius) !important;
    font-family: var(--font-ui) !important;
    font-weight: 600 !important;
    cursor: pointer !important;
}


/* === 3. CONTENEDOR DE LA LISTA === */
div.job_listings ul.job_listings {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px;
    justify-content: center !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.job_filters .search_jobs {
    width: 100% !important;
}

/* Ocultar elementos innecesarios del plugin */
.showing_jobs {
    display: none !important;
}


/* === 4. TARJETA (CARD) === */
.job_listings .card-vacante {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 190px !important;
    background: var(--theme-background) !important;
    border-radius: var(--card-border-radius) !important;
    overflow: hidden !important;
    box-shadow: var(--card-shadow) !important;
    border: 1px solid rgba(0,0,0,0.04) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    box-sizing: border-box !important;
}

.job_listings .card-vacante:hover {
    transform: translateY(-4px) !important;
    box-shadow: var(--card-shadow-hover) !important;
}


/* === 5. CONTENIDO DE LA TARJETA === */
.card-vacante .card-media img {
    /* En este caso la imagen es un <img> dentro de un div, así que estilizamos el contenedor */
    flex: 0 0 300px !important;
    width: 300px !important;
    height: 190px !important;
    object-fit: cover !important; /* Asegura que la imagen cubra el espacio sin deformarse */
    background-position: center !important;
	max-width: 300px;
	background-size: cover;
	background-repeat: no-repeat;
}

.card-vacante .card-body {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 18px 20px !important;
    min-width: 0 !important; /* Evita que el contenido se desborde */
}

.card-vacante .card-title {
    font-family: var(--font-heading) !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    color: var(--theme-text-dark) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.card-vacante .card-title a {
    color: inherit !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

.card-vacante:hover .card-title a {
    color: var(--theme-primary) !important;
}

.card-vacante .card-excerpt {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: var(--theme-text-light) !important;
    margin: 0 !important;
    flex-grow: 1 !important; /* Ocupa el espacio disponible */
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.card-vacante .card-footer {
    display: flex !important;
    gap: 10px !important;
    margin-top: auto !important; /* Empuja al final */
    align-items: center !important;
}


/* === 6. BOTONES Y PAGINACIÓN === */
.btn-primary {
    background: var(--theme-primary) !important;
    color: var(--theme-background) !important;
    border: none !important;
    padding: 8px 14px !important;
    border-radius: var(--card-border-radius) !important;
    font-family: var(--font-ui) !important;
    font-weight: 500;
    text-decoration: none;
    display: inline-block;
    line-height: 1;
}

.pagination {
    width: 100% !important;
    text-align: center !important;
    margin-top: 24px !important;
}

.pagination a, .pagination span {
    display: inline-block !important;
    padding: 8px 12px !important;
    margin: 0 4px !important;
    border-radius: 6px !important;
    border: 1px solid var(--theme-border-color) !important;
    text-decoration: none !important;
    color: var(--theme-text-dark) !important;
}

.pagination span.current {
    background: var(--theme-primary) !important;
    color: var(--theme-background) !important;
    border-color: var(--theme-border-color) !important;
}


/* === 7. ESTILOS RESPONSIVE === */
/* Tablet */
@media (max-width: 1024px) {
    .job_listings .card-vacante {
        flex-direction: column !important;
        height: auto !important;
        max-width: calc(50% - 12px) !important; /* Dos columnas */
    }

    .card-vacante .card-media img {
        width: 300px !important;
        height: 180px !important;
        flex-basis: auto !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .job_filters {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    div.job_listings ul.job_listings {
        gap: 12px !important;
    }
    
    .job_listings .card-vacante {
        max-width: 100% !important; /* Una columna */
    }

    .card-vacante .card-excerpt {
        -webkit-line-clamp: 4 !important; /* Más texto en móvil */
    }
}
