/* Catalog-only alignment: each visible row shares intrinsic content tracks. */
.catalog-variant-links { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px 20px; }
.catalog-variant-links .external-link { min-height: 44px; font-size: .875rem; }
.catalog-card-links .btn { width: 100%; }

@supports (grid-template-rows: subgrid) {
  .catalog-card { display: grid; grid-template-rows: subgrid; grid-row: span 8; row-gap: 0; }
  .catalog-card figure { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; }
  .catalog-card figure img { grid-row: 1; }
  .catalog-card figcaption { grid-row: 2; margin: 8px 0 0; line-height: 1.5; }
  .catalog-card-copy { display: grid; grid-template-rows: subgrid; grid-row: span 6; row-gap: 0; }
  .catalog-card-copy > .eyebrow { grid-row: 1; margin: 0 0 12px; }
  .catalog-card-copy > h3 { grid-row: 2; margin: 0 0 12px; }
  .catalog-card-copy > .catalog-spec { grid-row: 3; }
  .catalog-card-copy > p:not(.eyebrow) { grid-row: 4; margin: 8px 0 0; }
  .catalog-card-links { grid-row: 5 / span 2; display: grid; grid-template-rows: subgrid; row-gap: 0; margin-top: 0; padding-top: 18px; }
  .catalog-card-links > .btn { grid-row: 1; align-self: start; }
  .catalog-card-links > .catalog-variant-links { grid-row: 2; padding-top: 10px; }
}

/* Natural stack is sufficient when there is no neighbouring card to align. */
@media (max-width: 600px) {
  .catalog-card, .catalog-card figure, .catalog-card-copy, .catalog-card-links { grid-row: auto; grid-template-rows: none; }
  .catalog-card { display: flex; }
  .catalog-card figure { display: block; }
  .catalog-card-copy { display: flex; }
  .catalog-card-links { display: grid; grid-template-rows: auto auto; }
}
