@font-face{font-family:'Gotham Pro';src:url('../fonts/GothamPro-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Gotham Pro';src:url('../fonts/GothamPro-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}

.vsesvoi-page{
  font-family:'Gotham Pro',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:#1B2733;
  background:#F7F8FA;
  -webkit-font-smoothing:antialiased;
}

.vsesvoi-page,
.vsesvoi-page *,
.vsesvoi-page *::before,
.vsesvoi-page *::after{
  box-sizing:border-box;
}

.vsesvoi-page a{
  color:inherit;
  text-decoration:none;
}

.vsesvoi-page button,
.vsesvoi-page input,
.vsesvoi-page textarea{
  font-family:inherit;
}

.vsesvoi-page button{
  cursor:pointer;
  border:none;
}

.vsesvoi-page .container{
  max-width:1280px;
  margin:0 auto;
  padding:0 24px;
}

.vsesvoi-page .section-title{
  font-size:40px;
  font-weight:400;
  margin:0;
  color:#11203A;
}

.vsesvoi-page .btn-primary{
  background:#0071BC;
  color:#fff;
  font-weight:500;
  font-size:17px;
  border-radius:999px;
  box-shadow:0 12px 28px rgba(0,113,188,.34);
  transition:.18s;
}

.vsesvoi-page .btn-primary:hover{
  background:#005A93;
  transform:translateY(-2px);
}

/* Форма заявки */

.vsesvoi-page .booking{
  background:#F7F8FA;
  padding:70px 0;
}

.vsesvoi-page .booking__box{
  background:#fff;
  border:1px solid #EAEEF3;
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(20,40,80,.08);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
}

.vsesvoi-page .booking__info{
  background:linear-gradient(160deg,#0071BC 0%,#00568f 100%);
  padding:46px 40px;
  color:#fff;
  position:relative;
  overflow:hidden;
}

.vsesvoi-page .booking__info-decor{
  position:absolute;
  right:-50px;
  top:-50px;
  width:200px;
  height:200px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
}

.vsesvoi-page .booking__info-inner{
  position:relative;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.vsesvoi-page .booking__info-badge{
  display:inline-flex;
  align-self:flex-start;
  align-items:center;
  background:rgba(255,255,255,.16);
  font-size:12.5px;
  padding:6px 13px;
  border-radius:999px;
  margin-bottom:18px;
}

.vsesvoi-page .booking__info h2{
  font-size:32px;
  font-weight:400;
  margin:0 0 14px;
  line-height:1.15;
}

.vsesvoi-page .booking__info p{
  font-size:16px;
  line-height:1.6;
  color:#D6EAF8;
  margin:0 0 28px;
}

.vsesvoi-page .booking__stats{
  display:flex;
  flex-wrap:wrap;
  gap:28px;
}

.vsesvoi-page .booking__stat-num{
  font-size:24px;
  font-weight:400;
  line-height:1.2;
}

.vsesvoi-page .booking__stat-label{
  font-size:13px;
  color:#BBD9EE;
  line-height:1.35;
  margin-top:4px;
}

.vsesvoi-page .booking__form{
  padding:42px 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.vsesvoi-page .booking__fields{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.vsesvoi-page .booking__field{
  width:100%;
  padding:15px 26px;
  border:1.5px solid #E2E6EC;
  border-radius:32px;
  font-size:15px;
  color:#1B2733;
  background:#fff;
  outline:none;
}

.vsesvoi-page .booking__agree{
  display:flex;
  align-items:flex-start;
  gap:11px;
  cursor:pointer;
}

.vsesvoi-page .booking__agree input{
  flex:none;
  width:16px;
  height:16px;
  margin-top:2px;
}

.vsesvoi-page .booking__agree-text{
  font-size:12.5px;
  color:#8A94A3;
  line-height:1.5;
}

.vsesvoi-page .booking__submit{
  width:100%;
  margin-top:4px;
  padding:17px;
  background:#EC008C;
  color:#fff;
  font-weight:500;
  font-size:17px;
  border-radius:25rem;
  box-shadow:0 10px 26px rgba(236,0,140,.3);
  transition:.18s;
}

.vsesvoi-page .booking__submit:hover{
  background:#C70076;
  transform:translateY(-2px);
}

.vsesvoi-page .form-error{
  color:#C7002B;
  font-size:13px;
}

.vsesvoi-page .form-success{
  color:#1E9E54;
  font-size:13px;
}

/* Контакты и карта */

.vsesvoi-page .contacts{
  background:#fff;
  padding:70px 0 40px;
}

.vsesvoi-page .contacts__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  flex-wrap:wrap;
  margin-bottom:28px;
}

.vsesvoi-page .contacts__route{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  color:#0071BC;
  font-weight:500;
  font-size:15px;
  padding:0.775rem 1.55rem;
  border-radius:999px;
  border:1.5px solid #CFE0F1;
  transition:.18s;
}

.vsesvoi-page .contacts__route:hover{
  border-color:#0071BC;
  background:#F4F9FE;
}

.vsesvoi-page .contacts__grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:22px;
  align-items:stretch;
}

.vsesvoi-page .contacts__card{
  background:#F6F8FB;
  border:1px solid #EAEEF3;
  border-radius:22px;
  padding:30px 28px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.vsesvoi-page .contacts__row{
  padding:12px 0;
  border-bottom:1px solid #EAEEF3;
}

.vsesvoi-page .contacts__row:last-of-type{
  border-bottom:none;
}

.vsesvoi-page .contacts__label{
  font-size:12.5px;
  color:#8A94A3;
  font-weight:500;
  margin-bottom:3px;
}

.vsesvoi-page .contacts__value{
  font-size:15.5px;
  font-weight:500;
  color:#11203A;
  line-height:1.4;
}

.vsesvoi-page .contacts__value a{
  font-size:20px;
  font-weight:500;
  color:#0071BC;
}

.vsesvoi-page .contacts__actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.vsesvoi-page .contacts__actions .btn-primary{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:1;
  min-width:150px;
  padding:15px;
  border-radius:100px;
  font-size:15px;
  line-height:1.2;
  text-align:center;
}

.vsesvoi-page .contacts__map{
  border:1px solid #EAEEF3;
  border-radius:22px;
  overflow:hidden;
  min-height:380px;
  position:relative;
  background:#E9EEF3;
}

.vsesvoi-page .contacts__map--modx{
  min-height:380px;
}

.vsesvoi-page .contacts__map--modx > div,
.vsesvoi-page .contacts__map--modx [id^="contacts_map_"]{
  width:100%;
  height:100%;
  min-height:380px;
}

.vsesvoi-page .contacts__map--modx ymaps{
  border-radius:22px;
}

/* Соцсети */

.vsesvoi-page .social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  color:#999;
  font-size:24px;
  line-height:1;
  border-radius:5px;
  transition:color .18s;
}

.vsesvoi-page .social-link--tg:hover{color:#59B9E5}
.vsesvoi-page .social-link--yt:hover{color:#F71000}
.vsesvoi-page .social-link--vk:hover{color:#5376A2}

/* Адаптив */

@media (max-width:859px){
  .vsesvoi-page .container{
    padding:0 16px;
  }

  .vsesvoi-page .section-title{
    font-size:32px;
  }

  .vsesvoi-page .booking{
    padding:48px 0;
  }

  .vsesvoi-page .booking__box{
    grid-template-columns:1fr;
    border-radius:22px;
  }

  .vsesvoi-page .booking__info,
  .vsesvoi-page .booking__form{
    padding:32px 24px;
  }

  .vsesvoi-page .booking__info h2{
    font-size:28px;
  }

  .vsesvoi-page .contacts{
    padding:48px 0 32px;
  }

  .vsesvoi-page .contacts__grid{
    grid-template-columns:1fr;
  }

  .vsesvoi-page .contacts__actions .btn-primary{
    width:100%;
  }
}

@media (max-width:480px){
  .vsesvoi-page .section-title{
    font-size:26px;
  }

  .vsesvoi-page .contacts__head .contacts__route{
    font-size:11px;
    gap:6px;
  }

  .vsesvoi-page .contacts__head .contacts__route svg{
    width:16px;
    height:16px;
  }
}