/* Catálogos generales: cursos, proyectos, publicaciones, recursos y proyectos de alumnos */
.catalog-hero {
  background: #fff;
  padding: 5rem 0 2.25rem;
}
.ibero-section[data-catalog-page] {
  padding-top: clamp(2.25rem, 3vw, 2.75rem);
}
.catalog-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr);
  gap: 1rem;
  align-items: end;
  margin: 0 0 2rem;
}
.catalog-toolbar label {
  color: #6b6b6b;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.catalog-toolbar .form-control {
  border-radius: 0;
  border-color: var(--ibero-border, #d9d9d9);
  padding: .85rem 1rem;
}
.catalog-summary {
  color: #5e6267;
  font-weight: 600;
  margin-bottom: 1.5rem;
}
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.1rem, 2vw, 1.8rem);
}
.catalog-card {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--ibero-border, #d9d9d9);
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  transition: border-color .18s ease;
}
.catalog-card:hover {
  border-color: var(--ibero-red, #e00034);
}
.catalog-card-img {
  width: 100%;
  height: 190px;
  aspect-ratio: auto;
  object-fit: cover;
  background: #efefef;
}
.catalog-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 330px;
  padding: 1.5rem;
}
.catalog-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1rem;
}
.catalog-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(224, 0, 52, .16);
  border-radius: 999px;
  background: rgba(224, 0, 52, .08);
  color: var(--ibero-red, #e00034);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .34rem .58rem;
}
.catalog-type {
  background: var(--ibero-red, #e00034);
  border-color: var(--ibero-red, #e00034);
  color: #fff;
}
.catalog-card-title {
  font-family: var(--ibero-serif, Georgia, serif);
  font-size: clamp(1.28rem, 1.45vw, 1.62rem);
  line-height: 1.14;
  letter-spacing: -.025em;
  margin-bottom: .75rem;
}
.catalog-card-desc {
  color: #34373b;
  font-size: .98rem;
  line-height: 1.48;
  margin-bottom: 1rem;
}
.catalog-card-footer {
  flex: 0 0 auto;
  margin-top: auto;
  padding: 1.25rem 1.5rem 1.35rem;
  border-top: 1px solid #eeeeee;
  background: #fafafa;
}
.catalog-date,
.catalog-author {
  color: #6c6c6c;
  font-size: .94rem;
}
.catalog-date {
  margin-bottom: .7rem;
}
.catalog-card-footer .catalog-participants {
  margin: 0;
}
.catalog-link {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ibero-red, #e00034);
  border-radius: 999px;
  background: var(--ibero-red, #e00034);
  color: #fff;
  font-size: .88rem;
  font-weight: 800;
  letter-spacing: .02em;
  padding: .55rem .9rem;
  margin-top: auto;
  align-self: flex-start;
  text-decoration: none;
}
.catalog-link:hover {
  border-color: #b90025;
  background: #b90025;
  color: #fff;
}
.catalog-link-disabled,
.catalog-link-disabled:hover {
  border-color: #d7d7d7;
  background: #f4f4f4;
  color: #777;
  cursor: not-allowed;
}
.catalog-empty {
  border: 1px solid var(--ibero-border, #d9d9d9);
  background: #fff;
  padding: 2rem;
  text-align: center;
  color: #62666b;
}
.catalog-detail-hero {
  padding: 5rem 0 2.5rem;
  background: #fff;
}
.catalog-detail-cover {
  width: 100%;
  max-height: 520px;
  object-fit: cover;
  border: 1px solid var(--ibero-border, #d9d9d9);
  background: #efefef;
}
.catalog-detail-panel {
  border: 1px solid var(--ibero-border, #d9d9d9);
  padding: 1.5rem;
  background: #fff;
}
.catalog-detail-panel dt {
  color: var(--ibero-red, #e00034);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.catalog-detail-panel dd {
  margin-bottom: 1rem;
}
@media (max-width: 991.98px) {
  .catalog-toolbar { grid-template-columns: 1fr; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-hero { padding-top: 3.5rem; }
}

/* Participantes en tarjetas y fichas */
.catalog-participants {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .85rem;
}

.catalog-participants-compact {
  gap: .35rem;
}

.catalog-participant {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  padding: .24rem .62rem .24rem .24rem;
  border: 1px solid rgba(0,0,0,.09);
  border-radius: 999px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  max-width: 100%;
}

.catalog-participant:hover {
  color: #8c1d40;
  border-color: rgba(140,29,64,.35);
}

.catalog-participant img,
.catalog-participant-initial {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 26px;
}

.catalog-participant-initial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #8c1d40;
  color: #fff;
  font-weight: 700;
  font-size: .72rem;
}

.catalog-participant strong {
  display: block;
  font-size: .82rem;
  font-weight: 500;
  line-height: 1.05;
}

.catalog-participant small {
  display: block;
  font-size: .7rem;
  color: #666;
  line-height: 1.1;
}
