/* ---------- 顶部通栏 Banner ---------- */
    .topBanner {
      position: relative;
      width: 100%;
      left: 50%;
      right: 50%;
      margin: 0;
      margin-left: -50vw;
      margin-right: -50vw;
      margin-bottom: 10px;
      overflow: hidden;
      background: #f5f5f5;
      aspect-ratio: 2800 / 741;
    }

    .topBanner picture {
      position: absolute;
      inset: 0;
      display: block;
    }

    .topBanner img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center center;
      display: block;
      transition: transform 1s ease;
    }

    /* figcaption 浮在图片底部，不影响通栏高度 */
    .topBanner figcaption {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2;
      padding: 12px 16px;
      color: #fff;
      font-size: 14px;
      line-height: 1.5;
      background: linear-gradient(to top, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0));
      pointer-events: none;
    }

    @media (hover: hover) and (pointer: fine) {
      .topBanner:hover img {
        transform: scale(1.04);
      }
    }

    @media (max-width: 768px) {
      .topBanner {
        aspect-ratio: 791 / 401;
      }

      .topBanner:active img {
        transform: scale(1.02);
      }

      .topBanner figcaption {
        font-size: 12px;
        padding: 8px 12px;
      }
    }