/* One image shape and aligned content for neighbouring cards throughout the site. */
.support-grid, .card-grid, .blog-grid, .article-library, .concern-groups, .process-row {
  align-items: stretch;
}
.support-grid .support-card .support-card-thumb,
.blog-grid .blog-card .blog-card-img,
.article-library .article-card .article-image {
  width: auto;
  height: auto;
  min-height: 0;
  aspect-ratio: 3 / 2;
  flex: 0 0 auto;
  align-self: stretch;
}
.support-grid .support-card .support-card-thumb img,
.blog-grid .blog-card .blog-card-img img,
.article-library .article-card .article-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  transform: none;
}
.blog-grid .blog-card .first-session-photo img { object-position: center 58%; }

/* Shared row tracks line up photos, titles, descriptions and links even when
   one title wraps. The flex layout remains the fallback in older browsers. */
.support-grid .support-card.is-link h3 { min-height: 2.6em; line-height: 1.3; }
@supports (grid-template-rows: subgrid) {
  .support-grid:has(> .support-card.is-link),
  .support-grid:has(> .support-card.is-link:last-child:nth-child(3)) { grid-auto-rows: auto; }
  .support-grid > .support-card.is-link {
    display: grid;
    grid-row: span 4;
    grid-template-rows: subgrid;
    row-gap: 0;
  }
  .support-grid > .support-card.is-link h3 { min-height: 0; }
  .support-grid > .support-card.is-link .support-card-link { align-self: end; }
}
.blog-grid .blog-card h3, .article-library .article-card h3 { min-height: 4.02em; }
.blog-grid .blog-card-body, .article-library .article-card-body { min-width: 0; }
.blog-grid .blog-tag { align-self: flex-start; }
.concern-groups, .home-process, .process-row { grid-auto-rows: 1fr; }
.home-process .process-card h3, .process-row h3 { min-height: 2.6em; line-height: 1.3; }

/* Standalone landscape illustrations use the same frame; portraits keep
   their portrait treatment and logos/credentials retain their own proportions. */
.split-grid .image-panel:not(:has(.portrait-image)) {
  min-height: 0;
  aspect-ratio: 3 / 2;
  width: 100%;
  align-self: start;
}
.split-grid .image-panel:not(:has(.portrait-image)) img {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: cover;
}

/* Give guide sidebar headings a clear gap before their links or author copy. */
.article-sidebar .sidebar-box > h3 { margin-bottom: 20px; }

@media (max-width: 640px) {
  .support-grid .support-card.is-link h3,
  .blog-grid .blog-card h3,
  .article-library .article-card h3,
  .home-process .process-card h3,
  .process-row h3 { min-height: 0; }
}
