.courses{
  background: var(--color-bg);
}

.courses-grid{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: minmax(200px, auto);
  gap: clamp(0.8rem, 1.6vw, 1.4rem);
}

.course-card{
  position: relative;
  grid-column: span 3;
  grid-row: span 2;
  background: var(--color-white);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-line);
  transition: border-color var(--dur-fast);
}
.course-card:hover{ border-color: var(--color-line-strong); }

.course-card.is-large{ grid-column: span 4; grid-row: span 3; }
.course-card.is-small{ grid-column: span 2; grid-row: span 2; }
.course-card:nth-child(1){ grid-column: span 4; grid-row: span 3; }
.course-card:nth-child(2){ grid-column: span 2; grid-row: span 3; }
.course-card:nth-child(3){ grid-column: span 2; grid-row: span 2; }
.course-card:nth-child(4){ grid-column: span 2; grid-row: span 2; }
.course-card:nth-child(5){ grid-column: span 2; grid-row: span 2; }
.course-card:nth-child(6){ grid-column: span 3; grid-row: span 3; }

.course-media{
  position: relative;
  flex: 1 1 auto;
  overflow: hidden;
  min-height: 160px;
}
.course-media img{
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.9s var(--ease-editorial);
}
.course-card:hover .course-media img{ transform: scale(1.06); }

.course-index{
  position: absolute;
  top: 1rem; right: 1rem;
  z-index: 2;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(2rem, 3vw, 3.2rem);
  color: var(--color-white);
  mix-blend-mode: difference;
  line-height: 1;
}

.course-annotation{
  position: absolute;
  bottom: 1rem; left: 1rem;
  z-index: 2;
  background: var(--color-lime);
  color: var(--color-black);
  font-family: var(--font-hand);
  font-size: 1rem;
  padding: 0.3rem 0.7rem 0.35rem;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.course-card:hover .course-annotation{ opacity: 1; transform: translateY(0); }

.course-body{
  padding: 1.3rem 1.4rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.course-title{
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.15rem, 1.6vw, 1.55rem);
  letter-spacing: -0.01em;
  line-height: 1.08;
}
.course-desc{
  color: var(--color-muted);
  font-size: 0.95rem;
  max-width: 34ch;
}

.course-arrow{
  position: absolute;
  top: 1rem; left: 1rem;
  z-index: 2;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translate(-6px, -6px) scale(0.85);
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.course-arrow svg{ width: 18px; height: 18px; transform: rotate(135deg); }
.course-card:hover .course-arrow{ opacity: 1; transform: translate(0,0) scale(1); }

@media (max-width: 1100px){
  .courses-grid{ grid-template-columns: repeat(4, 1fr); }
  .course-card,
  .course-card:nth-child(1),
  .course-card:nth-child(2),
  .course-card:nth-child(3),
  .course-card:nth-child(4),
  .course-card:nth-child(5),
  .course-card:nth-child(6){ grid-column: span 2; grid-row: span 2; }
}

@media (max-width: 680px){
  .courses-grid{ grid-template-columns: 1fr; }
  .course-card,
  .course-card:nth-child(1),
  .course-card:nth-child(2),
  .course-card:nth-child(3),
  .course-card:nth-child(4),
  .course-card:nth-child(5),
  .course-card:nth-child(6){ grid-column: 1; grid-row: auto; }
  .course-media{ min-height: 220px; }
  .course-annotation{ opacity: 1; transform: none; }
  .course-arrow{ opacity: 1; transform: none; }
}
