/* Keep the listing at its familiar desktop width when campaigns are removed.
   The two-campaign layout is deliberately left to the existing theme. */
@media (min-width: 1200px) {
  body:is(.home-page,.new-servers-page,.best-servers-page,.auth-page,.server-detail-page):not(.has-side-ad-left.has-side-ad-right) .page-shell {
    width: min(1100px, calc(100% - var(--side-ad-left-space, 0px) - var(--side-ad-right-space, 0px))) !important;
    max-width: 1100px !important;
    margin-left: max(var(--side-ad-left-space, 0px), calc((100% - 1100px + var(--side-ad-left-space, 0px) - var(--side-ad-right-space, 0px)) / 2)) !important;
    margin-right: auto !important;
    box-shadow: 0 12px 40px #0003;
  }

  /* Viewport-based wide-screen rules must not stretch these compact cards. */
  body:is(.home-page,.new-servers-page,.best-servers-page):not(.has-side-ad-left.has-side-ad-right) .server-row {
    grid-template-columns: 64px 132px minmax(0, 1fr) 128px;
  }
  body:is(.home-page,.new-servers-page,.best-servers-page):not(.has-side-ad-left.has-side-ad-right) .meta-info {
    width: 120px;
    max-width: calc(100% - 12px);
    margin-right: 6px;
  }
  body:is(.home-page,.new-servers-page,.best-servers-page):not(.has-side-ad-left.has-side-ad-right) .server-cover {
    justify-self: center;
  }
  body:is(.home-page,.new-servers-page,.best-servers-page):not(.has-side-ad-left.has-side-ad-right) .stats-cell .stat,
  body:is(.home-page,.new-servers-page,.best-servers-page):not(.has-side-ad-left.has-side-ad-right) .stats-cell .server-vote-form {
    width: 112px !important;
    max-width: 100% !important;
  }
  body:is(.home-page,.new-servers-page,.best-servers-page,.auth-page,.server-detail-page):not(.has-side-ad-left.has-side-ad-right) .topbar {
    padding: 0 16px;
    gap: 8px;
  }
  body:is(.home-page,.new-servers-page,.best-servers-page,.auth-page,.server-detail-page):not(.has-side-ad-left.has-side-ad-right) .brand {
    flex-basis: 150px;
  }
  body:is(.home-page,.new-servers-page,.best-servers-page,.auth-page,.server-detail-page):not(.has-side-ad-left.has-side-ad-right) .topnav > a,
  body:is(.home-page,.new-servers-page,.best-servers-page,.auth-page,.server-detail-page):not(.has-side-ad-left.has-side-ad-right) .topnav > div > a {
    padding-left: 7px;
    padding-right: 7px;
    font-size: 13px;
  }
}

/* An absent top banner must not reserve a blank advertising slot. */
.hero-banner:empty { display: none !important; }
