/* =============================================
   BASE
   ============================================= */
.hub-wrap {
  max-width: 1280px;
  margin: 40px auto;
  padding: 0 20px;
}

.hub-wrap h2 {
  font-size: 2.3rem;
  font-family: 'Inter';
  margin-bottom: 8px;
  font-weight: 500;
  color: #212427;
}

.hub-subtitle {
  color: #004990;
  font-size: 2rem;
  font-family: 'Inter';
  line-height: 1.3em;
  font-weight: 500;
  margin-bottom: 35px;
}


/* =============================================
   FILTROS
   ============================================= */
.hub-filter-wrap {
  margin-bottom: 30px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.hub-filter-select {
  padding: 12px 16px;
  border: 2px solid #d0d5dd;
  color: #666666;
  border-radius: 8px;
  font-size: 1rem;
  min-width: 0;
  flex: 1;
}

.hub-filter-input {
  padding: 12px 16px;
  border: 2px solid #d0d5dd;
  border-radius: 8px;
  font-size: 0.95rem;
  min-width: 200px;
}

#hubSearchInput {
  border-radius: 8px;
  border: 2px solid #d0d5dd;
}

.hub-reset-btn {
  padding: 10px;
  background: #004990;
  border: 2px solid #004990;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hub-reset-icon {
  width: 24px;
  height: 24px;
  filter: brightness(0) invert(1);
}

.hub-reset-btn:hover {
  background: #fff;
  border-color: #d0d5dd;
}

.hub-reset-btn:hover .hub-reset-icon {
  filter: none;
}

/* Mobile */
@media (max-width: 767px) {
  .hub-reset-btn {
    width: 88%;
    margin-left: 6%;
    margin-right: 6%;
    margin-top: 5%;
    justify-content: center;
  }
}


/* =============================================
   CARDS — BASE
   ============================================= */
#hubCardsContainer {
  margin-left: 6;
}

.hub-card {
  display: flex;
  background: #fff;
  border-left: 4px solid #fbb800;
  border-radius: 0px 12px 12px 0px;
  margin-bottom: 25px;
  overflow: hidden;
  box-shadow: 3px 4px 8px rgba(0, 0, 0, .1);
  position: relative;
  min-height: 180px;
}

/* Solo las de 2026 son clickeables */
.hub-card-clickable {
  cursor: pointer;
  transition: box-shadow 0.25s, transform 0.25s;
}

.hub-card-clickable:hover {
  box-shadow: 0 8px 24px rgba(0, 50, 80, 0.12);
  transform: translateY(-2px);
}

/* Card 2025 — sin imagen, ancho completo */
.hub-card-no-image {
  cursor: default;
}

.hub-card-img {
  width: 180px;
  flex-shrink: 0;
  margin: 10px 10px 10px 10px;
  object-fit: contain;
}

.hub-card-placeholder {
  width: 210px;
  background: #f5f5f5;
  flex-shrink: 0;
}

.hub-card-body {
  flex: 1;
  padding: 16px 16px 16px 16px;
}

/* En 2025 sin imagen el body ocupa todo el ancho */
.hub-card-no-image .hub-card-body {
  padding: 16px 200px 60px 24px;
}

.hub-card-label {
  font-size:14px;
  color: #004990;
  font-weight: 500;
  padding-top: 8px;
}

.hub-card h3.hub-card-title,
h3.hub-card-title {
  font-family: "Inter", sans-serif;
  font-size: 1.20rem;
  font-weight: 500;
  margin: 14px 0 10px;
  line-height: 1.4;
  color: #212427;
}

.hub-card-authors {
  color: #212427;
  margin-bottom: 16px;
}

/* Autores FALP — estilo label + valor, igual que meta */
.hub-card-authors-falp {
  font-size: 0.8rem;
  color: #212427;
  margin-bottom: 12px;
  line-height: 1.3;
}

.hub-card-authors-falp strong {
  display: block;
  color: #212427;
  font-size: 0.8rem;
  margin-bottom: 4px;
  font-weight: 500;
}

.hub-card-authors-falp span {
  display: block;
  color: #212427!important;
  line-height: 1.5em;
}

.hub-card-meta {
  display: flex;
  gap: 40px;
  font-size: 0.8rem;
  color: #212427;
}

.hub-card-meta strong {
  display: block;
  color: #212427!important;
  font-weight: 500 !important;
  margin-bottom: 0;
  font-size: 0.8rem;
  line-height: 1.2;
}

.hub-card-meta div {
  line-height: 0.7em;
  padding-bottom: 4px;
  color: #212427!important;
  font-weight: 300 !important;
}

/* Botón — ahora anclado abajo derecha */
.hub-card-actions {
  position: absolute;
  bottom: 18px;
  right: 20px;
  padding: 0;
  min-width: auto;
}

.hub-btn {
  background: #004990;
  color: white !important;
  padding: 8px 12px;
  border-radius: 50px;
  text-decoration: none !important;
  font-weight: 400;
  text-align: center;
  display: inline-block;
  font-size: 0.9rem;
}

.hub-btn:hover {
  background: #006699;
  color: white !important;
}


/* =============================================
   PAGINACIÓN
   ============================================= */
.hub-pagination {
  text-align: center;
  margin: 50px 0;
}

.hub-pagination button {
  margin: 0 4px;
  padding: 10px 18px;
  border: 2px solid #d0d5dd;
  border-radius: 6px;
  background: #fff;
  color: #212427;
  font-size: 0.95rem;
  font-weight: 400;
  cursor: pointer;
  font-family: inherit;
}

.hub-pagination button:hover:not(:disabled) {
  border-color: #006699;
  color: #006699;
}

.hub-pagination button.active {
  background: #006699;
  color: white;
  border-color: #006699;
}

.hub-pagination button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.hub-pagination button.hub-nav-btn {
  font-weight: 400;
  background: #006699;
  color: white;
  border-color: #006699;
}

.hub-pagination button.hub-nav-btn:hover:not(:disabled) {
  background: #004d73;
  color: white;
}

.hub-results-info {
  font-size: 1.1rem;
  font-weight: 400;
  color: #212427;
  margin-bottom: 10px;
  margin-left: 0%;
  margin-right: 6%;
}

.hub-empty {
  text-align: center;
  padding: 50px 20px;
  color: #888;
  font-size: 1rem;
}


/* =============================================
   RESPONSIVE — Desktop XL  (≥ 1600px)
   ============================================= */
@media (min-width: 1600px) {
  .hub-wrap {
    max-width: 1400px;
    padding: 0px 60px 40px 60px;
  }
}


/* =============================================
   RESPONSIVE — Desktop  (1025px – 1599px)
   ============================================= */
@media (min-width: 1025px) and (max-width: 1599px) {
  .hub-wrap {
    max-width: 1200px;
    padding-bottom: 4%;
  }
}


/* =============================================
   RESPONSIVE — Tablet  (768px – 1024px)
   ============================================= */
@media (min-width: 768px) and (max-width: 1024px) {
  .hub-wrap h2 {
    font-size: 1.8rem;
    margin-left: 2%;
  }

  .hub-results-info {
    margin-left: 2%;
  }

  .hub-subtitle {
    font-size: 1.3rem;
    margin-left: 2%;
    padding-right: 4%;
  }

  .hub-filter-wrap {
    margin-left: 2%;
    margin-top: 4%;
  }

  .hub-card-img {
    width: 140px;
  }

  .hub-card-body {
    padding: 14px 180px 24px 18px;
  }
	
  .hub-card-meta div {
		line-height: 1.3em;
	}

  .hub-card-no-image .hub-card-body {
    padding: 14px 180px 56px 18px;
  }

  .hub-card h3.hub-card-title,
  h3.hub-card-title {
    font-size: 1.1rem;
  }

  .hub-card-meta {
    gap: 20px;
    font-size: 0.88rem;
  }
	
  .hub-card-actions {
    bottom: 14px;
    right: 16px;
  }

  .hub-filter-select {
    min-width: 200px;
  }
	
    /* Input de búsqueda al 100% arriba */
  #hubSearchInput {
    flex: 0 0 100%;
    min-width: 100%;
  }

  /* Los 3 selects comparten la segunda fila */
  #hubYearFilter,
  #hubTypeFilter,
  #hubCategoryFilter {
    flex: 1;
    min-width: 0;
  }
}


/* =============================================
   RESPONSIVE — Mobile  (≤ 767px)
   ============================================= */
@media (max-width: 767px) {
  .hub-wrap {
    padding: 0 16px;
  }

  .hub-wrap h2 {
    font-size: 1.9rem;
    line-height: 1.3em;
  }
	
	.hub-stats-subtitle {
	  font-size: 1.0rem!important;
	}

  .hub-subtitle {
    font-size: 1rem;
    margin-bottom: 24px;
    line-height: 1.3em;
  }

  .hub-filter-wrap {
    margin-top: 5%;
    display: block;
  }
	
  .hub-results-info {
		font-size: 0.93rem;
	}

  .hub-filter-select {
    width: 88%;
    min-width: unset;
    margin-left: 6%;
    margin-right: 6%;
    margin-top: 5%;
  }

  .hub-card {
    flex-direction: column;
    min-height: auto;
  }

  .hub-card-img {
    display: none;
    object-fit: contain;
  }

  .hub-card-placeholder {
    display: none;
  }

  .hub-card-body {
    padding: 16px 16px 16px 16px;
  }
	
  .hub-card-meta div {
		line-height: 1.3em;
	}

  .hub-card-no-image .hub-card-body {
    padding: 18px 16px 16px;
  }

  .hub-card h3.hub-card-title,
  h3.hub-card-title {
    font-size: 1.05rem;
    margin: 10px 0 8px;
  }

  .hub-card-meta {
    flex-direction: column;
    gap: 8px;
  }

  .hub-card-actions {
    position: static !important;
    display: flex !important;
    justify-content: flex-end;
    padding: 0 16px 16px;
  }

  .hub-btn {
    width: auto;
	padding: 8px 16px;
	font-size: 0.8rem;
	  
  }

  .hub-pagination button {
    padding: 8px 12px;
    font-size: 0.82rem;
    margin: 0 2px;
  }

  .hub-pagination button.hub-nav-btn {
    padding: 8px 10px;
    font-size: 0.8rem;
    margin-top: 4%;
  }

  .hub-pagination {
    gap: 4px;
    margin: 30px 0;
  }
}

/* =============================================
   STATS SECTION
   ============================================= */
.hub-stats-subtitle {
  font-size: 1.3rem;
  font-family: 'Inter';
  color: #212427;
  margin-bottom: 2%;
  font-weight: 500;
}

.hub-stats {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
 
.hub-stat-card {
  background: #f5f7fa;
  border-radius: 12px;
  padding: 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}
 
.hub-stat-label {
  color: #212427;
  font-family: 'Inter';
  font-size: 1.2rem;
  line-height: 1.3em;
  font-weight: 500;
  min-height: 2.6em;
}
 
.hub-stat-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
 
.hub-stat-icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  object-fit: contain;
}
 
.hub-stat-number {
  font-family: "Inter", sans-serif !important;
  font-size: 2.5rem !important;
  font-weight: 700 !important;
  color: #212427 !important;
  line-height: 1 !important;
}
 
/* Tablet — 3+3 */
@media (min-width: 768px) and (max-width: 1024px) {
  .hub-stats {
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
  }
  .hub-stat-number {
    font-size: 1.7rem !important;
  }
}
 
/* Mobile — 2+2+2 */
@media (max-width: 767px) {
  .hub-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 28px;
  }
  .hub-stat-card {
    padding: 16px 14px;
    gap: 10px;
  }
  .hub-stat-label {
    font-size: 0.8rem;
    min-height: 2.4em;
  }
  .hub-stat-icon {
    width: 32px;
    height: 32px;
  }
  .hub-stat-number {
    font-size: 1.5rem !important;
  }
}