/* --- SJD Obras - Estilos v4.1 (Shortcode Relacionadas) --- */
:root {
    --primary-font: 'Roboto',Helvetica,Arial,Lucida,sans-serif;
    --text-color-dark: #2c3e50;
    --text-color-light: #5f7d95;
    --accent-color: #FFB703;
    --accent-color-dark: #023047;
    --border-color: #e8ecef;
    --background-light: #f8f9fa;
    --background-white: #ffffff;
}

#sjd-liquid-crystal-explorer {
    position: relative; width: 100%; padding: 2vw; background-color: transparent; font-family: var(--primary-font);
}

.sjd-view {
    display: none; opacity: 0; transition: opacity 0.4s ease-in-out; width: 100%; max-width: 1200px; margin: 0 auto;
}
.sjd-view.active { display: block; opacity: 1; }

/* 2. Filtros
-------------------------------------------------------------- */
#sjd-filters-container { margin-bottom: 40px; padding-bottom: 20px; border-bottom: 2px solid var(--border-color); }
.filter-group-master { margin-bottom: 15px; min-height: 40px; }
#sjd-filters-inner-container { display: flex; flex-direction: column; gap: 0 40px; }
.filter-group { margin-bottom: 25px; }
.filter-group:last-child { margin-bottom: 0; }
.filter-group h4 { margin: 0 0 15px 0; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-color-dark); }
.pills-wrapper, .filter-group-master { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.filter-pill { padding: 8px 20px; font-size: 13px; font-weight: 500; border-radius: 20px; cursor: pointer; background-color: var(--background-light); color: var(--text-color-light); border: 1px solid var(--border-color); transition: all 0.2s ease-in-out; }
.filter-pill:hover { border-color: var(--accent-color); color: var(--text-color-dark); }
.filter-pill.is-active { background-color: #e0e7ff; border-color: #a3b3f7; color: #373372; }

#sjd-active-filters-container { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
#sjd-active-filters-container h4 { font-size: 14px; font-weight: 700; color: var(--text-color-dark); margin: 0 10px 0 0; }
.active-filter-pill { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; font-size: 13px; font-weight: 600; background-color: var(--accent-color); color: var(--accent-color-dark); border-radius: 15px; }
.remove-filter { cursor: pointer; font-size: 16px; font-weight: bold; line-height: 1; transition: transform 0.2s; }
.remove-filter:hover { transform: scale(1.2); }

@media (min-width: 992px) {
    #sjd-filters-inner-container { flex-direction: row; }
    .filter-group.tipos-obra-group { flex: 3; }
    .filter-group.ejes-group { flex: 1; min-width: 250px; }
}

/* 3. Vista de Localizaciones
-------------------------------------------------------------- */
#sjd-city-grid { padding-top: 10px; }
.community-group { margin-bottom: 40px; overflow: hidden; }
.community-title { font-size: 1.2rem; font-weight: 600; color: var(--text-color-dark); margin: 0 0 20px 0; padding-bottom: 15px; border-bottom: 1px solid var(--border-color); }
.city-pills-container { display: flex; flex-wrap: wrap; gap: 15px 18px; }
.city-card-wrapper { display: block; }
.city-card { padding: 12px 24px; font-size: 15px; font-weight: 500; border-radius: 8px; cursor: pointer; background-color: var(--background-white); color: var(--text-color-dark); border: 1px solid var(--border-color); box-shadow: 0 3px 8px rgba(0,0,0,0.05); transition: all 0.2s ease-in-out; display: block; }
.city-card:hover { transform: translateY(-3px); box-shadow: 0 6px 15px rgba(0,0,0,0.1); border-color: #cce7ff; background-color: #f5fafe; }

/* 4. Vista de Obras - Diseño de Tarjetas
-------------------------------------------------------------- */
#sjd-obras-view .sjd-view-header { position: relative; text-align: center; margin-bottom: 40px; padding-top: 50px; }
#sjd-back-to-cities { position: absolute; top: 0; left: 50%; transform: translateX(-50%); display: inline-block; background-color: var(--background-light); color: var(--text-color-light); border: 1px solid var(--border-color); padding: 10px 25px; border-radius: 30px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; }
#sjd-back-to-cities:hover { background-color: var(--accent-color); border-color: var(--accent-color); color: var(--accent-color-dark); }
#sjd-obras-grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; }
.obra-card-link { text-decoration: none; display: block; }
.obra-card { border-radius: 12px; background-color: var(--background-white); border: 1px solid var(--border-color); box-shadow: 0 4px 12px rgba(0,0,0,0.06); overflow: hidden; transition: all 0.3s ease; }
.obra-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); }
.obra-card-image {
    height: 180px;
    /* *** CORRECCIÓN: Cambiado 'cover' por 'contain' para evitar que se corten los logos *** */
    background-size: contain;
    background-position: center;
    background-color: var(--background-light);
    background-repeat: no-repeat;
}
.obra-card-content { padding: 20px; }
.obra-card-tipo-tag { display: inline-block; padding: 5px 10px; border-radius: 6px; font-size: 11px; font-weight: 700; margin-bottom: 15px; background-color: var(--accent-color); color: var(--accent-color-dark); }
.obra-card-content h4 { margin: 0; font-size: 1.2rem; line-height: 1.4; font-weight: 600; color: var(--text-color-dark); }

/* 5. VISTA MINI
-------------------------------------------------------------------------------- */
.sjd-explorer-mini #sjd-filters-container { display: none; }
.sjd-explorer-mini #sjd-city-grid { padding-top: 0; display: block; }
.sjd-explorer-mini .community-title { display: none; }
.sjd-explorer-mini .community-group { margin: 0; padding: 0; }
.sjd-explorer-mini .city-pills-container { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 0 10px; padding: 0; margin: 0; line-height: 1.8; }
.sjd-explorer-mini .city-card-wrapper { margin: 0; padding: 0; display: inline-flex; align-items: center; }
.sjd-explorer-mini .city-card { background: none; border: none; box-shadow: none; padding: 5px 0; font-size: 14px; font-weight: 400; color: var(--text-color-light); border-radius: 0; text-align: left; }
.sjd-explorer-mini .city-card:hover { background: none; color: var(--text-color-dark); text-decoration: underline; transform: none; box-shadow: none; border-color: transparent; }
.sjd-explorer-mini .city-card-wrapper:not(:last-child)::after { content: "·"; margin: 0 8px; color: var(--text-color-light); display: inline-block; }
.sjd-explorer-mini #sjd-obras-view .sjd-view-header { padding-top: 40px; margin-bottom: 20px; }
.sjd-explorer-mini #sjd-obras-view h1 { font-size: 1.5rem; }
.sjd-explorer-mini .sjd-accordion-header h4 { font-size: 1.1rem; }
.sjd-explorer-mini .accordion-main-content { padding: 20px; }

/* 6. VISTA DE OBRAS RELACIONADAS
-------------------------------------------------------------------------------- */
.sjd-related-obras-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 40px;
}