/* 404 page */

.page404 {
  position: relative;
  min-height: 100vh;
  padding: 32px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 22% 20%, rgba(12, 70, 47, .16), transparent 34%),
    radial-gradient(circle at 82% 78%, rgba(189, 145, 61, .16), transparent 32%),
    #f4f1ea;
}

.page404__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.18)),
    repeating-linear-gradient(
      45deg,
      rgba(15, 59, 46, .035) 0,
      rgba(15, 59, 46, .035) 1px,
      transparent 1px,
      transparent 18px
    );
}

.page404__container {
  position: relative;
  z-index: 1;
  width: min(100%, 1360px);
  margin: 0 auto;
}

.page404__banner-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 28px;
  background: rgba(255,255,255,.68);
  box-shadow:
    0 28px 80px rgba(15, 25, 20, .16),
    inset 0 0 0 1px rgba(18, 58, 43, .08);
}

.page404__banner {
  width: 100%;
  height: auto;
  display: block;
}

/* 
  Прозрачная кнопка поверх нарисованной кнопки "НА ГЛАВНУЮ".
  Координаты рассчитаны под баннер 1536x1024.
*/
.page404__hotspot {
  position: absolute;
  left: 18.4%;
  top: 78.1%;
  width: 20.2%;
  height: 7.6%;
  z-index: 3;
  border-radius: 999px;
  outline: none;
}

.page404__hotspot:focus-visible {
  box-shadow:
    0 0 0 4px rgba(255,255,255,.85),
    0 0 0 7px rgba(189,145,61,.95);
}

.page404__actions {
  display: none;
  margin-top: 22px;
  text-align: center;
}

.page404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 34px;
  border-radius: 999px;
  background: linear-gradient(180deg, #0f4a32, #083622);
  color: #fff;
  border: 2px solid #c7a14d;
  box-shadow: 0 14px 28px rgba(12, 65, 43, .22);
  font-size: 18px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  text-decoration: none;
}

.page404__btn:hover,
.page404__btn:focus-visible {
  background: linear-gradient(180deg, #125a3b, #093d27);
}

/* Tablet */
@media (max-width: 1024px) {
  .page404 {
    padding: 24px 12px;
  }

  .page404__banner-wrap {
    border-radius: 22px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .page404 {
    align-items: flex-start;
    padding: 18px 10px 28px;
  }

  .page404__container {
    width: 100%;
  }

  .page404__banner-wrap {
    border-radius: 18px;
  }

  .page404__hotspot {
    left: 17.5%;
    top: 77.5%;
    width: 22.5%;
    height: 8.5%;
  }

  .page404__actions {
    display: block;
  }

  .page404__btn {
    width: min(100%, 320px);
  }
}

/* Very small mobile */
@media (max-width: 420px) {
  .page404 {
    padding-top: 12px;
  }

  .page404__banner-wrap {
    border-radius: 14px;
  }

  .page404__hotspot {
    left: 16.5%;
    top: 77%;
    width: 25%;
    height: 9%;
  }
}