/*
 * GFS Academy – INTERNAL CATALOG ONLY
 * -----------------------------------
 * Deliberately scoped to .gfs-page-kind-academy so homepage Academy/Splide
 * styles can evolve independently without changing full catalog cards.
 */

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfs-academy-content,
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-list{
  width:100%;
  min-width:0;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-list{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-rows:440px!important;
  align-items:start!important;
  align-content:start!important;
  gap:18px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}

/* Fixed catalog card box: content volume must never stretch the row. */
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog > .gfsa-course-card{
  box-sizing:border-box!important;
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:440px!important;
  min-height:440px!important;
  max-height:440px!important;
  margin:0!important;
  padding:15px!important;
  align-self:start!important;
  overflow:hidden!important;
}

/* Current card markup: one full-card anchor owns the internal layout. */
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card > .gfsa-card-link{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:132px 24px 58px minmax(0,1fr) 42px!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  padding:0!important;
  margin:0!important;
  color:inherit!important;
  text-decoration:none!important;
  overflow:hidden!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-cover,
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-placeholder{
  display:block!important;
  width:100%!important;
  height:132px!important;
  min-height:132px!important;
  max-height:132px!important;
  margin:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-image{
  display:block!important;
  width:100%!important;
  height:132px!important;
  min-height:132px!important;
  max-height:132px!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  margin:0!important;
  border-radius:12px!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-difficulty{
  display:block!important;
  align-self:center!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  line-height:24px!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card h3{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  min-width:0!important;
  max-width:100%!important;
  max-height:58px!important;
  margin:0!important;
  overflow:hidden!important;
  line-height:1.75!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card p{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:4!important;
  min-width:0!important;
  max-width:100%!important;
  max-height:92px!important;
  margin:0!important;
  overflow:hidden!important;
  line-height:1.75!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card .gfsa-button{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  margin:0!important;
  padding:7px 10px!important;
  align-self:end!important;
}

/* The click overlay must follow the card box instead of creating page height. */
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-link::after{
  inset:0!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}

.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-pagination{
  grid-column:1/-1;
}

@media (max-width:1199px){
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media (max-width:899px){
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:420px!important;
    gap:14px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog > .gfsa-course-card{
    height:420px!important;
    min-height:420px!important;
    max-height:420px!important;
    padding:13px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card > .gfsa-card-link{
    grid-template-rows:118px 22px 54px minmax(0,1fr) 40px!important;
    gap:7px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-cover,
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-placeholder,
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-image{
    height:118px!important;
    min-height:118px!important;
    max-height:118px!important;
  }
}

@media (max-width:599px){
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfs-academy-shell{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog{
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-rows:390px!important;
    gap:12px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-catalog > .gfsa-course-card{
    height:390px!important;
    min-height:390px!important;
    max-height:390px!important;
    padding:11px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card > .gfsa-card-link{
    grid-template-rows:108px 22px 50px minmax(0,1fr) 38px!important;
    gap:6px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-cover,
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-placeholder,
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-card-image{
    height:108px!important;
    min-height:108px!important;
    max-height:108px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card p{
    -webkit-line-clamp:3!important;
    max-height:74px!important;
  }
  .gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card .gfsa-button{
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
  }
}

/* Legacy card-markup fallback: direct children still stay inside the fixed box. */
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card > p{
  flex:1 1 auto!important;
}
.gfs-page-main.gfs-page-kind-academy .gfs-academy-section.is-page .gfsa-course-card > .gfsa-button{
  margin-top:auto!important;
}
