/* V109.4 Media integrity, placeholder and public logo repair */
.mhub-thumb-placeholder,
.program-thumb.mhub-thumb-placeholder,
.event-thumb.mhub-thumb-placeholder,
.portfolio-card-media.mhub-thumb-placeholder {
  min-height: 210px;
  border: 1px dashed rgba(4,75,35,.22);
  border-radius: 22px;
  background:
    radial-gradient(circle at 88% 88%, rgba(4,75,35,.10), transparent 34%),
    linear-gradient(135deg, rgba(239,248,242,.98), rgba(255,255,255,.96));
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.mhub-thumb-placeholder-inner {
  text-align: center;
  padding: 22px;
  color: #0a4f2a;
}
.mhub-thumb-placeholder-inner strong {
  display: block;
  font-size: .95rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.mhub-thumb-placeholder-inner small {
  display: block;
  color: #6f7c8f;
  margin-top: 4px;
  font-weight: 600;
}
.mhub-thumb-initial {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #0a4f2a;
  color: #fff;
  font-weight: 900;
  font-size: 1.5rem;
  margin-bottom: 12px;
  box-shadow: 0 18px 38px rgba(4,75,35,.18);
}
.program-thumb img,
.event-thumb img,
.product-list-thumb img,
.portfolio-card-media img,
.partner-logo-shell img,
.partner-mosaic-logo img {
  display: block;
  max-width: 100%;
}
.partner-mosaic-logo,
.partner-logo-shell {
  background: #f3faf5;
  border: 1px solid rgba(4,75,35,.12);
  overflow: hidden;
}
.mhub-logo-frame img + .partner-logo-fallback {
  display: none;
}
.partner-logo-fallback {
  width: 100%;
  height: 100%;
  min-height: 54px;
  border-radius: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#e9f6ee,#ffffff);
  color: #0a4f2a;
  font-weight: 900;
  font-size: 1.15rem;
}
.partner-logo-shell .partner-logo-fallback {
  min-height: 86px;
}
.mhub-media-broken::after {
  content: 'Image unavailable';
  color: #6f7c8f;
  font-weight: 700;
}
/* Reduce damage from one oversized restored image and keep real images balanced. */
.program-thumb,
.event-thumb,
.product-list-thumb,
.portfolio-card-media {
  background: #eef7f1;
}
.program-thumb img.img-cover,
.event-thumb img,
.product-list-thumb img.img-cover,
.portfolio-card-media img.img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* Public partner grid should still look complete when logos are missing. */
.partner-page-grid .partner-spotlight-card,
.partner-mosaic-card {
  align-items: stretch;
}
