/* Курсы: обложка целиком, сетка рядами сверху вниз */
.course-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
  align-items: stretch;
}
.course-grid .course-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.course-grid .course-cover {
  aspect-ratio: 16 / 10;
  width: 100%;
  background: linear-gradient(180deg, #ece6db, #e2dbcf);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.course-grid .course-cover img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  transform: none !important;
}
.course-grid .course-card:hover .course-cover img {
  transform: none !important;
}
.course-grid .card-body { flex: 1; }

.course-hero-cover {
  width: 100%;
  max-height: 28rem;
  object-fit: contain;
  object-position: center;
  background: #ece6db;
  border-radius: 1rem;
  border: 1px solid var(--line);
}

.lesson-player {
  margin: 0.35rem 0 0;
  aspect-ratio: 16 / 9;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #111;
}
.lesson-player video,
.lesson-player iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #111;
  object-fit: contain;
}

.upload-progress { display: grid; gap: 0.4rem; }
.upload-bar {
  height: 0.55rem;
  border-radius: 999px;
  background: var(--line);
  overflow: hidden;
}
.upload-bar > span {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--accent), #2d6b61);
  border-radius: inherit;
  transition: width 0.15s linear;
}
.upload-progress.is-done .upload-bar > span { background: #1f4e46; }
.upload-progress.is-err .upload-bar > span { background: var(--danger); }

@media (min-width: 640px) {
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  .course-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
