/*
 * Components shared by the landing cards and the course page: cover box,
 * price, numbered step badge and the syllabus path. Uses only tokens.css.
 */

/* Cover: fixed 16:9 box. */
.course-cover {
  aspect-ratio: 16 / 9;
  background: var(--color-soft);
}

.course-cover__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* No cover: branded cobalt block with the course initial. */
.course-cover__fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: var(--color-accent);
  color: var(--color-highlight);
  font-family: var(--font-heading);
  font-size: var(--text-3xl);
  font-weight: var(--weight-bold);
}

/* Price */
.course-price {
  font-weight: var(--weight-bold);
}

.course-price__old {
  margin-right: var(--space-2);
  color: var(--color-muted);
  font-weight: var(--weight-regular);
}

/* Numbered step badge (01, 02, …): the path motif. */
.step-badge {
  display: inline-flex;
  flex-shrink: 0;
  align-self: flex-start;
  align-items: center;
  justify-content: center;
  min-width: var(--space-7);
  height: var(--space-7);
  padding: 0 var(--space-2);
  border: calc(var(--border-width) * 2) solid var(--color-accent);
  border-radius: var(--radius-pill);
  background: var(--color-ground);
  color: var(--color-accent);
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
}

/* Label row (block counts etc.) */
.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
