.pb-tournament-hero-source { display: none !important; }

.sporto-tournament-hero-host > :not(.sporto-tournament-hero):not(.sporto-tournament-hero-actions) { display: none !important; }

/*
 * Canonical tournament hero geometry.
 * The Bricks IDs below belong to the shared tournament-header component used
 * by VTB, Superleague and Youth VTB pages. They are scoped to the hero section
 * and do not alter its authored logo, title or overlay structure.
 */
.brxe-bbjbob {
  --pb-tournament-hero-height: clamp(280px, 72vw, 380px);
  --pb-tournament-hero-safe-top: clamp(20px, 3vw, 36px);
  --pb-tournament-hero-safe-bottom: clamp(20px, 2vw, 32px);
  --pb-tournament-hero-header-overlap: 0px;
  --pb-tournament-hero-content-shift-y: clamp(8px, 2vw, 12px);
  block-size: var(--pb-tournament-hero-height) !important;
  isolation: isolate;
  min-block-size: var(--pb-tournament-hero-height) !important;
  scroll-margin-block-start: calc(var(--pb-site-header-height, 75px) + 12px);
}

.brxe-bbjbob > .brxe-liyeae {
  block-size: auto !important;
  inset-block-end: var(--pb-tournament-hero-safe-bottom) !important;
  inset-block-start: calc(var(--pb-tournament-hero-safe-top) + var(--pb-tournament-hero-header-overlap)) !important;
  margin-block: 0 !important;
  min-block-size: 0 !important;
  translate: 0 max(0px, calc(var(--pb-tournament-hero-content-shift-y) - var(--pb-tournament-hero-header-overlap))) !important;
}

.brxe-bbjbob > .brxe-zzntow {
  block-size: 100% !important;
  min-block-size: 0 !important;
}

@media (min-width: 768px) {
  .brxe-bbjbob {
    --pb-tournament-hero-content-shift-y: clamp(24px, 3vw, 36px);
    --pb-tournament-hero-height: clamp(430px, 47vw, 520px);
  }
}

@media (min-width: 1200px) {
  .brxe-bbjbob {
    --pb-tournament-hero-content-shift-y: 0px;
    --pb-tournament-hero-height: clamp(420px, 32.5vw, 520px);
  }
}

@media (max-width: 1199px), (width < 1200px) {
  .brxe-bbjbob > .brxe-zzntow {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .brxe-bbjbob .brxe-rxrifa {
    display: none !important;
  }

  .brxe-bbjbob .brxe-kyikzg {
    grid-column: 1 / -1 !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
  }

  .brxe-bbjbob .brxe-jiyznp {
    background: linear-gradient(
      180deg,
      rgba(22, 29, 26, 0.36) 0%,
      rgba(22, 29, 26, 0.42) 45%,
      rgba(22, 29, 26, 0.66) 100%
    ) !important;
  }

  .brxe-bbjbob .sporto-tournament-hero__image,
  .brxe-bbjbob .brxe-kyikzg > img {
    block-size: 100% !important;
    inline-size: 100% !important;
    object-fit: cover !important;
    object-position: 50% 0 !important;
  }
}

.sporto-tournament-hero {
  block-size: 100% !important;
  inline-size: 100% !important;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.sporto-tournament-hero__layer {
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: opacity 1.1s ease;
  will-change: opacity;
}

.sporto-tournament-hero__layer.is-active { opacity: 1; }

.sporto-tournament-hero__image {
  block-size: 100%;
  border-radius: 0 !important;
  display: block;
  inline-size: 100%;
  max-inline-size: none;
  object-fit: cover !important;
  object-position: clamp(88%, calc(70% + 1.5vw), 94%) 0 !important;
}

/* Static Bricks fallback follows the same crop contract as the rotating hero. */
.brxe-bbjbob .brxe-kyikzg > img {
  border-radius: 0 !important;
  object-fit: cover !important;
  object-position: clamp(88%, calc(70% + 1.5vw), 94%) 0 !important;
}

@media (max-width: 1199px), (width < 1200px) {
  .brxe-bbjbob .sporto-tournament-hero__image,
  .brxe-bbjbob .brxe-kyikzg > img {
    object-position: 50% 0 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sporto-tournament-hero__layer { transition: none; }
}

/*
 * Canonical identity/actions layout. It is present in the first stylesheet
 * paint so JavaScript never has to move the identity after DOMContentLoaded.
 * The legacy reference class remains harmless for backwards compatibility.
 */
.brxe-bbjbob {
  --pb-reference-page-gutter: 30px;
}

.brxe-bbjbob .brxe-jdkdcl {
  border-radius: 8px !important;
  overflow: hidden;
}

.brxe-bbjbob .sporto-tournament-hero-actions {
  inset-block-start: calc(var(--pb-tournament-hero-header-overlap, 0px) + var(--pb-reference-page-gutter));
  inset-inline-end: max(
    var(--pb-reference-page-gutter),
    calc((100% - 1366px) / 2 + var(--pb-reference-page-gutter))
  );
  pointer-events: auto;
  position: absolute;
  z-index: 14;
}

.brxe-bbjbob .sporto-tournament-hero-actions .pb-team-actions {
  gap: 1.2rem;
}

.brxe-bbjbob .sporto-tournament-hero-actions :is(.pb-favorite-button, .pb-team-action) {
  border-radius: 8px;
}

.brxe-bbjbob .sporto-tournament-hero-actions .pb-team-actions :is(.pb-favorite-button, .pb-team-action)::after {
  inset-block-end: auto;
  inset-block-start: calc(100% + 0.8rem);
}

@media (max-width: 1199px), (width < 1200px) {
  .brxe-bbjbob > .brxe-liyeae {
    align-items: flex-start !important;
    inset-inline: var(--pb-reference-page-gutter) !important;
    inline-size: auto !important;
  }

  .brxe-bbjbob :is(.brxe-vynrco, .brxe-moxmsv) {
    align-items: flex-start !important;
    margin-inline: 0 !important;
    text-align: left !important;
  }

  .brxe-bbjbob :is(.brxe-jdkdcl, .brxe-moxmsv, .brxe-muotsh, .brxe-ksifxy) {
    align-self: flex-start !important;
  }

  .brxe-bbjbob :is(.brxe-muotsh, .brxe-ksifxy) {
    padding-inline: 0 !important;
    text-align: left !important;
  }
}

@media (max-width: 991px) {
  .brxe-bbjbob {
    --pb-reference-page-gutter: 16px;
  }
}

@media (max-width: 478px), (width < 479px) {
  .brxe-bbjbob {
    --pb-reference-page-gutter: 8px;
  }

  /*
   * The mobile identity is bottom-anchored in the first paint. Bricks adds its
   * own vertical padding to this absolute wrapper, so it is neutralised here
   * to keep the visible title exactly 36px above the hero edge.
   */
  .brxe-bbjbob > .brxe-liyeae {
    inset-block-end: 36px !important;
    inset-block-start: auto !important;
    padding-block-end: 0 !important;
    translate: 0 0 !important;
  }
}
