/* Дополнения к макету v2 для Django-версии сайта */

/* Постраничная навигация ссылками */
.content-pagination { align-items: center; }
a.content-pagination__btn, span.content-pagination__btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; width: auto; padding: 0 12px; text-decoration: none;
}
.content-pagination__gap { display: inline-flex; align-items: center; padding: 0 4px; color: var(--c-muted); }
.document-pagination { justify-content: center; }

/* Слайдер «В слайдере» в шапке главной */
.hero-slide { position: absolute; inset: 0; pointer-events: none; }
.hero-slide.is-active { pointer-events: auto; }
.hero-slide__bg { position: absolute; inset: 0; background-size: cover; background-position: center;
  opacity: 0; transition: opacity .8s ease; }
.hero-slide.is-active .hero-slide__bg { opacity: 1; }
.hero-slide__card { opacity: 0; transition: opacity .6s ease; text-decoration: none; }
.hero-slide.is-active .hero-slide__card { opacity: 1; }
a.hero__visual-card { color: #fff; text-decoration: none; }
.hero-dots { position: absolute; top: 18px; right: 18px; z-index: 3; display: flex; gap: 6px; }
.hero-dot { width: 10px; height: 10px; border-radius: 50%; border: 1px solid rgba(255,255,255,.8);
  background: rgba(255,255,255,.25); cursor: pointer; padding: 0; }
.hero-dot.is-active { background: #fff; }

/* Карточка новости без фото */
.news-card__noimage { display: block; width: 100%; aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, #e8eef7, #f5efe2); }

/* Страница новости: видео, файлы, теги */
.news-video { margin: 26px 0; }
.news-video video, .news-video__embed { display: block; width: 100%; border-radius: 14px; background: #000; }
.news-video__embed { aspect-ratio: 16 / 9; overflow: hidden; }
.news-video__embed iframe { display: block; width: 100%; height: 100%; border: 0; }
.news-attachments { margin: 28px 0; }
.news-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 0; }
.news-tags a { font-size: 14px; padding: 6px 12px; border: 1px solid var(--c-line); border-radius: 999px;
  color: var(--c-primary); text-decoration: none; background: #fff; }
.news-tags a:hover { border-color: var(--c-primary); }
.listing-note { margin: -8px 0 18px; color: var(--c-muted); }

/* Блоки страниц */
.page-blocks > * + * { margin-top: 24px; }
.embed-box iframe { display: block; width: 100%; min-height: 420px; border: 0; border-radius: 12px; }
.reception-gosuslugi__widget { display: flex; justify-content: center; }
.team-group-title { font-family: var(--ff-display); color: var(--c-secondary); margin: 34px 0 16px; }
.team-group-title:first-child { margin-top: 0; }
.team-card__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.team-card__contacts { font-size: 14px; color: var(--c-muted); }
.page-body p { margin: 0 0 14px; }

/* Форма «Канал инвестора» */
.field-error { display: block; margin-top: 6px; color: #b3261e; font-size: 13px; }
.field--error input, .field--error textarea { border-color: #b3261e !important; }
.form-errors { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #f1c4c0; background: #fdf1f0;
  color: #8c1d18; border-radius: 10px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; }
.captcha-code { font-size: 22px; font-weight: 800; letter-spacing: .3em; user-select: none; }

/* Баннеры-картинки со ссылкой */
.promo-banner-link { display: block; }
.promo-banner-link img { display: block; width: 100%; }

/* Мобильное меню: в макете верх меню уходил под шапку и первые пункты
   («Главная», «Официально») были не видны. Отступ = фактическая высота шапки. */
body:not(.access-mode) .mobile-menu {
  padding-top: calc(var(--header-sticky-height, var(--h-nav)) + var(--access-toolbar-offset, 0px) + 16px);
}

/* Мобильные устройства: без синей подсветки при нажатии на ссылки и кнопки.
   Рамка фокуса остаётся только при навигации с клавиатуры (доступность). */
html { -webkit-tap-highlight-color: transparent; }
a, button, input, select, textarea, label, summary, [role="button"] { -webkit-tap-highlight-color: transparent; }
:focus:not(:focus-visible) { outline: none; }
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { box-shadow: none; }
.mobile-menu__link, .mobile-menu__sublink, .burger { -webkit-user-select: none; user-select: none; touch-action: manipulation; }

/* Шапка: одна полоска вместо двух — у выпадающего списка убрана синяя граница сверху,
   остаётся подчёркивание пункта меню */
body:not(.access-mode) .nav__submenu { border-top: 1px solid var(--c-line); }

/* Выпадающее меню, которому не хватает места справа, прижимается к правому краю пункта */
.nav__submenu.nav__submenu--right { left: auto; right: 0; }

/* Страховка: скрытые элементы не создают горизонтальную прокрутку
   (clip, в отличие от hidden, не ломает «липкую» шапку) */
body { overflow-x: clip; }

/* Промежуточные ширины (≈ половина экрана): рядом с сайдбаром основная колонка узкая —
   карточные сетки перестраиваются по ширине вместо жёстких 3 колонок */
@media (min-width: 1025px) and (max-width: 1279px) {
  body:not(.access-mode) .contact-grid,
  body:not(.access-mode) .doc-grid,
  body:not(.access-mode) .news-list,
  body:not(.access-mode) .official-grid,
  body:not(.access-mode) .press-hub,
  body:not(.access-mode) .team-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  }
}

/* Одна колонка (планшет, узкое окно): сайдбар под контентом раскладывается по две колонки,
   баннер MAX и виджеты не растягиваются на всю ширину */
@media (min-width: 641px) and (max-width: 1024px) {
  body:not(.access-mode) .layout__aside {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start;
  }
  body:not(.access-mode) .layout__aside > .sidebar-pos-widget,
  body:not(.access-mode) .layout__aside > .aside-title,
  body:not(.access-mode) .layout__aside > .speech-cards,
  body:not(.access-mode) .layout__aside > .banners,
  body:not(.access-mode) .layout__aside > .promo-banners { grid-column: 1 / -1; }
  body:not(.access-mode) .layout__aside > * { margin-top: 0; margin-bottom: 0; }
  body:not(.access-mode) .layout__aside > .speech-cards,
  body:not(.access-mode) .layout__aside > .promo-banners {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px;
  }
  body:not(.access-mode) .sidebar-max-banner img { width: 100%; height: auto; }
  /* Кнопки «Сервисы»: в одну колонку сайдбара они квадратные — здесь невысокие плитки */
  body:not(.access-mode) .layout__aside > .banners { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
  body:not(.access-mode) .layout__aside > .banners .banner { aspect-ratio: auto; min-height: 118px; }
  body:not(.access-mode) .layout__aside > .banners .banner--big { grid-column: 1 / -1; }
}

/* Длинные слова без пробелов (ссылки, склеенные аббревиатуры) переносятся,
   а не вылезают из заголовков и карточек. Обычные слова не затрагиваются. */
body { overflow-wrap: anywhere; }

/* Главная новость на телефоне: в макете пропорции 16:9 + мин. высота 260 px давали
   мин. ширину ≈ 462 px — картинка вылезала за экран уже 500 px. Высоту считаем от ширины. */
@media (max-width: 560px) {
  body:not(.access-mode) .news-card--featured .news-card__media { min-height: 0; }
}
.news-card > * { min-width: 0; }
.news-card__media img, .detail-article__image { max-width: 100%; }

/* Карта Яндекса и другие виджеты в блоке «Карта или HTML-код»: не шире колонки */
.embed-box { max-width: 100%; overflow: hidden; border-radius: 12px; }
.embed-box > ymaps, .embed-box > [class^="ymaps"] { max-width: 100% !important; }

/* Просмотр PDF: кнопка «Открыть в новой вкладке» и подсказка */
.pdf-modal__newtab { font-size: 14px; font-weight: 600; color: inherit; text-decoration: none;
  padding: 8px 14px; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; white-space: nowrap; }
.pdf-modal__newtab:hover { border-color: currentColor; }
.pdf-modal__hint { margin: 0; padding: 8px 16px; font-size: 13px; text-align: center; color: var(--c-muted); background: #fff; }

/* Баннеры-карточки: в макете фон был приглушён до 55% прозрачности, а текст серым —
   получалось серое на сером. Возвращаем насыщенный фон и белый текст. */
body:not(.access-mode) .promo-banner__bg { opacity: 1; }
body:not(.access-mode) .promo-banner__title { color: #fff; }
body:not(.access-mode) .promo-banner__lead { color: rgba(255, 255, 255, .86); }
body:not(.access-mode) .promo-banner__overline { color: rgba(255, 255, 255, .78); }
body:not(.access-mode) .promo-banner__overline::before { background: rgba(255, 255, 255, .6); }
body:not(.access-mode) .promo-banner__cta { background: #fff; color: var(--c-primary); }

/* Карточка новости в шапке главной: звезда убрана, левый отступ под неё не нужен */
body:not(.access-mode) .hero__visual-card { padding-left: 22px; }
body:not(.access-mode) .hero__visual-decor { display: none; }

/* Поиск: подсветка найденных слов и строка с типом материала */
.search-result mark { background: rgba(212, 175, 55, .35); color: inherit; padding: 0 2px; border-radius: 3px; }
.search-result__meta { display: block; font-size: 13px; color: var(--c-muted); margin: 2px 0 6px; }

/* Баннер-виджет (код Госуслуг и подобные) */
.promo-widget { width: 100%; overflow: hidden; border-radius: 12px; }
.promo-widget iframe { display: block; width: 100%; border: 0; }
.promo-banners--aside { display: grid; gap: 14px; margin-bottom: 22px; }
/* Внутри баннера-виджета не вмешиваемся в его оформление */
body:not(.access-mode) .promo-widget .pos-banner-fluid__text_small,
body:not(.access-mode) .promo-widget .pos-banner-fluid__text,
body:not(.access-mode) .promo-widget .bf-2__text { color: inherit; }
