/* teasers.css — article teaser component styles */

/* Bild-Inset auf Desktop: Ausrichtung wie p-3 Textbereich.
   Auf Mobile: Kein Padding, negatives Margin kompensiert col-Gutter → Bild randlos. */
.teaser .image {
  padding-inline: 1rem;  /* = px-3 */
  padding-top: 1rem;     /* = pt-3 */
}
.teaser .image figure {
  margin: 0;
}
.teaser .image figure img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 767px) {
  .teaser .image {
    padding-inline: 0;
    padding-top: 0;
    margin-inline: calc(-.5 * var(--bs-gutter-x));
  }
}

/* In LB individual-block regions, the block wrapper must pass column height
   down so that article.teaser h-100 actually reaches the col height. */
.layout__region > [data-layout-block-uuid] {
  height: 100%;
}

/* Equal-height teasers in collection grids.
   Drupal Views wraps entity output in .view > .view-content.row > .views-row.
   article.teaser already has h-100, but the intermediate wrappers don't
   inherit height. This flex chain propagates the col height all the way down. */
.teaser-view-slot {
  display: flex;
  flex-direction: column;
}
.teaser-view-slot > .view {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.teaser-view-slot > .view > .view-content {
  flex: 1;
}

/* Views Infinite Scroll: wrapper zwischen .view-content.row und col-* entfernen.
   display:contents macht den VIS-Wrapper für Bootstrap-Grid unsichtbar —
   col-* Kinder sehen direkt das übergeordnete .row als Layout-Parent. */
.views-infinite-scroll-content-wrapper {
  display: contents;
}

/* Author line in partner teasers */
.teaser .s2k25-author-line img {
  width: 45px;
  height: 45px;
  object-fit: cover;
}

/* Teaser author avatar (round, role-colored border) */
.teaser-avatar {
  width: 45px;
  height: 45px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 50%;
  display: block;
}
.teaser-avatar-lg {
  width: 50px;
  height: 50px;
}
