/* Free Games only. :has covers server-rendered cards before hydration;
   data-cat also covers cards selected dynamically in the Gaming Room.
   No fixed height, clipping, image transforms or changes to offer evidence. */
@media (min-width: 901px) {
  #contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)),
  #contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) > .card-art {
    min-height: 320px !important;
  }
  #contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) > .card-body {
    padding: clamp(24px, 2.8vw, 42px) !important;
  }
  #contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) .card-title {
    font-size: clamp(28px, 2.7vw, 43px) !important;
    line-height: 1.02 !important;
    margin: 10px 0 !important;
  }
  #contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) .gb-card-byline {
    margin-top: 16px !important;
    padding-top: 12px !important;
  }
}

/* Slightly tighter spacing, without shrinking status text or tap targets. */
#contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) .gb-offer-card-meta {
  gap: 6px !important;
}
#contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) .gb-offer-widget {
  padding: 8px 11px;
  gap: 3px;
}
@media (max-width: 900px) {
  #contentHub #cards .article-card:is([data-cat="freegames"], :has(.gb-offer-widget)) > .card-body {
    padding: 19px !important;
  }
}
