/* Catalog — aligned with inner marketing pages (News / Blog rhythm) */

.rjx-catalog-intro {
  margin-bottom: var(--rjx-section-intro-gap);
}

.rjx-catalog-intro__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--rjx-space-sm);
  width: 100%;
}

/* Override .rjx-section__intro .rjx-section__title { width: 100% } so badge stays on the same row */
.rjx-catalog-intro__head .rjx-section__title {
  margin-bottom: var(--rjx-space-sm);
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  max-width: calc(100% - 5.5rem);
}

.rjx-catalog-intro__head .rjx-badge {
  flex-shrink: 0;
  align-self: center;
  margin-top: 0.15rem;
}

.rjx-catalog-section__lead {
  margin-top: var(--rjx-space-sm);
  margin-bottom: var(--rjx-space-lg);
  font-size: 0.95rem;
}

.rjx-catalog-section__lead + .rjx-catalog-grid {
  margin-top: 0;
}

/* Slightly denser poster grid than default, same card language as site */
.rjx-catalog-grid {
  gap: var(--rjx-space-md);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
  .rjx-catalog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .rjx-catalog-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.rjx-catalog-section .rjx-card__media {
  aspect-ratio: 9 / 16;
}

.rjx-catalog-section .rjx-card__media img {
  object-fit: cover;
  object-position: center top;
}

.rjx-catalog-section .rjx-card:focus-within {
  box-shadow:
    var(--rjx-shadow-card),
    0 0 0 2px rgba(var(--rjx-brand-rgb), 0.45);
}

@media (prefers-reduced-motion: reduce) {
  .rjx-catalog-section .rjx-card:hover {
    transform: none;
  }
}
