/*
 * MSID shared card geometry.
 * Homepage cards keep a compact content-driven flow. Course catalogue/archive cards
 * intentionally use one equal-height footprint so optional metadata never changes
 * the outer card size from one advertisement to the next.
 */

body.home{
  --msid-home-card-media-ratio:16/10;
}

body.home :is(#front-courses-grid,.mc-trainer-grid,.msid-home-school-grid,.msid-home-articles-grid){
  align-items:stretch;
}

body.home :is(
  #front-courses-grid>.msid-home-course-card,
  .mc-trainer-grid>.trainer-card-editorial,
  .msid-home-school-grid>.sp-school-ad-card,
  .msid-home-articles-grid>.msid-home-article
){
  min-width:0;
  height:auto;
  min-height:0;
  align-self:start;
  overflow:hidden;
}

body.home :is(
  .msid-home-course-card .sp-tc-media,
  .mc-trainer-grid .trainer-card-media,
  .msid-home-school-grid .sp-tc-media,
  .msid-home-article .msid-home-article-media
){
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:var(--msid-home-card-media-ratio);
  flex:0 0 auto;
  overflow:hidden;
}

body.home :is(
  .msid-home-course-card .sp-tc-card-body,
  .msid-home-school-grid .sp-tc-card-body,
  .mc-trainer-grid .trainer-card-body,
  .msid-home-article .msid-home-article-copy
){
  min-height:0;
  height:auto;
  flex:0 0 auto;
  overflow:hidden;
}

body.home :is(
  #front-courses-grid>.msid-home-course-card,
  .mc-trainer-grid>.trainer-card-editorial,
  .msid-home-school-grid>.sp-school-ad-card,
  .msid-home-articles-grid>.msid-home-article
){
  display:flex;
  flex-direction:column;
}

body.home .mc-trainer-grid .trainer-card-body{display:flex;flex-direction:column;gap:9px;padding:14px 16px 16px}
body.home .mc-trainer-grid .trainer-card-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.home .mc-trainer-grid .trainer-card-title{min-height:2.8em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body.home .mc-trainer-grid .trainer-card-facts{flex:0 0 auto}
body.home .mc-trainer-grid .trainer-card-field-tags{max-height:31px;overflow:hidden;flex:0 0 auto}
body.home .mc-trainer-grid .trainer-card-bio{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:3.15em;margin:0}
body.home .mc-trainer-grid .trainer-card-institution{display:flex;min-height:40px;overflow:hidden}
body.home .mc-trainer-grid .trainer-card-institution strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.home .mc-trainer-grid .trainer-card-footer{margin-top:2px;flex:0 0 auto}

body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-body{display:flex;flex-direction:column}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-body{gap:8px;padding:14px 16px 16px}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-facts{gap:7px;padding-top:0}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-facts>div{padding:7px 9px}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-footer{flex:0 0 auto;padding-top:9px}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-price{margin-bottom:7px}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-actions{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:7px}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) :is(.sp-btn-view,.sp-btn-wa){min-height:40px}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-tags{max-height:31px;overflow:hidden;flex:0 0 auto}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-title{min-height:2.9em;max-height:2.9em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-role{min-height:1.6em;max-height:1.6em;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-footer{margin-top:2px}

body.home .msid-home-article .msid-home-article-copy{display:flex;flex-direction:column;padding:16px}
body.home .msid-home-article .msid-home-article-meta{min-height:22px;max-height:22px;overflow:hidden}
body.home .msid-home-article h3{min-height:3.1em;max-height:3.1em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body.home .msid-home-article p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-bottom:12px}
body.home .msid-home-article-link{margin-top:4px}

@media (min-width:1181px){
  body.home :is(#front-courses-grid,.mc-trainer-grid,.msid-home-school-grid,.msid-home-articles-grid){
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
    overflow:visible;
    padding:0;
  }
}

@media (min-width:768px) and (max-width:1180px){
  body.home :is(#front-courses-grid,.mc-trainer-grid,.msid-home-school-grid,.msid-home-articles-grid){
    align-items:flex-start;
    display:flex;
    gap:16px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    padding-bottom:8px;
  }
  body.home :is(#front-courses-grid,.mc-trainer-grid,.msid-home-school-grid,.msid-home-articles-grid)>*{
    flex:0 0 min(310px,78vw);
    scroll-snap-align:start;
  }
}

/* Desktop/archive footprint: use the same listing-card width language and media ratio. */
@media (min-width:768px){
  body.post-type-archive-tk_trainer .msid-results-grid--tk_trainer,
  body.page-template-page-private-lessons .sp-teachers-grid,
  .msid-journal-grid{
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:22px;
    align-items:stretch;
  }

  body.post-type-archive-tk_trainer .trainer-card-editorial,
  body.page-template-page-private-lessons .sp-school-ad-card,
  .msid-journal-card{
    min-height:0;
    height:auto;
    align-self:start;
  }

  /*
   * Course archive cards use one canonical footprint.
   * The grid owns equal row height, while each card stretches to fill that row.
   * Variable titles/tags are clamped so one advertisement cannot resize the
   * complete catalogue. Missing optional metadata simply leaves breathing room
   * above the price/actions instead of shortening the card.
   */
  body.post-type-archive-tk_course #results-grid,
  body.tax-tk_field #results-grid{
    align-items:stretch;
    grid-auto-rows:1fr;
  }
  body.post-type-archive-tk_course #results-grid>.course-card-editorial,
  body.tax-tk_field #results-grid>.course-card-editorial{
    min-height:0;
    height:100%;
    align-self:stretch;
  }
  body.post-type-archive-tk_course .course-card-editorial .course-editorial-body,
  body.tax-tk_field .course-card-editorial .course-editorial-body{
    flex:1 1 auto;
    min-height:0;
    height:100%;
  }
  body.post-type-archive-tk_course .course-card-editorial .course-editorial-title,
  body.tax-tk_field .course-card-editorial .course-editorial-title{
    display:-webkit-box;
    min-height:3.1em;
    max-height:3.1em;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
  }
  body.post-type-archive-tk_course .course-card-editorial .course-editorial-tags,
  body.tax-tk_field .course-card-editorial .course-editorial-tags{
    min-height:68px;
    max-height:68px;
    align-content:flex-start;
    overflow:hidden;
  }
  body.post-type-archive-tk_course .course-card-editorial .course-editorial-price,
  body.tax-tk_field .course-card-editorial .course-editorial-price{
    margin-top:auto;
  }
  body.post-type-archive-tk_course .course-card-editorial .course-editorial-actions,
  body.tax-tk_field .course-card-editorial .course-editorial-actions{
    margin-top:0;
  }

  body.post-type-archive-tk_trainer .trainer-card-editorial,
  body.page-template-page-private-lessons .sp-school-ad-card,
  .msid-journal-card{display:flex;flex-direction:column}
  body.post-type-archive-tk_trainer .trainer-card-media,
  body.page-template-page-private-lessons .sp-school-ad-card .sp-tc-media,
  .msid-journal-media{
    width:100%;
    min-height:0;
    aspect-ratio:16/10;
    flex:0 0 auto;
  }
  body.post-type-archive-tk_trainer .trainer-card-body,
  body.page-template-page-private-lessons .sp-school-ad-card .sp-tc-card-body,
  .msid-journal-card-body{flex:0 0 auto;min-height:0}
  body.post-type-archive-tk_trainer .trainer-card-body,
  body.page-template-page-private-lessons .sp-school-ad-card .sp-tc-card-body,
  .msid-journal-card-body{display:flex;flex-direction:column}
  body.post-type-archive-tk_trainer .trainer-card-footer,
  body.page-template-page-private-lessons .sp-school-ad-card .sp-tc-card-footer,
  .msid-journal-link{margin-top:4px}
}

@media (max-width:767px){
  /* Card-size owns density only on phones. Grid geometry is finalized by mobile-app.css. */
  body.home :is(
    .msid-home-course-card .sp-tc-media,
    .mc-trainer-grid .trainer-card-media,
    .msid-home-school-grid .sp-tc-media,
    .msid-home-article .msid-home-article-media
  ){
    width:100%;
    height:auto;
    aspect-ratio:16/10;
  }
  body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-body,
  body.home .mc-trainer-grid .trainer-card-body,
  body.home .msid-home-article .msid-home-article-copy{padding:11px;gap:6px}
  body.home .mc-trainer-grid .trainer-card-facts{gap:5px}
  body.home .mc-trainer-grid .trainer-card-facts>div{padding:6px 7px}
  body.home .mc-trainer-grid .trainer-card-facts small{font-size:.58rem}
  body.home .mc-trainer-grid .trainer-card-facts strong{font-size:.66rem}
  body.home .mc-trainer-grid .trainer-card-bio{display:none}
  body.home .mc-trainer-grid .trainer-card-institution{display:none}
  body.home .msid-home-course-card .sp-tc-card-footer{display:block;margin-top:2px;padding-top:6px;border-top:1px solid var(--border)}
  body.home .msid-home-course-card .sp-tc-card-price{margin:0 0 6px;font-size:.82rem}
  body.home .msid-home-course-card .sp-tc-card-actions{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:5px;width:100%}
  body.home .msid-home-course-card .sp-btn-wa{display:inline-flex;min-height:34px;padding:6px 7px;font-size:.64rem}
  body.home .msid-home-course-card .sp-btn-view{display:inline-flex;min-height:34px;padding:6px 7px;font-size:.64rem}
  body.home :is(.msid-home-course-card,.msid-home-school-grid .sp-school-ad-card) .sp-tc-card-tags>span:nth-child(n+3){display:none}
  body.home .mc-trainer-grid .trainer-card-field-tags>*:nth-child(n+2){display:none}
  body.home .mc-trainer-grid .trainer-card-extra-meta{display:none}
  body.home .mc-trainer-grid .trainer-card-footer{margin-top:2px}
  body.home .msid-home-school-grid .sp-tc-card-footer{margin-top:2px}
  body.home .msid-home-article p{display:-webkit-box;-webkit-line-clamp:2}
  body.home .msid-home-article-link{margin-top:4px}
}

/* 6.7.48 — latest ads keep two rows below desktop. */
@media(min-width:768px) and (max-width:1180px){body.home #front-courses-grid.msid-home-listing-grid--two-rows{display:grid;grid-template-columns:none;grid-template-rows:repeat(2,max-content);grid-auto-flow:column;grid-auto-columns:min(310px,78vw)}}
