/* =========================================================
   Страница "Новости" — по макету Figma (node 15:20010)
   ========================================================= */

body.news-page{ background:#F7F7F7; }

/* Мобильное меню: на десктопе/планшете эти блоки невидимы и не влияют на раскладку —
   .main-nav__list "растворяется", отдавая свои <li> напрямую в .main-nav (как и было раньше) */
.main-nav__list{ display:contents; }
.mobile-menu-header, .mobile-menu-contact, .main-nav__dropdown-back{ display:none; }

/* ---------- Баннер шапки (единый для внутренних страниц) ---------- */
.page-banner{
  position:relative;
  min-height:214px;
  background:#0a3b5e;
}
.page-banner__slide{
  position:absolute; inset:0;
  overflow:hidden;
  opacity:0;
  transition: opacity 1.2s ease;
}
.page-banner__slide.active{ opacity:1; }
.page-banner__slide-img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.page-banner__overlay{ position:absolute; inset:0; background:rgba(0,0,0,.4); }

/* Фон верхнего меню задаётся одним правилом — .page-banner .nav-pill (см. ниже).
   Отдельного body.news-page .nav-pill больше нет: он дублировал тот же цвет вторым
   слоем и заодно перебивал box-shadow из-за большей специфичности. */
body.news-page .main-nav__dropdown{ background: rgba(10,59,94,.7); }
body.news-page .main-nav__dropdown a:hover{ background: none; }

@media (prefers-reduced-motion: reduce){
  .page-banner__slide{ transition:none; }
}

.page-banner .site-header{ position:absolute; top:40px; }
/* Верхнее меню внутренних страниц: один слой — фон #0A3B5E при 70% + глассморфизм.
   Внешней тени нет (только внутренние блики по краям). */
.page-banner .nav-pill{
  position: relative;
  background: rgba(10,59,94,.7);
  backdrop-filter: blur(14px) saturate(1.8) brightness(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.8) brightness(1.1);
  border: 1px solid #fff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.85),
    inset 0 -1px 0 rgba(0,0,0,.2);
}
.page-banner .header-side{
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Фон выпадающего списка языка задан в style.css по макету (node 1:48176) —
   rgba(169,169,169,.4) с белой рамкой. Прежнее переопределение под цвет
   плашки меню снято: макет для всех страниц один. */

.breadcrumbs{
  position:relative; z-index:2;
  max-width: var(--content-max);
  margin: 0 auto;
  /* 170 = 40 (отступ шапки) + 70 (плашка) + 60 (зазор), снизу 24 —
     в сумме с высотой строки даёт баннер 214px (Figma node 15:18078 «head 1920») */
  padding: 170px var(--page-pad) 24px;
  /* row-gap:0 — на мобильной крошки переносятся в две строки, и зазор 9px
     раздувал баннер до 193px вместо 185px (Figma node 15:19258) */
  display:flex; flex-wrap:wrap; align-items:center; column-gap:9px; row-gap:0;
  /* line-height ровно 20px: разделитель «—» крупнее ссылок (15px), и при
     line-height:1.4 строка вырастала до 21px, сдвигая баннер на 215px */
  font-size:14px; line-height:20px; color:#fff;
}
.breadcrumbs .sep{ font-size:15px; }
.breadcrumbs .current{ color:#d9d9d9; }
.breadcrumbs a{ transition:color .2s; }
.breadcrumbs a:hover{ color: var(--red-hover); }

/* ---------- Layout ---------- */
.news-layout{
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 60px var(--page-pad) 60px;
  display:flex;
  align-items:flex-start;
  gap:40px;
}

/* Свыше 599px: контент на всю ширину экрана, фиксированные отступы 60px по бокам (без ограничения 1800px).
   Мобильная версия (≤599px) не затрагивается. */
@media (min-width: 768px), (min-width: 600px) and (max-width: 767px) and (max-height: 599px){
  .news-layout{ max-width:none; padding-left:60px; padding-right:60px; }
  body.news-page .breadcrumbs{ max-width:none; padding-left:60px; padding-right:60px; }
  /* Шапка: отступ 60px от края экрана (на 600–1023px --page-pad даёт только 24px — Figma node 15:21215) */
  .site-header__inner{ width: min(1800px, calc(100% - 120px)); }
}

/* Планшет 600–1024px (Figma «1441», node 15:18618 «head 1441»): баннер 194px,
   а не 214px — зазор плашка→крошки здесь 40px вместо 60px. */
@media (min-width: 768px) and (max-width: 1024px), (min-width: 600px) and (max-width: 767px) and (max-height: 599px){
  .page-banner{ min-height:194px; }
  .breadcrumbs{ padding-top:150px; }
}

/* ≤599px: точные отступы контента (Figma «1442», node 15:19255) —
   баннер 0–185, контент 205–3639.5, подвал с 3659.5:
   по бокам 14px, 20px от баннера до заголовка, 20px до подвала */
@media (max-width: 599px), (min-width: 600px) and (max-width: 767px) and (min-height: 600px){
  /* «Новости»: сверху 20, снизу 40 до подвала (макет «390», node 15:22200/15:22508) */
  .news-layout{ padding:20px 14px 40px; }
  /* «Новости детальная»: снизу 20 (макет «1442», node 15:19255) */
  .news-layout.detail-layout{ padding-bottom:20px; }
  body.news-page .breadcrumbs{ padding-left:14px; padding-right:14px; }

  /* Высота баннера задаётся содержимым крошек: у «Новостей» они в одну строку
     (104+20+14 = 138, node 15:22076), у детальной — в две (185, node 15:19258). */
  .page-banner{ min-height:138px; }
  body.detail-page .page-banner{ min-height:185px; }
  /* Отступ от шапки до хлебных крошек — 20px (не 154px с десктопа), Figma node 15:19258 */
  .breadcrumbs{ padding-top:104px; padding-bottom:14px; }
  body.detail-page .breadcrumbs{ padding-bottom:19px; }

}

/* ---------- Sidebar ---------- */
.news-sidebar{
  width:350px;
  flex-shrink:0;
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:10px;
  overflow:hidden;
}
.news-sidebar a{
  display:flex;
  align-items:center;
  padding:16px 23px;
  border-bottom:1px solid #e5e5e5;
  font-size:15px;
  line-height:24px;
  color:#333;
  transition: background .2s, color .2s;
}
.news-sidebar a:last-child{ border-bottom:none; }
.news-sidebar a:hover{ background:#fafafa; color:#1666b0; }
.news-sidebar a.active{
  border:1px solid #E5E5E5;
  margin:-1px -1px 0 -1px;
  font-weight:700;
  color:#1666b0;
  position:relative;
  z-index:1;
}

/* ---------- Content ---------- */
.news-content{ flex:1; min-width:0; }
.news-content h1{
  font-family:'Inter',Arial,sans-serif;
  font-weight:700;
  font-size:42px;
  line-height:1.4;
  color:#333;
  margin-bottom:24px;
}

/* ---------- Filter bar ---------- */
.news-filterbar{
  background:#fff;
  border-radius:10px;
  padding:10px;
  display:flex;
  align-items:stretch;
  gap:20px;
  margin-bottom:24px;
  flex-wrap:wrap;
}
.nf-field{
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:8px;
  /* 72px + 10px паддингов строки = полоса фильтра 92px (node 15:20374) */
  min-height:72px;
  padding:10px 20px;
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
  position:relative;
  min-width:0;
}
.nf-field__category{ flex:1 0 0; min-width:180px; justify-content:space-between; }
.nf-field__period{ flex:0 0 250px; width:250px; justify-content:space-between; }
.nf-field .label{ font-size:14px; color:#333; display:block; margin-bottom:10px; white-space:nowrap; }
.nf-field .value{ font-size:18px; font-weight:500; color:#333; white-space:nowrap; }
.chev-wrap{ width:12px; height:7px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.nf-field img.chev{ width:7px; height:12px; transform:rotate(-90deg); display:block; }
.nf-field img.cal-icon{ width:24px; height:24px; flex-shrink:0; }
.nf-sep{ font-size:18px; font-weight:500; color:#333; display:flex; align-items:center; flex-shrink:0; }
.nf-field__grow{ flex:1; }
.nf-reset{
  background:#fff;
  border:1px solid #1666b0;
  border-radius:8px;
  padding:18px 27px;
  font-size:16px;
  flex-shrink:0;
  color:#1666b0;
  transition: background .2s, color .2s;
  white-space:nowrap;
}
.nf-reset:hover{ background:#1666b0; color:#fff; }

/* Кнопка «Свернуть/Показать фильтр» — только для мобильной версии */
.nf-filter-toggle{
  position:relative;
  isolation:isolate;
  display:none;
  width:100%;
  align-items:center; justify-content:center; gap:10px;
  background:#F1F8FE; border:1px solid #1666B0; border-radius:8px;
  padding:18px 27px; margin-bottom:16px;
  font-family:'Inter',Arial,sans-serif; font-size:16px; font-weight:400; color:#1666B0;
  transition: background .2s, color .2s;
}
/* Стекло для состояния «Показать фильтр»: refraction 80, depth 20, dispersion 50, frost 4 */
/* Фон и размытие — в псевдоэлементе, чтобы не перекрывать текст/иконку слоем backdrop-filter */
.nf-filter-toggle:not(.open){ background:transparent; }
.nf-filter-toggle:not(.open)::before{
  content:'';
  position:absolute; inset:0; z-index:-1;
  border-radius:inherit;
  background: rgba(241,248,254,.7);
  backdrop-filter: blur(2px) saturate(1.8) contrast(1.2) brightness(1.1);
  -webkit-backdrop-filter: blur(2px) saturate(1.8) contrast(1.2) brightness(1.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.3),
    inset 0 -1px 0 rgba(0,0,0,.08);
}
.nf-filter-toggle__arrow{ width:10px; height:10px; flex-shrink:0; transition: transform .2s; }
.nf-filter-toggle__arrow path{ transition: fill .2s; }
/* По умолчанию (свёрнуто) стрелка смотрит в правый нижний угол — «Показать фильтр» */
/* .open (развёрнуто) — стрелка отражается по вертикали и смотрит в правый верхний угол — «Свернуть фильтр» */
.nf-filter-toggle.open .nf-filter-toggle__arrow{ transform: scaleY(-1); }

/* Hover-подсветка — только на устройствах с настоящим курсором (не залипает при тапе на тач-экранах) */
@media (hover: hover){
  .nf-filter-toggle:hover{ background:#1666B0; color:#fff; }
  .nf-filter-toggle:not(.open):hover::before{ background: rgba(22,102,176,.85); }
  .nf-filter-toggle:hover .nf-filter-toggle__arrow path{ fill:#fff; }
}

/* Category dropdown */
.nf-dropdown{
  position:absolute; top:calc(100% + 8px); left:0; right:0;
  background:#fff; border:1px solid #e5e5e5; border-radius:10px;
  box-shadow:2px 16px 19px rgba(0,0,0,.09);
  padding:8px 0; z-index:30;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s, transform .2s, visibility .2s;
}
.nf-field.open .nf-dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.nf-dropdown button{
  display:block; width:100%; text-align:left; background:none; border:none;
  padding:10px 20px; font-size:15px; color:#333;
}
.nf-dropdown button:hover{ background:#fafafa; color:#cd1f26; }
.nf-dropdown button.selected{ color:#cd1f26; font-weight:600; }
.nf-dropdown button.selected::after{ content:'✓'; float:right; }

/* Calendar popup */
.nf-calendar{
  position:absolute; top:calc(100% + 8px); left:0; z-index:40;
  width:354px;
  background:#fff; border:1px solid #e5e5e5; border-radius:10px;
  box-shadow:2px 16px 19px rgba(0,0,0,.09);
  padding:24px;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s, transform .2s, visibility .2s;
}
.nf-field.open .nf-calendar{ opacity:1; visibility:visible; transform:translateY(0); }
#periodToField .nf-calendar{ left:auto; right:0; }
.nf-calendar__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.nf-calendar__head .cal-prev,
.nf-calendar__head .cal-next{
  background:none; border:none; width:16px;height:16px; padding:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.nf-calendar__head .cal-prev img,
.nf-calendar__head .cal-next img{ width:10px; height:6.18333px; display:block; }
.nf-calendar__head .cal-prev img{ transform:rotate(90deg); }
.nf-calendar__head .cal-next img{ transform:rotate(-90deg); }
.cal-label-wrap{ display:flex; align-items:center; justify-content:center; gap:12px; }
.nf-calendar__head .cal-label{
  font-family:'Inter',Arial,sans-serif;
  font-size:14px; font-weight:500; color:#333;
  background:none; border:none; padding:0; cursor:pointer;
  transition:color .2s;
}
.nf-calendar__head .cal-label:hover{ color:#1666b0; }
.nf-calendar__dow{ display:flex; gap:8px; margin-bottom:8px; }
.nf-calendar__dow span{
  flex:1; text-align:center; font-size:10px; color:#b5bec6;
  text-transform:uppercase; letter-spacing:1.5px;
}
.nf-calendar__grid{ display:flex; flex-direction:column; gap:8px; }
.nf-calendar__row{ display:flex; gap:8px; }
.nf-calendar__row button{
  flex:1; height:30px; background:none; border:none; border-radius:50%;
  font-size:15px; color:#333; transition:background .2s, color .2s;
}
.nf-calendar__row button:hover{ color:#1666b0; }
.nf-calendar__row button.selected{ background:#1666b0; color:#fff; }
.nf-calendar__row button:disabled{ visibility:hidden; }

/* Выбор года (сетка 5×3) */
.nf-calendar__years{ display:flex; flex-direction:column; gap:8px; }
.nf-calendar__yrow{ display:flex; gap:8px; }
.nf-calendar__yrow button{
  flex:1; height:20px; background:none; border:none; border-radius:4px;
  font-family:'Inter',Arial,sans-serif;
  font-size:10px; font-weight:500; color:#999;
  text-transform:uppercase; letter-spacing:1.5px; text-align:center;
  cursor:pointer;
  transition:background .2s, color .2s;
}
.nf-calendar__yrow button:hover{ color:#1666b0; }
.nf-calendar__yrow button.selected{
  background:#0057a8; color:#fff; font-weight:600;
}
.nf-calendar__yrow button.selected:hover{ color:#fff; }

/* Выбор месяца (сетка 4×3) */
.nf-calendar__months{ display:flex; flex-direction:column; gap:8px; }
.nf-calendar__mrow{ display:flex; gap:8px; }
.nf-calendar__mrow button{
  flex:1; height:20px; background:none; border:none; border-radius:4px;
  font-family:'Inter',Arial,sans-serif;
  font-size:10px; font-weight:500; color:#999;
  text-transform:uppercase; letter-spacing:1.5px; text-align:center;
  cursor:pointer;
  transition:background .2s, color .2s;
}
.nf-calendar__mrow button:hover{ color:#1666b0; }
.nf-calendar__mrow button.selected{ background:#0057a8; color:#fff; font-weight:600; }
.nf-calendar__mrow button.selected:hover{ color:#fff; }

/* ---------- Cards grid ---------- */
.news-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  /* строка 24, колонка 23 — по макету «Новости (плитка на 6)» (node 15:20446) */
  gap:24px 23px;
  /* до пагинации 24, а не 40 (во всех макетах одинаково) */
  margin-bottom:24px;
}
.news-card{
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:20px;
  padding:25px;
  display:flex;
  flex-direction:column;
  gap:20px;
  transition: box-shadow .25s, transform .25s;
}
.news-card:hover{ box-shadow:0 16px 32px rgba(0,0,0,.08); transform:translateY(-3px); }
.news-card__link{
  display:contents;
}
.news-card__media{
  border-radius:10px;
  overflow:hidden;
  aspect-ratio: 355/234;
}
.news-card__media img{ width:100%; height:100%; object-fit:cover; }
.news-card__tag{
  display:inline-flex;
  align-self:flex-start;
  background:#fafafa;
  border:1px solid #e5e5e5;
  border-radius:3px;
  padding:1px 9px;
  font-size:12px;
  color:#000;
}
.news-card time{
  font-size:13px;
  color:rgba(51,51,51,.6);
  line-height:20px;
}
.news-card__title{
  font-size:16px;
  line-height:1.5;
  color:#333;
  text-decoration:none;
  transition:color .2s;
}
.news-card:hover .news-card__title{ color:#cd1f26; }

/* ---------- Pagination ---------- */
.news-pagination{
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
}
.news-pagination button{
  background:#fff; border:1px solid #cd1f26; border-radius:8px;
  padding:10px; min-width:40px; height:40px;
  font-size:14px; color:#cd1f26; text-align:center;
  transition: background .2s, color .2s;
}
.news-pagination button:hover{ background:rgba(205,31,38,.08); }
.news-pagination button.active{ background:#cd1f26; color:#fff; }
.news-pagination button.active:hover{ background:#cd1f26; }
.news-pagination button.wide{ padding:10px 16px; width:auto; }
.news-pagination span.dots{ color:#cd1f26; padding:0 4px; }
.news-pagination button:disabled{ opacity:.4; cursor:not-allowed; pointer-events:none; }

.news-empty{
  text-align:center;
  color:#666;
  font-size:16px;
  padding:60px 0;
  margin-bottom:40px;
}

/* Гамбургер-меню (скрыто по умолчанию, показывается ≤1024px) */
.mobile-menu-toggle{
  display:none;
  background:none; border:none; padding:0; cursor:pointer;
  width:22px; height:16px; flex-shrink:0;
  align-items:center; justify-content:center;
}
.mobile-menu-toggle img{ width:22px; height:16px; display:block; }

/* Брейкпоинт ноутбука ~1443px (Figma node 15:20612): суженный сайдбар и заголовок */
@media (max-width: 1600px){
  .news-sidebar{ width:300px; }
  .news-content h1{ font-size:36px; }
}

/* Ниже 1444px зазор сетки карточек 20px (макеты «1443» node 15:21047 и «1024» node 15:21547).
   Значение 24/23 остаётся только на макете 1920. */
@media (max-width: 1443px){
  .news-grid{ gap:20px; }
}

/* Брейкпоинт планшета/ноутбука ~1024px (Figma node 15:21211, 15:21217): гамбургер-меню вместо верхнего меню, боковое меню скрыто, сетка карточек остаётся 3-колоночной */
@media (max-width: 1024px){
  .page-banner .nav-pill .brand__text{ font-size:12px; }
  .mobile-menu-toggle{ display:flex; }
  /* Пилюля содержит только гамбургер+лого (пункты меню вынесены в дропдаун) — gap 20px, не 40px (Figma node 15:21217) */
  .page-banner .nav-pill{ gap:20px; }

  .news-sidebar{ display:none; }
  .news-grid{ grid-template-columns: repeat(3,1fr); }

  /* Строка фильтра (Figma node 15:21475): категория/период/сбросить в одну строку */
  .news-filterbar{ flex-wrap:nowrap; }
  .nf-field__category{ flex:0 0 165px; min-width:0; }

  /* Верхнее меню сворачивается в выпадающую панель по клику на гамбургер */
  .page-banner .nav-pill .main-nav{
    display:none;
    position:absolute; top:calc(100% + 12px); left:24px;
    flex-wrap:wrap;
    width:max-content; max-width:calc(100vw - 48px);
    background:rgba(10,59,94,.7);
    backdrop-filter: blur(6px) saturate(1.6) contrast(1.1) brightness(1.05);
    -webkit-backdrop-filter: blur(6px) saturate(1.6) contrast(1.1) brightness(1.05);
    border:1px solid rgba(255,255,255,.85);
    border-radius:20px;
    padding:16px 24px;
    gap:16px 24px;
    z-index:50;
  }
  .page-banner .nav-pill.mobile-nav-open .main-nav{ display:flex; }

  /* Подменю на этом брейкпоинте — стеклянный эффект: белый 20%, refraction 80, depth 20, dispersion 50, frost 25 */
  .main-nav__dropdown{
    background: rgba(255,255,255,.2);
    backdrop-filter: blur(10px) saturate(1.8) contrast(1.2) brightness(1.1);
    -webkit-backdrop-filter: blur(10px) saturate(1.8) contrast(1.2) brightness(1.1);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.3),
      inset 0 -1px 0 rgba(0,0,0,.15),
      2px 16px 19px rgba(0,0,0,.15);
  }
  .main-nav__dropdown a{ color:#fff; }
  .main-nav__dropdown a:hover{ background: rgba(255,255,255,.3); color:#fff; }
}

/* Мобильная версия (≤599px): выпадающее меню — вертикальный список с пунктами на всю ширину
   (Figma node 1:54508, "390 меню"), а не горизонтальные чипы, как на планшете. Цвета не менялись. */
@media (max-width: 599px), (min-width: 600px) and (max-width: 767px) and (min-height: 600px){
  /* Шапка (пилюля+крошки): отступ 14px от края экрана вместо 40px/16px (Figma node 15:19258) */
  .page-banner .site-header{ top:14px; }
  .site-header__inner{ width: calc(100% - 28px); }
  /* Плашка — единый блок: строка «бургер + лого» никуда не уезжает, а список
     раскрывается и сворачивается ВНУТРИ неё. Панель лежит в потоке (не fixed),
     поэтому ширина плашки постоянна: backdrop-filter на .nav-pill делает её
     containing block для fixed-потомков, и раньше на закрытии панель прыгала
     на 15px вбок и теряла 30px ширины. */
  .page-banner .nav-pill{
    width:100%;
    flex-wrap:wrap;
    align-items:center;
    height:auto;
    min-height:70px;
    /* 9px, а не 10px: с height:auto строка = лого 50 + 2*9 + 2 рамки = ровно 70px,
       как в макете (раньше 70px были жёстко заданы height и лого чуть вылезало) */
    padding:9px 24px;
    row-gap:0;
  }

  /* Бургер превращается в крестик, оставаясь ровно на своём месте */
  .page-banner .nav-pill .mobile-menu-toggle{ position:relative; }
  .page-banner .nav-pill.mobile-nav-open .mobile-menu-toggle img{ opacity:0; }
  .page-banner .nav-pill.mobile-nav-open .mobile-menu-toggle::before,
  .page-banner .nav-pill.mobile-nav-open .mobile-menu-toggle::after{
    content:'';
    position:absolute; left:50%; top:50%;
    width:20px; height:2px;
    background:#fff; border-radius:2px;
  }
  .page-banner .nav-pill.mobile-nav-open .mobile-menu-toggle::before{
    transform: translate(-50%,-50%) rotate(45deg);
  }
  .page-banner .nav-pill.mobile-nav-open .mobile-menu-toggle::after{
    transform: translate(-50%,-50%) rotate(-45deg);
  }

  /* Список: в потоке, на всю ширину плашки, плавно сворачивается по высоте */
  .page-banner .nav-pill .main-nav{
    display:flex;
    position:static;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    flex-basis:100%;
    width:100%;
    max-width:none;
    background:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    border:none;
    box-shadow:none;
    border-radius:0;
    padding:0;
    gap:20px;
    overflow:hidden;
    max-height:0;
    opacity:0;
    margin-top:0;
    clip-path:none;
    pointer-events:none;
    transition: max-height .35s ease-in, opacity .2s ease-in, margin-top .35s ease-in;
  }
  .page-banner .nav-pill.mobile-nav-open .main-nav{
    max-height:520px;
    opacity:1;
    margin-top:14px;
    pointer-events:auto;
    transition: max-height .45s cubic-bezier(0.16,1,0.3,1),
                opacity .3s ease-out .05s,
                margin-top .45s cubic-bezier(0.16,1,0.3,1);
  }
  /* Дублирующая шапка панели не нужна — крестик и лого плашки остаются на месте */
  .page-banner .nav-pill .mobile-menu-header{ display:none; }
  .page-banner .nav-pill .main-nav .main-nav__item{
    width:100%;
    justify-content:space-between;
  }
  /* Стрелки пунктов меню — направлены вправо (Figma node 1:55050) */
  .page-banner .nav-pill .main-nav .main-nav__item .chev{
    transform: rotate(-90deg);
  }

  /* Шапка панели: крестик-закрытие + логотип (Figma node 1:54950) */
  .mobile-menu-header{
    display:flex; align-items:center; gap:20px; width:100%;
  }
  .mobile-menu-close{
    background:none; border:none; padding:0; cursor:pointer;
    width:22px; height:22px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
  }
  .mobile-menu-close svg{ width:16px; height:16px; }
  .mobile-menu-brand{ min-width:0; }
  .mobile-menu-brand .brand__text{ font-size:12px; }

  /* Список пунктов: разделитель сверху, вертикальный столбец (Figma node 1:55047) */
  .main-nav__list{
    display:flex; flex-direction:column; width:100%;
    gap:20px;
    border-top:1px solid #ddd;
    padding-top:24px;
  }
  /* Когда раскрыто подменю — свою линию у списка убираем, остаётся только линия подменю */
  .page-banner .nav-pill .main-nav.has-open-submenu .main-nav__list{
    border-top:none;
    padding-top:0;
  }

  /* Телефон / язык / иконки — были скрыты на мобильном, теперь часть панели (Figma node 1:55063) */
  .mobile-menu-contact{
    display:flex; flex-direction:column; align-items:flex-start; gap:20px; width:100%;
    margin-top:20px;
  }
  .mobile-menu-phone{ font-size:16px; color:#fff; }
  /* Переключатель языка — тот же компонент .lang-switch, что в шапке.
     Его список раскрывается В ПОТОКЕ: панель имеет overflow:hidden, и
     абсолютный выпадающий список был бы срезан. */
  .mobile-menu-lang{ display:flex; flex-direction:column; align-items:flex-start; width:100%; }
  .page-banner .nav-pill .main-nav .lang-switch__list{
    position:static; transform:none; display:none;
    min-width:0; margin-top:23px;
    /* Внутри панели фон прозрачный: своя подложка легла бы поверх такой же
       подложки плашки и дала бы заметно тёмный прямоугольник. Фон здесь
       уже даёт сама плашка (как и у выпадающего подменю). */
    background:none;
    border:none;
    border-radius:0;
    box-shadow:none;
    padding:0;
  }
  .page-banner .nav-pill .main-nav .lang-switch.open .lang-switch__list{
    display:flex; opacity:1; visibility:visible; transform:none;
  }
  .mobile-menu-icons{ display:flex; align-items:center; gap:24px; }
  .mobile-menu-icons .icon-btn{ display:flex; color:#fff; }

  /* Подменю: не отдельное всплывающее окно, а замена списка внутри той же панели
     (drill-down, Figma node 1:55598) */
  .page-banner .nav-pill .main-nav .main-nav__dropdown{
    display:none;
    position:static;
    opacity:1; visibility:visible; transform:none;
    width:100%; max-width:none;
    background:none;
    border-radius:0;
    backdrop-filter:none; -webkit-backdrop-filter:none;
    box-shadow:none;
    flex-direction:column;
    gap:20px;
    border-top:1px solid #fff;
    padding-top:24px;
  }
  .page-banner .nav-pill .main-nav .main-nav__item.open .main-nav__dropdown{
    display:flex;
  }
  .page-banner .nav-pill .main-nav .main-nav__item.open .main-nav__link,
  .page-banner .nav-pill .main-nav .main-nav__item.open > .chev{
    display:none;
  }
  .page-banner .nav-pill .main-nav.has-open-submenu .main-nav__list .main-nav__item:not(.open){
    display:none;
  }
  .page-banner .nav-pill .main-nav.has-open-submenu .mobile-menu-contact{
    display:none;
  }

  /* Строка «‹ Название раздела» — возврат к списку (Figma node 1:55697) */
  .main-nav__dropdown-back{
    display:flex; align-items:center; gap:10px; width:100%;
    background:none; border:none; padding:0; cursor:pointer;
  }
  .page-banner .nav-pill .main-nav .main-nav__dropdown-back .chev-left{
    transform: rotate(90deg);
  }
  .main-nav__dropdown-back span{ font-size:16px; color:#fff; }

  /* Список ссылок подменю: без промежутков между пунктами, разделитель сверху (Figma node 1:55700) */
  .main-nav__dropdown-links{
    display:flex; flex-direction:column; width:100%;
    border-top:1px solid #fff;
  }
  .main-nav__dropdown a{ padding:14px; }
}

@media (max-width: 700px){
  /* Шапка: справа скрываем телефон/язык/иконки — на макете их нет */
  .page-banner .header-side{ display:none; }

  /* Фильтр сворачивается по кнопке */
  .nf-filter-toggle{ display:flex; }
  .news-filterbar{
    flex-direction:column;
    overflow:hidden;
    max-height:1000px;
    transition: max-height .3s ease, opacity .3s ease, padding .3s ease, margin .3s ease;
  }
  .news-filterbar.collapsed{
    max-height:0; opacity:0; padding-top:0; padding-bottom:0; margin-bottom:0; border-width:0;
  }
  .news-grid{ grid-template-columns: 1fr; }
  .nf-field__period{ width:auto; flex:1; }
  .nf-sep{ display:none; }

  /* Кнопка фильтра: до раскрытой панели 14px (node 15:22271),
     а когда фильтр свёрнут — сразу 24px до сетки (node 15:21905/15:21909) */
  .nf-filter-toggle{ margin-bottom:14px; }
  .nf-filter-toggle:not(.open){ margin-bottom:24px; }

  /* Карточки: меньше внутренний отступ */
  .news-card{ padding:14px; }

  /* Пагинация: только номера страниц и точки, без «В начало/Пред./В конец» */
  .news-pagination button.wide{ display:none; }
}

/* ≤599px: значения, которые должны перебить блоки ≤1443 и ≤1024 выше,
   поэтому объявлены здесь, ниже по файлу (Figma «390», node 15:22074). */
@media (max-width: 599px), (min-width: 600px) and (max-width: 767px) and (min-height: 600px){
  /* Заголовок «Новости» — 34px по высоте (node 15:22266), то есть 24px кегль */
  .news-content h1{ font-size:24px; }
  /* Между карточками 14px (node 15:22344), а не 20px как на 1440/1024 */
  .news-grid{ gap:14px; }
}

/* Подвал (мобильный, <600px): герб на всю ширину, затем два столбца (контакты+соцсети / ссылки+разработчик).
   Граница 599px, чтобы не пересекаться с планшетным диапазоном 600–1024px из style.css. */
@media (max-width: 599px), (min-width: 600px) and (max-width: 767px) and (min-height: 600px){
  .site-footer__inner{ flex-direction:column; align-items:stretch; gap:20px; }
  .footer-row2{ display:flex; align-items:flex-start; gap:14px; width:100%; }
  .footer-contact-group{ display:flex; flex-direction:column; gap:20px; flex:1 0 0; min-width:0; }
  .footer-legal{
    flex:1 0 0; min-width:0; align-self:stretch;
    flex-direction:column; align-items:flex-start; justify-content:space-between; gap:0;
  }
  .footer-dev{ flex-direction:row; font-size:9px; }
}
