/* Главная страница. Общие компоненты — в site.css. */

/* ---------- Вступление ---------- */

.intro {
  padding: 30px 0;
  background: var(--c-bg);
}

.intro__text {
  max-width: 960px;
  margin: 0 auto;
  color: #fff;
  font-family: 'Raleway';
  font-size: 30px;
  font-weight: 400;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 1200px) {
  .intro__text {
    max-width: 780px;
    font-size: 26px;
  }
}

@media (max-width: 960px) {
  .intro__text {
    max-width: none;
  }
}

@media (max-width: 640px) {
  .intro__text {
    font-size: 22px;
  }
}

/* ---------- Три преимущества ---------- */

.features {
  padding: 90px 0 30px;
  background: var(--c-bg);
}

.features__grid {
  display: grid;
  grid-template-columns: repeat(3, 360px);
  column-gap: 40px;
}

.feature {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-bottom: 50px;
  padding-top: 35px;
}

.feature__number {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 70px;
  height: 70px;
  margin: 0 auto;
  border: 1px solid var(--c-bg);
  border-radius: 100%;
  background: var(--c-light);
}

.feature__number span {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  transform: translateY(-50%);
  color: var(--c-bg-2);
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
}

.feature__card {
  display: flex;
  flex: 1;
  flex-direction: column;
  box-sizing: border-box;
  padding: 53px 30px 40px;
  border: 1px solid var(--c-light);
  background: var(--c-bg-2);
  text-align: center;
}

.feature__title {
  margin-top: 20px;
  color: var(--c-red);
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.35;
  text-transform: uppercase;
}

.feature__text {
  margin-top: 12px;
  margin-bottom: 20px;
  color: var(--c-light);
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
}

.feature__text li {
  text-align: left;
}

.feature__img {
  width: 100%;
  max-width: 300px;
  margin: auto auto 0;
  padding-top: 20px;
}

@media (max-width: 1200px) {
  .features__grid {
    grid-template-columns: repeat(3, 300px);
    column-gap: 20px;
  }
}

@media (max-width: 960px) {
  .features__grid {
    display: block;
  }

  .feature {
    max-width: 540px;
    margin: 0 auto 50px;
  }
}

@media (max-width: 640px) {
  .feature__text {
    line-height: 1.45;
  }
}

/* ---------- Цифры и факты ---------- */

.perks {
  padding: 135px 0 60px;
  background: var(--c-bg);
}

.perks__list {
  display: grid;
  grid-template-columns: repeat(4, 260px);
  column-gap: 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.perk {
  text-align: center;
}

/* Иконка остаётся строчной: под ней, как в оригинале, строка шрифта по умолчанию */
.perk__icon {
  width: 60px;
  height: auto;
  max-width: 100%;
  margin-bottom: 25px;
}

.perk__title {
  margin: 12px 0 25px;
  padding: 0 20px;
  color: #fff;
  font-family: 'Raleway';
  font-size: 18px;
  font-weight: 400;
  line-height: 1.17;
}

@media (max-width: 1200px) {
  .perks__list {
    grid-template-columns: repeat(4, 220px);
    column-gap: 20px;
  }
}

@media (max-width: 960px) {
  .perks__list {
    display: block;
  }

  .perk {
    margin-bottom: 45px;
  }
}

@media (max-width: 480px) {
  .perks {
    padding-top: 90px;
  }
}

/* ---------- Шестой сезон ---------- */

.season {
  padding: 150px 0;
  background: var(--c-bg-2);
}

.season .section-head {
  margin-bottom: 105px;
}

.season .section-head__title {
  margin-bottom: 40px;
  color: rgb(237, 232, 232);
}

.season .section-head__descr {
  color: var(--c-red);
}

.season__body {
  display: flex;
  align-items: center;
  column-gap: 40px;
}

.season__list,
.season__picture {
  flex: none;
  width: 560px;
}

.season__picture img {
  display: block;
  width: 100%;
}

.season__picture--mobile {
  display: none;
}

.season__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.season__item {
  display: flex;
  align-items: flex-start;
}

.season__item:not(:last-child) {
  margin-bottom: 50px;
}

.season__icon {
  flex: none;
  width: 65px;
}

.season__icon img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.season__text {
  flex: 1;
  padding-left: 30px;
}

.season__heading {
  padding-bottom: 15px;
  color: #e3e0e0;
  font-family: 'Mossport';
  font-size: 28px;
  font-weight: 600;
  line-height: 1.17;
  text-transform: uppercase;
}

.season__descr {
  color: #e6e6e6;
  font-family: 'Raleway';
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
}

.season__accent {
  color: rgb(235, 193, 193);
}

@media (max-width: 1200px) {
  .season__body {
    column-gap: 20px;
  }

  .season__list,
  .season__picture {
    width: 460px;
  }

  .season__heading {
    font-size: 26px;
  }

  .season__descr {
    font-size: 14px;
  }
}

@media (max-width: 960px) {
  .season .section-head {
    margin-bottom: 45px;
  }

  .season .section-head__title {
    margin-bottom: 20px;
  }

  .season__body {
    display: block;
  }

  .season__list,
  .season__picture {
    width: auto;
  }

  .season__picture {
    display: none;
  }

  .season__picture--mobile {
    display: block;
    margin-bottom: 75px;
  }

  .season__picture--mobile img {
    max-width: 100%;
    height: auto;
  }

  .season__icon {
    max-width: 50px;
  }
}

@media (max-width: 640px) {
  .season__heading {
    font-size: 24px;
  }

  .season__descr {
    font-size: 12px;
    line-height: 1.45;
  }
}

@media (max-width: 480px) {
  .season {
    padding: 90px 0;
  }
}

/* ---------- Игры чемпионата ---------- */

.game {
  background: var(--c-bg);
}

.game--first {
  padding: 30px 0 0;
}

.game--second {
  padding: 120px 0 90px;
}

.game .section-head {
  margin-bottom: 105px;
}

.game .section-head__title {
  color: var(--c-red);
}

.game__row {
  display: flex;
  align-items: flex-start;
  column-gap: 40px;
}

.game__info,
.game__media {
  flex: none;
  width: 560px;
}

/* Колонка 560px, а текст в ней — не шире 470px, прижат влево */
.game__title,
.game__descr {
  max-width: 470px;
}

.game__picture {
  aspect-ratio: 560 / 400;
  background: var(--game-img) center / cover no-repeat;
}

.game__picture--mobile {
  display: none;
}

.game__title {
  margin-bottom: 24px;
  color: var(--c-light);
  font-family: 'Mossport';
  font-size: 32px;
  font-weight: 600;
  line-height: 1.23;
  text-transform: uppercase;
}

.game__descr {
  color: var(--c-light);
  font-family: 'Raleway';
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
}

.game__btn {
  margin-top: 30px;
  --btn-border: var(--c-red);
  --btn-bg: var(--c-bg);
}

.game--first .game__btn {
  --btn-bg-hover: var(--c-bg-2);
  --btn-color-hover: #f0f0f0;
  --btn-border-hover: #ef3333;
}

.game--second .game__btn {
  --btn-color-hover: #f0f0f0;
  --btn-border-hover: #ec3333;
}

@media (max-width: 1200px) {
  .game__row {
    column-gap: 20px;
  }

  .game__info,
  .game__media {
    width: 460px;
  }
}

@media (max-width: 960px) {
  .game .section-head {
    margin-bottom: 45px;
  }

  .game .section-head__title {
    margin-bottom: 20px;
  }

  .game__row {
    display: block;
  }

  .game__info,
  .game__media {
    width: auto;
  }

  .game__media {
    display: none;
  }

  .game__picture--mobile {
    display: block;
  }

  .game__info {
    margin-top: 30px;
  }

  .game__title {
    margin-bottom: 15px;
  }
}

@media (max-width: 640px) {
  .game__descr {
    line-height: 1.45;
  }
}

@media (max-width: 480px) {
  .game--first {
    padding-bottom: 15px;
  }

  .game--second {
    padding: 90px 0 15px;
  }
}

/* ---------- Календарь сезона ---------- */

.calendar {
  padding: 90px 0 150px;
  background: var(--c-bg);
}

.calendar .section-head {
  margin-bottom: 90px;
}

.calendar .section-head__title {
  margin-bottom: 20px;
  color: var(--c-red);
}

.calendar .section-head__descr {
  color: rgb(235, 235, 235);
  font-size: 20px;
  font-weight: bold;
}

.calendar__line {
  height: 1px;
  background: #757575;
  opacity: 0.1;
}

.calendar__row {
  display: grid;
  grid-template-columns: 260px 360px;
  column-gap: 140px;
  padding: 45px 0;
}

.calendar__date {
  color: var(--c-light);
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  text-transform: uppercase;
}

.calendar__event {
  color: var(--c-light);
  font-family: 'Raleway';
  font-size: 20px;
  font-weight: 400;
  line-height: 1.55;
}

@media (max-width: 1200px) {
  .calendar__row {
    grid-template-columns: 220px 300px;
    column-gap: 100px;
  }

  .calendar__event {
    font-size: 18px;
  }
}

@media (max-width: 960px) {
  .calendar .section-head {
    margin-bottom: 75px;
  }

  .calendar__row {
    display: block;
    padding: 0;
  }

  .calendar__date {
    margin: 45px 0 20px;
  }

  .calendar__event {
    margin-bottom: 45px;
  }
}

@media (max-width: 640px) {
  .calendar__event {
    font-size: 16px;
    line-height: 1.45;
  }
}

@media (max-width: 480px) {
  .calendar {
    padding-bottom: 90px;
  }
}

/* ---------- Подписка ---------- */

.subscribe {
  position: relative;
  display: flex;
  align-items: center;
  height: 600px;
  overflow: hidden;
  background: var(--c-black) url('/assets/img/index/subscribe-bg.jpg') center / cover no-repeat;
  text-align: center;
}

.subscribe::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.9), rgba(20, 20, 20, 0.8));
}

.subscribe .wrap {
  position: relative;
  z-index: 1;
}

.subscribe__inner {
  max-width: 960px;
  margin: 0 auto;
}

.subscribe__text {
  margin-bottom: 74px;
}

.subscribe__title {
  color: var(--c-light);
  font-family: 'Mossport';
  font-size: var(--title-sm);
  font-weight: 600;
  line-height: 1.23;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.subscribe__descr {
  max-width: 600px;
  margin: 24px auto 0;
  color: var(--c-light);
  font-family: var(--font-display);
  font-size: var(--descr-xl);
  font-weight: 400;
  line-height: var(--descr-xl-lh);
}

/* Поле и кнопка в строку, ошибка под ними на всю ширину формы */
.subscribe__form {
  display: grid;
  grid-template-columns: 440px auto;
  justify-content: center;
  column-gap: 20px;
}

.subscribe__input {
  box-sizing: border-box;
  width: 100%;
  height: 56px;
  margin: 0;
  padding: 0 20px;
  border: 0;
  border-radius: 0;
  outline: none;
  background: #fff;
  color: #000;
  font-family: 'Raleway';
  font-size: 16px;
  line-height: 1.33;
  appearance: none;
}

.subscribe__input::placeholder {
  color: #000;
  opacity: 0.5;
}

/* Неверный email (пустое поле Тильда так не помечает) */
.subscribe__input[aria-invalid="true"] {
  border: 1px solid red;
}

.subscribe__submit {
  box-sizing: border-box;
  height: 56px;
  margin: 0;
  padding: 1px 40px;
  border: 2px solid var(--c-red);
  background: var(--c-bg-2);
  color: var(--c-light);
  font-family: Raleway;
  font-size: 16px;
  font-weight: 500;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  appearance: none;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

.subscribe__submit:hover {
  background: var(--c-bg);
  color: #fff;
}

/* Плашка ошибки как у формы Тильды. На десктопе — под полем и кнопкой, на узких экранах —
   между ними. Ширину задаёт форма, а не текст ошибки (contain). Клик по плашке ставит
   фокус в поле (site.js), поэтому курсор — как у ссылки. */
.subscribe__error {
  grid-row: 2;
  grid-column: 1 / -1;
  contain: inline-size;
  margin: 20px 0;
  padding: 20px;
  background: #f95d51;
  color: #fff;
  font-family: var(--font-body);
  font-size: 20px;
  line-height: 1.55;
  cursor: pointer;
}

@media (max-width: 1200px) {
  .subscribe__inner {
    max-width: 780px;
  }

  .subscribe__error {
    font-size: 18px;
  }
}

@media (max-width: 960px) {
  .subscribe__inner {
    max-width: none;
  }

  .subscribe__form {
    display: block;
  }

  .subscribe__field {
    margin-bottom: 20px;
  }

  .subscribe__submit {
    width: 100%;
  }
}

@media (max-width: 640px) {
  .subscribe__text {
    margin-bottom: 32px;
  }

  .subscribe__input,
  .subscribe__submit {
    height: 50px;
  }

  .subscribe__error {
    font-size: 16px;
    line-height: 1.45;
  }
}
