/* Canonical horizontal Course card shared by every surface. */
.course-catalog-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border-radius: 12px;
  color: var(--white);
  text-decoration: none;
  transform: translateZ(0);
  transition: transform 220ms ease;
}
.course-catalog-card__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: inherit;
  background: #191c21;
  isolation: isolate;
}
.course-catalog-card__media::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  border: 1px solid rgb(255 255 255 / 0.08);
  border-radius: inherit;
  pointer-events: none;
  transition: border-color 200ms ease;
}
.course-catalog-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
  transition: filter 260ms ease, transform 260ms ease;
}
.course-catalog-card__placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: rgb(255 255 255 / 0.5);
  background: radial-gradient(circle at 50% 42%, #343a43 0%, #191c21 62%, #111317 100%);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.course-catalog-card__lesson-count {
  position: absolute;
  z-index: 3;
  top: 8px;
  left: 8px;
  max-width: calc(100% - 24px);
  padding: 7px 12px;
  overflow: hidden;
  border-radius: 999px;
  color: var(--white);
  background: rgb(24 28 35 / 0.82);
  box-shadow: 0 4px 18px rgb(0 0 0 / 0.18);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
  backdrop-filter: blur(8px);
}
.course-catalog-card__play {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border: 2.25px solid rgb(255 255 255 / 0.86);
  border-radius: 50%;
  color: var(--white);
  background: rgb(28 32 34 / 0.45);
  box-shadow: 0 3px 16px rgb(13 16 18 / 0.3);
  transform: translate(-50%, -50%);
  transition: background-color 200ms ease, transform 200ms ease;
  backdrop-filter: blur(3px);
}
.course-catalog-card__play svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.85;
  transform: translateX(1px);
}
.course-catalog-card__copy {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 20px 0 0;
}
.course-catalog-card__eyebrow {
  display: -webkit-box;
  overflow: hidden;
  color: rgb(255 255 255 / 0.56);
  font-family: "Be Vietnam Pro", sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.13em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.course-catalog-card__title {
  display: -webkit-box;
  overflow: hidden;
  color: var(--white);
  font-size: clamp(17px, 1.35vw, 20px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.018em;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.course-catalog-card--course-catalog .course-catalog-card__copy {
  padding-top: 18px;
}
.course-catalog-card--course-catalog .course-catalog-card__title {
  margin-top: 8px;
  font-family: "EB Garamond", Georgia, serif;
  font-size: calc(clamp(23px, 1.8vw, 26px) - 1px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.012em;
}
.course-catalog-card__caption {
  display: -webkit-box;
  margin-top: 9px;
  overflow: hidden;
  color: rgb(255 255 255 / 0.68);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.course-catalog-card__meta {
  display: block;
  margin-top: 10px;
  color: rgb(255 255 255 / 0.48);
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.35;
}
.course-catalog-card:hover { color: var(--white); transform: translateY(-2px); }
.course-catalog-card:hover .course-catalog-card__media::after { border-color: rgb(255 255 255 / 0.34); }
.course-catalog-card:hover .course-catalog-card__image { filter: brightness(1.05) saturate(1.04); transform: scale(1.04); }
.course-catalog-card:hover .course-catalog-card__play { background: rgb(28 32 34 / 0.68); transform: translate(-50%, -50%) scale(1.08); }
.course-catalog-card:focus-visible { outline: 2px solid var(--white); outline-offset: 5px; }
@media (min-width: 768px) {
.content-grid--3 .course-catalog-card--course-catalog .course-catalog-card__title {
  display: -webkit-box;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
}
@media (max-width: 767px) {
.course-catalog-card { border-radius: 10px; }
.course-catalog-card__lesson-count { top: 8px; left: 8px; padding: 6px 9px; font-size: 10px; }
.course-catalog-card__play { width: 42px; height: 42px; border-width: 2px; }
.course-catalog-card__play svg { width: 22px; height: 22px; }
.course-catalog-card__copy { padding-top: 11px; }
.course-catalog-card__title { font-size: 16px; }
.course-catalog-card--course-catalog .course-catalog-card__copy { padding-top: 14px; }
.course-catalog-card--course-catalog .course-catalog-card__title { margin-top: 7px; font-size: 22px; line-height: 1.25; }
.course-catalog-card__eyebrow { font-size: 9.5px; line-height: 1.3; letter-spacing: 0.11em; }
.course-catalog-card__caption { min-height: 4.05em; margin-top: 5px; font-size: 11px; }
.course-catalog-card__meta { margin-top: 10px; font-size: 11px; }
.course-catalog-card--course-catalog .course-catalog-card__meta { margin-top: 8px; }
}
@media (max-width: 479px) {
.course-catalog-card { border-radius: 8px; }
}
@media (hover: none) {
.course-catalog-card:hover { transform: none; }
.course-catalog-card:hover .course-catalog-card__media::after { border-color: rgb(255 255 255 / 0.08); }
.course-catalog-card:hover .course-catalog-card__image { filter: none; transform: scale(1.01); }
.course-catalog-card:hover .course-catalog-card__play { background: rgb(28 32 34 / 0.45); transform: translate(-50%, -50%); }
}

.course-catalog-card--media-only { overflow: hidden; }
