:root {
  --vgo-poster-ratio: 2 / 3;
  --vgo-news-ratio: 16 / 9;
  --vgo-app-ratio: 3 / 5;
  --vgo-avatar-ratio: 1 / 1;
  --vgo-empty-bg: rgba(127, 127, 127, .08);
  --vgo-empty-border: rgba(127, 127, 127, .2);
}

.vgo-img-poster,
.vgo-movie-card img,
.movie-grid img,
.video-grid img,
.card-grid img,
.movie-list img,
.pg-cover img,
.tb-poster img,
.cs-cover img,
.fs-poster img,
.mo-pic img,
.tr-thumb img,
.movie-poster img,
.movie-poster-wrap img,
.poster img {
  aspect-ratio: var(--vgo-poster-ratio);
  object-fit: cover;
}

.vgo-img-news,
.vgo-news-card img,
.vgo-news-hero,
.news-card img,
.news-pic img,
.news-thumb img,
.vgo-news-list img {
  aspect-ratio: var(--vgo-news-ratio);
  object-fit: cover;
}

.vgo-img-app,
.vgo-app-promo img,
.app-poster img,
.app-preview img,
.app-card img {
  aspect-ratio: var(--vgo-app-ratio);
  object-fit: contain;
}

.vgo-img-avatar {
  aspect-ratio: var(--vgo-avatar-ratio);
  object-fit: cover;
}

.vgo-empty-state,
.vgo-player-fallback {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border: 1px solid var(--vgo-empty-border);
  border-radius: 10px;
  background: var(--vgo-empty-bg);
}

.vgo-empty-state-actions,
.vgo-player-fallback-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.vgo-empty-state-actions a,
.vgo-player-fallback-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: .45rem .75rem;
  border-radius: 8px;
  border: 1px solid currentColor;
  text-decoration: none;
}

.vgo-footer,
.footer,
.site-footer {
  display: grid;
  gap: .75rem;
}

/* 友链/伙伴链接需横向折行；display:grid 会把每个 <a> 拆成独立行（竖排） */
.vgo-friend-links,
.footer-friends,
.friend-links,
.partner-links,
.footer-links,
.footer-sitemaps,
.footer-legal-links,
.footer-contact-info {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 6px 14px;
  align-items: center;
}

.vgo-friend-links a,
.footer-friends a,
.friend-links a,
.partner-links a,
.footer-links a {
  display: inline-flex;
  margin: 0;
  word-break: break-word;
}

.related-section,
.related-section .movie-grid {
  margin-top: .5rem;
}

.related-section + .related-section {
  margin-top: 1.25rem;
}

.related-section h2,
.related-section .section-title {
  margin: 0 0 .75rem;
  font-size: 1.1rem;
}

@media (max-width: 768px) {
  .vgo-empty-state,
  .vgo-player-fallback {
    padding: .85rem;
  }
}
