/* Product content stays in normal flow; only the decorative backdrop is positioned. */
.home-products {
  box-sizing: border-box;
  width: 100%;
  padding: 56px 24px 72px;
  background: #fff;
}
.home-products > h2 {
  margin: 0 0 40px;
  text-align: center;
  font: 40px/1.25 raleway, sans-serif;
  color: #222;
}
.home-products__cards {
  display: grid;
  gap: 32px;
  max-width: 980px;
  margin-inline: auto;
}
.product-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-width: 0;
  background: #222;
  color: #fff;
  text-align: center;
}
.product-card__background {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgb(0 0 0 / 40%);
}
.product-card__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  padding: clamp(32px, 5vw, 64px) clamp(24px, 6vw, 80px);
}
.product-card__heading { margin: 0; max-width: 100%; }
.product-card__name {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.product-card__logo { display: block; width: min(342px, 100%); height: auto; max-height: 121px; object-fit: contain; }
.product-card__description { font: clamp(18px, 2.3vw, 25px)/1.5 raleway, sans-serif; overflow-wrap: anywhere; }
.product-card__description p { margin: 0; }
.product-card__description p + p { margin-top: 1em; }
.product-card__description a { color: inherit; text-decoration: underline; }
.product-card__link {
  display: inline-block;
  max-width: 100%;
  box-sizing: border-box;
  padding: 12px 24px;
  border: 1px solid currentColor;
  color: inherit;
  font: 18px/1.4 raleway, sans-serif;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.product-card__link:hover { background: #fff; color: #222; }
@media (max-width: 540px) {
  .home-products { padding-inline: 16px; }
  .home-products > h2 { font-size: 32px; }
}
