.race-countdown-banner {
  position: relative;
  min-height: clamp(24rem, 33vw, 28rem);
  overflow: hidden;
  background-color: var(--race-countdown-surface, #03111b);
  background-image: var(--race-countdown-bg-desktop);
  background-position: center bottom;
  background-size: cover;
  background-repeat: no-repeat;
  isolation: isolate;
}

.race-countdown-banner *,
.race-countdown-banner *::before,
.race-countdown-banner *::after {
  box-sizing: border-box;
}

.race-countdown-banner__container {
  position: relative;
  z-index: 2;
  min-height: clamp(24rem, 33vw, 28rem);
}

.race-countdown-banner--has-button:not(.race-countdown-banner--without-cars),
.race-countdown-banner--has-button:not(.race-countdown-banner--without-cars) .race-countdown-banner__container {
  min-height: clamp(28rem, 38vw, 32rem);
}

.race-countdown-banner__content {
  position: relative;
  z-index: 4;
  display: flex;
  width: min(100%, 47rem);
  margin-inline: auto;
  padding-block: clamp(2rem, 4vw, 3rem) 9rem;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.55rem, 1.15vw, 0.9rem);
  text-align: center;
}

.race-countdown-banner--has-button:not(.race-countdown-banner--without-cars) .race-countdown-banner__content {
  padding-block-end: 12.5rem;
}

.race-countdown-banner__title {
  max-width: 24ch;
  margin: 0;
  color: var(--race-countdown-title, #fff);
  font-size: clamp(1.65rem, 2.35vw, 2.35rem);
  font-weight: var(--font-weight-bold, 700);
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.race-countdown-banner__description {
  max-width: 39rem;
  margin: 0;
  color: var(--race-countdown-description, #d7e1e7);
  font-size: clamp(0.78rem, 1vw, 0.95rem);
  font-weight: var(--font-weight-normal, 400);
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.race-countdown-banner__timer {
  display: grid;
  width: min(100%, 24rem);
  grid-template-columns: repeat(7, auto);
  align-items: center;
  justify-content: center;
  gap: clamp(0.25rem, 1vw, 0.75rem);
  margin-block: 0.25rem;
  color: var(--race-countdown-timer, #fff);
  direction: ltr;
  font-variant-numeric: tabular-nums;
}

.race-countdown-banner__time {
  display: grid;
  min-width: clamp(2.6rem, 4.6vw, 3.7rem);
  min-height: clamp(3rem, 4.9vw, 4rem);
  place-items: center;
  border: 1px solid rgb(108 197 215 / 0.08);
  border-radius: 0.2rem;
  background: linear-gradient(to bottom, rgb(15 64 78 / 0.54), rgb(8 39 52 / 0.24));
}

.race-countdown-banner__value {
  color: inherit;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  font-weight: var(--font-weight-bold, 700);
  line-height: 1;
}

.race-countdown-banner__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.race-countdown-banner__separator {
  color: color-mix(in srgb, var(--race-countdown-timer, #fff) 72%, transparent);
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  font-weight: var(--font-weight-bold, 700);
  line-height: 1;
}

.race-countdown-banner__btn {
  display: inline-flex;
  min-width: 9.5rem;
  min-height: 2.65rem;
  align-items: center;
  justify-content: center;
  padding: 0.58rem 1.5rem;
  border: 1px solid transparent;
  border-radius: 0.4rem;
  background: var(--race-countdown-button-bg, #ecb365);
  color: var(--race-countdown-button-text, #064663);
  font-size: 0.92rem;
  font-weight: var(--font-weight-bold, 700);
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: filter 0.18s ease, transform 0.18s ease;
}

.race-countdown-banner__btn:hover {
  color: var(--race-countdown-button-text, #064663);
  text-decoration: none;
  filter: brightness(1.07);
  transform: translateY(-0.1rem);
}

.race-countdown-banner__btn:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--race-countdown-button-bg, #ecb365) 65%, #fff);
  outline-offset: 3px;
}

.race-countdown-banner__visual {
  position: absolute;
  inset-inline-start: 50%;
  inset-block-end: 0;
  z-index: 3;
  display: block;
  width: min(54%, 43rem);
  margin: 0;
  transform: translateX(-50%);
  pointer-events: none;
}

[dir="rtl"] .race-countdown-banner__visual {
  transform: translateX(50%);
}

.race-countdown-banner__cars {
  display: block;
  width: 100%;
  height: auto;
  max-height: 13rem;
  margin-inline: auto;
  object-fit: contain;
  object-position: center bottom;
}

.race-countdown-banner__cars--mobile {
  display: none;
}

.race-countdown-banner--without-cars .race-countdown-banner__content {
  padding-block-end: 3rem;
}

@media (max-width: 767.98px) {
  .race-countdown-banner {
    min-height: clamp(38rem, 174vw, 45rem);
    background-image: var(--race-countdown-bg-mobile, var(--race-countdown-bg-desktop));
    background-position: center bottom;
  }

  .race-countdown-banner__container {
    min-height: clamp(38rem, 174vw, 45rem);
  }

  .race-countdown-banner--has-button:not(.race-countdown-banner--without-cars),
  .race-countdown-banner--has-button:not(.race-countdown-banner--without-cars) .race-countdown-banner__container {
    min-height: clamp(42rem, 190vw, 49rem);
  }

  .race-countdown-banner__content {
    width: 100%;
    padding-block: clamp(2.25rem, 11vw, 3.5rem) 19rem;
    gap: 0.85rem;
  }

  .race-countdown-banner--has-button:not(.race-countdown-banner--without-cars) .race-countdown-banner__content {
    padding-block-end: 20rem;
  }

  .race-countdown-banner__title {
    max-width: 15ch;
    font-size: clamp(1.55rem, 7.5vw, 1.9rem);
    line-height: 1.2;
  }

  .race-countdown-banner__description {
    max-width: 29rem;
    font-size: clamp(0.78rem, 3.7vw, 0.95rem);
    line-height: 1.65;
  }

  .race-countdown-banner__timer {
    width: 100%;
    max-width: 22rem;
    gap: clamp(0.12rem, 1.4vw, 0.42rem);
    margin-block: 0.35rem 0.15rem;
  }

  .race-countdown-banner__time {
    min-width: clamp(2.35rem, 13vw, 3.35rem);
    min-height: clamp(2.8rem, 14vw, 3.5rem);
  }

  .race-countdown-banner__value {
    font-size: clamp(1.2rem, 6vw, 1.65rem);
  }

  .race-countdown-banner__separator {
    font-size: clamp(0.9rem, 4vw, 1.15rem);
  }

  .race-countdown-banner__btn {
    min-width: 10rem;
    min-height: 3rem;
    padding-inline: 1.6rem;
    font-size: 1rem;
  }

  .race-countdown-banner__visual {
    inset-block-end: 0;
    width: min(96%, 34rem);
  }

  .race-countdown-banner__cars {
    max-height: 17rem;
  }

  .race-countdown-banner--has-mobile-cars .race-countdown-banner__cars--desktop {
    display: none;
  }

  .race-countdown-banner__cars--mobile {
    display: block;
  }

  .race-countdown-banner--without-cars .race-countdown-banner__content {
    padding-block-end: 3.5rem;
  }
}

@media (max-width: 359.98px) {
  .race-countdown-banner__container,
  .race-countdown-banner {
    min-height: 39rem;
  }

  .race-countdown-banner--has-button:not(.race-countdown-banner--without-cars),
  .race-countdown-banner--has-button:not(.race-countdown-banner--without-cars) .race-countdown-banner__container {
    min-height: 43rem;
  }

  .race-countdown-banner__content {
    padding-inline: 0;
  }

  .race-countdown-banner__timer {
    gap: 0.12rem;
  }

  .race-countdown-banner__time {
    min-width: 2.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .race-countdown-banner__btn {
    transition: none;
  }
}
