/* popup scroll */
.t-popup.t-popup_show .uc-ticket_info{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.t-popup.t-popup_show .t-popup__container{
  max-height:100vh;
  overflow:visible;
}

/* ===== FIX: попап не должен давать горизонтальный скролл ===== */
.t-popup.t-popup_show {
  position: fixed; inset: 0;
}

/* сам арткборд попапа: ширина строго = ширине экрана, без горизонт. скролла */
.t-popup.t-popup_show .uc-ticket_info{
  width: 100vw !important;
  max-width: 100% !important;
  left: 0 !important;
  margin: 0 auto !important;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

/* фоновые слои Tilda в этом попапе тоже фиксируем на экран */
.t-popup.t-popup_show .uc-ticket_info .t396__carrier,
.t-popup.t-popup_show .uc-ticket_info .t396__filter{
  position: fixed;
  inset: 0;
}

/* любые атомы внутри — не шире контейнера */
.t-popup.t-popup_show .uc-ticket_info .tn-atom{
  max-width: 100%;
  box-sizing: border-box;
}

/* наш маршрут: на всякий, никакого горизонтального скролла */
.t-popup.t-popup_show .flight-route{
  max-width: 100%;
  overflow-x: hidden;
}

/* перестраховка: глобально гасим горизонтальный скролл на время попапа */
html.t-nohscroll, body.t-nohscroll { overflow-x: hidden !important; }

/* ——— МАРШРУТ ——— */
.flight-route{
  font-family:inherit;
  color:#0b1f35;
  padding:10px 12px;
}
.fr-section{
  background:#F5FDFF;
  border:0px solid #E6ECF0;
  border-radius:14px;
  padding:5px;
  margin-bottom:12px;
}

/* Заголовок направления */
.fr-header{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  margin-bottom:10px;
}
.fr-dir{
  margin:0;
  font-weight:800;
  font-size:16px;
  color:#006C83;
}
.fr-segdur{
  font-size:12px;
  color:#6b7a8c;
  font-weight:600;
}

/* Перелёт (шапка) */
.fr-leg{
  background:#fff;
  border:1px solid #F0F3F5;
  border-radius:10px;
  padding:10px 8px;
  margin-bottom:8px;
}
.fr-leg__top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:6px;
  gap:12px;
}
.fr-airline{
  display:flex;
  align-items:center;
  gap:10px;
}
.fr-airline__logo{
  width:28px; height:28px;
  border-radius:50%;
  overflow:hidden;
  margin-left:4px;
  flex:0 0 28px;
}
.fr-airline__logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.fr-airline__txt{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}
.fr-airline__name{ font-weight:800; }
.fr-airline__sub{
  font-size:10px;
  color:#6b7a8c;
  font-weight:600;
}

/* Таймлайн: вертикальная линия + точки */
.fr-times{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding-left:32px;
}
.fr-times::before{
  content:"";
  position:absolute;
  left:17px;
  top:10px;
  bottom:22px;
  width:2px;
  background:#E1E7EC;
  border-radius:2px;
}
.fr-point{ position:relative; }
.fr-point::before{
  content:"";
  position:absolute;
  left:-22px;
  top:6px;
  width:12px; height:12px;
  border-radius:50%;
  background:#fff;
  border:2px solid #C8D0D7;
}
.fr-point--start::before{
  background:#fff;
  border-color:#8FB7C3;
}
.fr-point--end::before{
  background:#8FB7C3;
  border-color:#8FB7C3;
}

/* Внутри точки — две колонки: время/дата и город/аэропорт */
.fr-line{
  display:flex;
  align-items:flex-start;
  gap:16px;
}
.fr-col--time{ min-width:70px; }
.fr-time{
  font-weight:800;
  font-size:16px;
  line-height:1.15;
}
.fr-date{
  margin-top:4px;
  font-size:12px;
  color:#A07E7E;
  font-weight:700;
  opacity:.9;
}
.fr-col--place{ min-width:0; }
.fr-city{
  font-weight:800;
  font-size:16px;
  line-height:1.15;
}
.fr-airport{
  margin-top:4px;
  font-size:13px;
  color:#6b7a8c;
}

/* Пересадки */
.fr-conn{
  background:#F8FBFD;
  border:1px dashed #BFD6DD;
  border-radius:10px;
  padding:8px 10px;
  margin:8px 0;
}
.fr-conn__row{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
  font-size:14px;
}
.fr-conn__title{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:800;
}
.fr-conn__title::before{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:#C8D0D7;
}
.fr-badges{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.fr-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:700;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid;
  background:#fff;
  cursor:pointer;
  transition:background .2s;
}
.fr-badge:hover{ opacity:0.9; }

.fr-badge::after{
  content:"i";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px; height:16px;
  font-size:11px;
  font-weight:700;
  border-radius:50%;
  border:1px solid currentColor;
  background:rgba(255,255,255,.6);
  line-height:1;
}

/* оттенки */
.fr-badge--visa {color:#C24040;border-color:#C24040;background:#FFF6F6;}
.fr-badge--night{color:#6A5ACD;border-color:#6A5ACD;background:#F6F5FF;}
.fr-badge--long {color:#AD6A00;border-color:#AD6A00;background:#FFF9F0;}

/* правый столбец в шапке перелёта (вместо кнопки) */
.fr-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  line-height:1.15;
  gap:2px;
}
.fr-flight{
  font-weight:800;
  font-size:13px;
  color:#0b1f35;
}
.fr-aircraft{
  font-size:12px;
  color:#6b7a8c;
  font-weight:600;
}

/* если из API нет значения — строку скрываем аккуратно */
.fr-flight:empty,
.fr-aircraft:empty{ display:none; }

/* =========================================================
   АДАПТИВ ДЛЯ ROUTE
   ========================================================= */

/* 0–382px — очень узкие экраны */
@media (max-width: 382px){
  .fr-dir{font-size:14px;}
  .fr-time{font-size:15px;}
  .fr-city{font-size:15px;}
  .fr-airport{font-size:12px;}
}

/* 383–410px — компактные телефоны */
@media (min-width: 383px) and (max-width: 410px){
  .fr-dir{font-size:14px;}
  .fr-time{font-size:15px;}
  .fr-city{font-size:15px;}
  .fr-airport{font-size:12px;}
}

/* 411–766px — как было на max-width:820px */
@media (min-width: 411px) and (max-width: 766px){
  .fr-dir{font-size:14px;}
  .fr-time{font-size:15px;}
  .fr-city{font-size:15px;}
  .fr-airport{font-size:12px;}
}

/* 767–980px — планшеты / мелкие ноутбуки (по умолчанию базовые размеры) */
@media (min-width: 767px) and (max-width: 980px){
  /* при желании можешь добавить тут свои размеры шрифтов */
}

/* 981–1278px — стандартные ноутбуки */
@media (min-width: 981px) and (max-width: 1278px){
  /* базовые: dir/time/city 16px, airport 13px */
}

/* 1279–1332px */
@media (min-width: 1279px) and (max-width: 1332px){
}

/* 1333–1438px */
@media (min-width: 1333px) and (max-width: 1438px){
}

/* 1439–1678px — нормальные десктопы */
@media (min-width: 1439px) and (max-width: 1678px){
}

/* 1679–1918px — крупные мониторы */
@media (min-width: 1679px) and (max-width: 1918px){
  /* если захочешь крупнее:
     .fr-dir,.fr-time,.fr-city{font-size:17px;}
     .fr-airport{font-size:14px;}
  */
}

/* ≥1919px — базовый вид */
@media (min-width: 1919px){
}
