@media (max-width:1180px){.left_line_diag_sec,.pin_bus_left,.pin_bus_right,.pin_bus_table,.right_blocks_line,.right_contact_line,.right_line_diag_sec,.section_table_line{display:none}}@media (max-width:1179px){.form-container{flex-direction:column;gap:25px}.button_callback_block{width:100%}}@media (max-width:1070px){.left-button{margin-right:7px}.left-button,.right-button{background-image:url(/images/legacy/mob_vector.svg);margin-top:30px}.right-button{margin-left:7px}.top-button{background-image:url(/images/legacy/mob_vector.svg)}.bottom-button,.middle-button{background-image:url(/images/legacy/mob_vector_mirr.svg)}.left_diagram_line,.right_diagram_line,.straight_diagram_line_bottom,.straight_diagram_line_top{display:none}.button_diag,.button_diag_col{font-size:11px;height:111px;width:139px}.button_diag_col:after{top:15px}.button_diag:after,.button_diag_col:after{background-image:url(/images/legacy/dot-btn.png);height:11px;left:64px;width:11px}.button_diag:after{top:68px}.column_diag{gap:2px}.mob_straight_l_top{display:block;position:absolute;top:90px}.mob_straight_l_bottom{bottom:110px;display:block;position:absolute}.mob_right_l{right:105px}.mob_left_l,.mob_right_l{display:block;position:absolute;top:105px}.mob_left_l{left:105px}.diagram-section{max-width:500px}}@media (max-width:1012px){.overlay-image-up{font-size:13px;padding:6px 19px 6px 13px}.overlay-image-down{font-size:13px;padding:4px 18px}.block .bus_image_table img,.block2 .bus_image_table img{border-radius:15px}}@media (max-width:768px){.banner_first .desk_banner{display:none}.banner_first .mob_banner{display:block}.diagram-title h3{font-size:16px}.diagram-section{padding-bottom:0;padding-top:0}.mob_right_blocks_line{display:block;position:absolute;right:0;top:100px}.mob_left_blocks_line{bottom:270px;display:block;left:0;position:absolute}.mob_pin_bus_block{display:block;position:absolute;right:30px;top:70px}.mob_pin_bus_block_m{bottom:620px;display:block;left:0;position:absolute}.mob_table_line_r{right:0;top:-70px}.mob_table_line_l,.mob_table_line_r{display:block;position:absolute;z-index:-999}.mob_table_line_l{left:0;top:630px}.mob_pin_bus_table{display:block;position:absolute;right:40px;top:40px}.mob_pin_bus_table_m{bottom:-50px;display:block;left:20px;position:absolute}.right_contact_line_m{display:block;position:absolute;right:0;top:-100px;z-index:-999}.mob_pin_bus_contact_m{display:block;position:absolute;right:30px;top:50px}.flatpickr-calendar{transform:scale(.85)}.calendar_btn{padding:10px 24px!important}.calendar_btn_cancel{padding:10px 36px!important}.calendar-header{font-size:12px;margin-bottom:0}.modal-content{padding:20px;width:335px}.modal-buttons{margin-top:0}.diagram-title p{font-size:16px}.first_section{padding-top:42px}.right_blocks_line{bottom:0;position:absolute;right:0}.block{margin-bottom:11px;margin-right:0;padding:11px}.block2{margin-left:0;margin-top:11px;padding:11px}.diagram_group .diagram-btn-colomn:first-child{background-color:#fff;border-radius:20px;box-shadow:0 10px 50px 0 #0099df4d;color:#878d8f;cursor:pointer;font-family:Inter;font-size:11px;font-weight:500;padding:15px 14px 19px;text-align:center;transition:background-color .6s ease,color .6s ease}.text_above_block{display:flex;margin-bottom:12px;margin-top:42px;position:relative}.text_above_block img{-o-object-fit:contain;object-fit:contain;width:15%}.dropdown{width:0}.dropdown-toggle{font-size:0;justify-content:center;padding:10px}.dropdown-toggle .icon{height:14px;width:14px}.contact_container{padding:10px}.form-container{flex-direction:column;gap:25px}.contact_block{justify-content:center;margin-right:0;text-align:center}.form-group{margin-bottom:10px;width:100%}.form-group button,.form-group input,.form-group textarea{font-size:14px}.form-group textarea{max-height:122px}.form-group button{padding:11px 115px}.contact_block,.textarea_block{margin-right:0;max-width:100%;width:100%}.form-group button,.form-group input,.form-group textarea{max-width:100%;min-width:unset}.form-group button{padding:18px 0;width:100%}.button_block{display:flex;justify-content:center;width:100%}.form-group.d-flex{align-items:flex-start;flex-direction:column}.form-group.d-flex .form-select{width:100%!important}.form-group.d-flex input{margin-top:10px;width:100%}.bus_foot img{width:50%}.addition_back{padding-top:71px}.addition_block{padding:12px 12px 24px}.addition_img img{border-radius:8px}.diagram-btn{background-color:#fff;border-radius:15px;box-shadow:0 10px 50px 0 #0099df4d;color:#878d8f;font-family:Inter;font-size:20px;font-weight:500;padding:22px;text-align:center}.left-line{left:0;padding-left:125px}.left-line,.right-line{display:none;padding-top:230px;position:absolute}.right-line{padding-right:120px;right:0}.section_blocks h1{font-size:20px}.section_blocks{margin-bottom:0!important}.block ul,.block2 ul{margin-top:12px}.block ul li,.block2 ul li{font-size:11px;margin-bottom:12px}.selection_menu{display:none}.block ul li::marker{color:#a3e8f9;font-size:22px;vertical-align:middle}.block2 ul li::marker{color:#a3e8f9;font-size:22px;vertical-align:middle}.overlay-image-up{font-size:13px;padding:6px 19px 6px 13px}.overlay-image-down{font-size:13px;padding:4px 16px}.text_above{font-size:14px;margin-left:10px;margin-top:0}.block_table_btn{margin-top:16px;padding:8px 13px}.addition_section h1{font-size:20px;margin-bottom:42px;margin-top:64px}.addition_block h2{font-size:12px;margin-bottom:5px;margin-top:6px}.addition_block p{font-size:10px;line-height:12.36px;text-align:center}.contact h2{font-size:20px;margin-bottom:42px}.section_table{padding-top:64px!important}.contact{padding-top:64px}.section_table h1{font-size:20px;margin-bottom:42px}.left_line_diag_sec,.pin_bus_left,.pin_bus_right,.pin_bus_table,.right_blocks_line,.right_contact_line,.right_line_diag_sec,.section_table_line{display:none}.custom-schedule-styled-select{font-size:8px;padding:10px 26px 10px 12px}.custom-schedule-select-wrapper:after{height:16px;max-width:300px;width:16px}}@media (max-width:480px){.left-button{padding-left:8px}.left-button,.right-button,.top-button{padding-top:15px}.right-button{padding-left:10px}.bottom-button,.middle-button{padding-bottom:15px}.btn_line button{font-size:14px;padding:8px}.mob_right_l{right:70px}.mob_left_l{left:70px}.diagram-title p{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.78px;text-align:center;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.banner_margin,.diagram-title{margin-bottom:42px}.diagram-btn{background-color:#fff;border-radius:10px;box-shadow:0 10px 50px 0 #0099df4d;color:#878d8f;cursor:pointer;font-family:Inter;font-size:11px;font-weight:500;padding:15px 14px 19px;position:relative;text-align:center;transition:background-color .6s ease,color .6s ease}.diagram_group .diagram-btn-colomn:first-child{margin-bottom:40px}.diagram_group .diagram-btn-colomn:last-child{margin-bottom:42px;margin-top:37px}.diagram-btn-colomn,.diagram_group .diagram-btn-colomn:first-child{background-color:#fff;border-radius:20px;box-shadow:0 10px 50px 0 #0099df4d;color:#878d8f;cursor:pointer;font-family:Inter;font-size:11px;font-weight:500;padding:15px 14px 19px;text-align:center;transition:background-color .6s ease,color .6s ease}.colomn-diag-margin{margin-top:42px}}


/* =========================================================
   BOOKING V2 (как на фото) — scoped только для этой страницы
   ========================================================= */
.content.booking_v2{
  --b2-blue: #40A6FF;
  --b2-blue2: #35BAF0;
  --b2-border: #A3E8F9;
  --b2-grad: linear-gradient(0deg, #63D5F8 0%, #34B9F0 100%);
  --b2-text: #303233;
  --b2-gray: #6E7172;
  --b2-gray2:#878D8F;
  --b2-danger:#EB5757;

  position: relative;
  background: #fff;
  overflow: hidden;
}

/* Контент выше фона */
.booking_v2__layer{ position: relative; z-index: 2; }

/* ---------- ДЕКОР ФОН (линии/остановки/автобус/кнопка звонка) ---------- */
.booking_v2__decor{
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.booking_v2__decor_svg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.booking_v2__decor_path{
  fill: none;
  stroke: var(--b2-blue2);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 10 12;
  opacity: .85;
}

/* Остановки */
.booking_v2__pin{
  position: absolute;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: #fff;
  display: grid;
  place-items: center;

  box-shadow:
    0 0 0 2px rgba(53, 186, 240, .35),
    0 10px 22px rgba(53, 186, 240, .18);
}
.booking_v2__pin svg{ width: 22px; height: 22px; fill: var(--b2-blue2); }

/* Позиции остановок как на скрине (подгонишь при желании) */
.booking_v2__pin--right{ top: 170px; right: 18px; }
.booking_v2__pin--left{ top: 430px; left: 18px; }

/* Автобус снизу слева */
.booking_v2__bus{
  position: fixed;
  left: -30px;
  bottom: 0;
  width: min(430px, 92vw);
  height: auto;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,.18));
}

/* Кнопка звонка справа снизу */
.booking_v2__call{
  position: fixed;
  right: 18px;
  bottom: 92px;
  width: 68px;
  height: 68px;
  border-radius: 999px;
  background: var(--b2-grad);
  box-shadow: 0 0 20px rgba(53, 186, 240, .72);
  pointer-events: auto; /* единственный элемент фона, которому нужны клики */
}

.booking_v2__call::before{
  content:"";
  position:absolute;
  inset: 18px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.5 2.9 3.7 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.9.6.6 0 1 .4 1 1V21c0 .6-.4 1-1 1C10.3 22 2 13.7 2 3c0-.6.4-1 1-1h3.8c.6 0 1 .4 1 1 0 1.4.2 2.7.6 3.9.1.4 0 .8-.3 1.1L6.6 10.8z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.5 2.9 3.7 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.5.6 3.9.6.6 0 1 .4 1 1V21c0 .6-.4 1-1 1C10.3 22 2 13.7 2 3c0-.6.4-1 1-1h3.8c.6 0 1 .4 1 1 0 1.4.2 2.7.6 3.9.1.4 0 .8-.3 1.1L6.6 10.8z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Чтобы контент не “упирался” в автобус */
.content.booking_v2 .page_content_wrapper{ padding-bottom: 170px; }

/* ---------- ШАГИ (пилюли как на фото) ---------- */
.content.booking_v2 .purchase_steps_wrapper{
  background: #fff;
  box-shadow: 0 6px 25px rgba(64,166,255,.20);
  padding: 14px 0;
  margin-bottom: 18px;
}

.content.booking_v2 .purchase_steps{
  gap: 14px;
}

/* Пилюля */
.content.booking_v2 .purchase_step_wrapper{
  position: relative;
}

.content.booking_v2 .purchase_step{
  border: 3px solid var(--b2-blue);
  border-radius: 999px;
  padding: 14px 18px;
  color: var(--b2-blue);
  background: #fff;
  font-family: Montserrat, system-ui;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.1;
  white-space: nowrap;
}

/* Активная */
.content.booking_v2 .purchase_step.active{
  background: var(--b2-blue);
  color: #fff;
}

/* Соединительная полоска между шагами */
.content.booking_v2 .purchase_step_wrapper:not(:last-child)::after{
  content:"";
  position:absolute;
  right: -18px;
  top: 50%;
  width: 28px;
  height: 3px;
  background: var(--b2-blue);
  border-radius: 8px;
  transform: translateY(-50%);
}

/* ---------- КАРТОЧКИ (как на фото) ---------- */
.content.booking_v2 .shadow_block,
.content.booking_v2 .route_block{
  background: #fff;
  border: 3px solid var(--b2-border);
  border-radius: 15px;
  box-shadow: 0px 2px 25px rgba(53,186,240,0.15) inset;
}

/* Заголовки внутри карточек — по центру */
.content.booking_v2 .block_title{
  text-align: center;
  color: var(--b2-text);
  font-family: Montserrat, system-ui;
  font-weight: 600;
  font-size: clamp(22px, 4.8vw, 36px);
  line-height: 1.25;
  margin-bottom: 8px;
}

.content.booking_v2 .par,
.content.booking_v2 .ticket_order_block_subtitle{
  color: var(--b2-gray);
  font-family: Montserrat, system-ui;
  font-weight: 600;
}

/* Подзаголовки “Контактные данные пассажира …” */
.content.booking_v2 .passengers_inputs{
  font-family: Montserrat, system-ui;
  font-weight: 600;
  color: #000;
  margin: 18px 0 10px;
}

/* ---------- ИНПУТЫ (как на фото) ---------- */
.content.booking_v2 input.c_input,
.content.booking_v2 input.customer_phone_input{
  width: 100%;
  height: 72px;
  padding: 16px 20px;
  border-radius: 12px;
  border: 2px solid var(--b2-border);
  background: #fff;
  box-shadow: 0 0 10px rgba(163,216,249,0.60) inset;

  font-family: Montserrat, system-ui;
  font-weight: 600;
  font-size: 18px;
  color: var(--b2-text);
}

/* Плейсхолдер как на фото (серый) */
.content.booking_v2 input.c_input::placeholder,
.content.booking_v2 input.customer_phone_input::placeholder{
  color: var(--b2-gray);
  opacity: 1;
}

/* Ошибка обязательного поля (у тебя класс required_error уже ставится) */
.content.booking_v2 .required_error{
  border-color: var(--b2-danger) !important;
  box-shadow: 0 0 0 3px rgba(235,87,87,.12), 0 0 10px rgba(163,216,249,0.60) inset !important;
}

/* Селект страны (nice-select) под стиль инпута */
.content.booking_v2 .phone_input_wrapper .nice-select{
  height: 72px;
  border-radius: 12px;
  border: 2px solid var(--b2-border);
  box-shadow: 0 0 10px rgba(163,216,249,0.60) inset;
  padding-left: 18px;
  padding-right: 42px;
  display:flex;
  align-items:center;
  background:#fff;
}
.content.booking_v2 .phone_input_wrapper .nice-select .current{
  font-family: Montserrat, system-ui;
  font-weight: 600;
  color: var(--b2-gray);
}

/* ---------- Строка “В автобусе свободная рассадка *” ---------- */
.content.booking_v2 .ticket_seat{
  justify-content: space-between;
  width: 100%;
  gap: 10px;
}
.content.booking_v2 .ticket_seat span{
  font-family: Montserrat, system-ui;
  font-weight: 600;
  color: var(--b2-gray);
}
.content.booking_v2 .ticket_seat span:last-child::after{
  content:" *";
  color: var(--b2-danger);
  font-size: 22px;
  line-height: 1;
}

/* ---------- КНОПКА “Перейти к оплате” ---------- */
.content.booking_v2 .booking_v2__main_btn{
  width: 100%;
  height: 68px;
  border-radius: 34px;
  background: var(--b2-grad) !important;
  border: 0 !important;
  color: #fff !important;
  display:flex;
  justify-content:center;
  align-items:center;
  font-family: Montserrat, system-ui;
  font-weight: 600;
  font-size: 20px;
}

.content.booking_v2 .booking_v2__main_note{
  text-align: center;
  margin-top: 10px;
  color: var(--b2-gray);
}

/* ---------- ROUTE карточка под “как на фото” ---------- */
.content.booking_v2 .route_block_title,
.content.booking_v2 .mobile_route_block_title{
  text-align:center;
  font-family: Montserrat, system-ui;
  font-weight: 600;
  font-size: clamp(20px, 4.6vw, 36px);
  color: var(--b2-text);
  justify-content: center;
}

.content.booking_v2 .route_details_delimiter{
  height: 2px;
  background: #DFE0E0;
  margin: 18px 0;
}

/* Цена/К оплате — справа жирно */
.content.booking_v2 .route_price{
  justify-content: space-between;
}
.content.booking_v2 .route_price .total_price{
  font-family: Montserrat, system-ui;
  font-weight: 700;
  color: var(--b2-text);
}

/* ---------- МОБИЛЬНАЯ ЦЕНТРОВКА как на скрине ---------- */
@media (max-width: 575px){
  .content.booking_v2 .booking_blocks{
    justify-content: center;
  }
  .content.booking_v2 .booking_blocks > div[class*="col-"]{
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }

  /* шаги — меньше */
  .content.booking_v2 .purchase_step{
    font-size: 14px;
    padding: 12px 14px;
  }
  .content.booking_v2 .purchase_step_wrapper:not(:last-child)::after{
    width: 18px;
    right: -12px;
  }

  /* автобус чуть ниже, чтобы не съедал низ */
  .booking_v2__bus{ bottom: -6px; }
}

/* На больших экранах декор можно чуть “приглушить” (по желанию) */
@media (min-width: 992px){
  .booking_v2__decor_path{ opacity: .55; }
}

