/* mobile <= 960px */

.utility-mid { display: none; }
.utility-tools { display: none; }
.utility-mobile { display: flex; align-items: center; flex-shrink: 0; }

.mega-top { display: none !important; }

.mobile-nav-panel {
  inset: 0;
}
.mobile-nav-bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  width: 100%;
  padding-inline: 0;
}

.header-utility-row {
  padding: .45rem 0 .35rem;
  gap: .4rem;
}
.utility-start { gap: .35rem; flex: 1 1 auto; min-width: 0; }

/* Header brand: logo flush to title like DSBA mobile */
.utility-brand {
  gap: .3rem;
  max-width: min(13.5rem, 58vw);
}
.utility-brand-text {
  font-size: clamp(0.5938rem, calc(2.55vw * var(--fz, 1)), 0.7188rem);
  line-height: 1.18;
  gap: .06rem;
  letter-spacing: .02em;
}
.utility-brand-logo {
  width: 2.55rem;
  height: 2.55rem;
}

.nav-shell {
  position: relative;
  z-index: 85;
  padding: 0 0 .5rem;
  margin-top: 0;
  background: #fff;
}
body.page-home .site-header--hero .nav-shell {
  margin-top: 0;
  background: transparent;
}
.site-header:not(.site-header--hero) .nav-shell {
  padding: 0;
  background: #fff;
}
.site-nav--bar {
  border-radius: var(--nav-bar-radius, 10px);
  background: var(--blue2);
  box-shadow: none;
  filter: none;
  overflow: hidden;
}
.site-nav--bar .container.nav-row {
  width: 100%;
  max-width: none;
  padding-inline: 0;
  margin-inline: 0;
}

/* DSBA mobile bar: burger | Onlayn qabul (center) | search */
.nav-row {
  position: relative;
  min-height: 3.35rem;
  height: 3.35rem;
  background: var(--blue2);
}
body.page-home .site-header--hero .nav-row {
  height: 3.35rem;
  min-height: 3.35rem;
  background: var(--blue2);
}
.nav-menu { display: none; }
.nav-burger {
  flex: 0 0 3.35rem;
  width: 3.35rem;
  min-height: 3.35rem;
  background: transparent;
  z-index: 2;
}
.site-header--hero .nav-burger,
.site-nav--bar .nav-burger.sitemap-toggle {
  background: transparent;
}
.nav-burger:hover,
.nav-burger.is-open {
  background: rgba(255, 255, 255, .1);
}
.nav-actions {
  flex: 0 0 auto;
  margin-left: auto;
  background: transparent;
  z-index: 2;
  overflow: visible;
}
.site-header--hero .nav-actions {
  overflow: visible;
  background: transparent;
}
.nav-action-btn {
  width: 3.35rem;
  height: 100%;
  min-height: 3.35rem;
}
.nav-cta {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: 0 .75rem;
  height: 100%;
  min-height: 100%;
  background: transparent;
  font-size: clamp(0.875rem, calc(3.6vw * var(--fz, 1)), 1rem);
  font-weight: 600;
}
.nav-cta span { display: inline; }
.nav-cta .ui-ico {
  width: 18px;
  height: 18px;
}

.home-hero-inner {
  padding: clamp(4.75rem, 16vw, 6.5rem) var(--gutter) 0;
}
@media (max-width: 767px) {
  .home-hero-bg { background-image: var(--hero-bg-mobile), linear-gradient(135deg, #0a2f5c 0%, #004e9e 45%, #1b70c7 100%); }
}
.home-hero-brand {
  gap: 0;
  max-width: min(20rem, 92vw);
}
.home-hero-logo {
  /* logo.png has ~24% transparent bottom — pull title flush to emblem */
  height: clamp(148px, 42vw, 176px);
  max-width: min(176px, 52vw);
  margin: 0 0 calc(clamp(148px, 42vw, 176px) * -0.17);
}
.home-hero-title {
  margin: 0;
  font-size: clamp(1.0625rem, calc(4.6vw * var(--fz, 1)), 1.5rem);
  max-width: min(17.5rem, 90vw);
  line-height: 1.14;
  letter-spacing: .015em;
  text-wrap: balance;
}
.home-hero-cards {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  gap: .75rem;
  width: 100%;
  padding-inline: var(--gutter);
  box-sizing: border-box;
  overscroll-behavior-x: contain;
  justify-content: flex-start;
  padding-bottom: max(clamp(1.25rem, 4vw, 1.75rem), env(safe-area-inset-bottom));
}
.home-hero-cards::-webkit-scrollbar { display: none; }
.page-home #main { padding-top: 0; }
.home-hero-card {
  flex: 0 0 78%;
  max-width: 22rem;
  aspect-ratio: auto;
  min-height: 9.5rem;
  height: auto;
  gap: .65rem;
  padding: 1rem .9rem;
  scroll-snap-align: center;
}
.home-hero-card-icon svg,
.home-hero-card-icon .ui-ico { width: 36px; height: 36px; }
/* ряд листается только по горизонтали: без вертикальной анимации появления и hover-сдвига на тач-экране */
.home-hero-card.reveal { transform: none; }
.home-hero-card:hover { transform: none; }
.home-hero-card-title {
  white-space: normal;
  font-size: clamp(0.9375rem, calc(3.8vw * var(--fz, 1)), 1.125rem);
}

@media (min-width: 641px) and (max-width: 960px) {
  .home-hero-cards {
    display: flex;
    flex-wrap: wrap;
    overflow-x: visible;
    scroll-snap-type: none;
    justify-content: center;
    width: min(100% - (var(--gutter) * 2), 1260px);
    padding-inline: 0;
  }
  .home-hero-card {
    flex: 1 1 calc(50% - .75rem);
    max-width: 300px;
    min-width: min(100%, 16rem);
    scroll-snap-align: unset;
  }
  .home-hero-logo {
    height: clamp(160px, 28vw, 188px);
    max-width: 188px;
    margin-bottom: calc(clamp(160px, 28vw, 188px) * -0.17);
  }
  .home-hero-title {
    font-size: clamp(1.375rem, calc(3.2vw * var(--fz, 1)), 2rem);
  }
}

.mobile-nav-top .brand-title {
  font-size: .62rem;
  max-width: calc(100vw - 7rem);
}

/* Open-menu bar: DSBA caps — shell blue3 (no bottom fringe), middle blue2 via ::before */
.mobile-nav-bar {
  margin: 0 var(--gutter) .75rem;
  border-radius: 12px;
  overflow: hidden;
  background: var(--blue3);
  box-shadow: 0 8px 22px rgba(6, 20, 34, .16);
}
.mobile-nav-bar-inner {
  min-height: 3.35rem;
  height: 3.35rem;
  background: var(--blue3);
  border-radius: 12px;
}
.mobile-nav-bar .sitemap-toggle--in-panel,
.mobile-nav-bar .nav-burger.sitemap-toggle--in-panel {
  background: transparent !important;
  width: 3.25rem;
  flex-basis: 3.25rem;
  min-height: 100%;
  height: 100%;
}
.mobile-nav-bar-actions {
  flex: 0 0 auto !important;
  justify-content: flex-end;
  margin-left: 0;
  background: transparent !important;
  gap: 0;
  padding-right: 0;
  height: 100%;
}
.mobile-nav-cta {
  flex: 0 0 auto !important;
  border-radius: 0 !important;
  background: transparent !important;
  min-height: 3.35rem;
  padding: 0 .7rem;
  margin-left: 0;
  font-size: .92rem;
  font-weight: 600;
}
.mobile-nav-cta span { display: inline; }
.mobile-nav-bar .nav-action-btn--panel {
  width: 3rem;
  min-height: 3.35rem;
}

/* Бургер: плавный скролл списка + аккордеон (JS анимирует height) */
.mobile-nav-body {
  position: static;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
/* DSBA: .inner-container::after - герб 300px, половина за правым краем, opacity .05 */
.mobile-nav-body .mega-menu-inner { position: static; }
.mobile-nav-body .mega-menu-watermark {
  display: block;
  position: absolute;
  top: 58%;
  right: 0;
  width: 420px;
  height: 420px;
  transform: translate(32%, -50%);
  opacity: .09;
  filter: grayscale(1) brightness(.55);
  pointer-events: none;
  z-index: 0;
}
.mobile-nav-body .mega-menu-watermark img { width: 100%; height: 100%; object-fit: contain; }
.mobile-nav-list,
.mobile-nav-contacts { position: relative; z-index: 1; }

/* DSBA .navbar-accordion-wrapper: li 10px, subtitle1 17px/1.3/700, стрелка сразу за текстом */
.mobile-nav-item { border-bottom-color: #DEE1EB; }
.mobile-nav-link,
.mobile-nav-parent {
  justify-content: flex-start;
  gap: .3rem;
  padding: .625rem 0;
  font-size: 1.0625rem;
  line-height: 1.3;
  color: var(--black1);
  -webkit-tap-highlight-color: transparent;
}
.mobile-nav-parent .ui-ico--caret { width: 18px; height: 18px; color: var(--black1); opacity: 1; }
.mobile-nav-parent.is-open .ui-ico--caret { transform: rotate(180deg); }
.mobile-nav-sub {
  overflow: hidden;
  padding: 0 0 0 .75rem;
  transition: height .32s cubic-bezier(.22, .61, .36, 1);
}
.mobile-nav-sub li { border-top: 1px solid #DEE1EB; }
.mobile-nav-sub a {
  padding: .625rem 0;
  font-size: 0.9375rem;
  line-height: 1.3;
  font-weight: 400;
  color: var(--black2);
}

/* Контакты бургера - DSBA mobile: по центру, иконка в строке с подписью, значение ниже, без фона */
.mobile-nav-contacts {
  padding: .75rem var(--gutter) calc(.85rem + env(safe-area-inset-bottom, 0px));
  gap: .55rem;
  justify-items: center;
  text-align: center;
  background: transparent;
  border-top: 0;
}
.mobile-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  column-gap: .35rem;
  row-gap: .1rem;
  flex: 0 1 auto;
}
.mobile-nav-contacts-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: .6rem 1rem;
  width: 100%;
}
.mobile-nav-contacts-inner .mobile-contact-text strong { font-size: .76rem; }
.mobile-nav-contacts-inner .mobile-contact-text a { font-size: .88rem; }
.mobile-contact--address { display: none; }
.mobile-nav-bar-inner::before { background: transparent; }
.mobile-contact-text { display: contents; }
.mobile-contact-ico {
  width: 20px;
  height: 20px;
  color: var(--blue3);
}
.mobile-contact-text strong {
  font-size: .82rem;
  font-weight: 500;
  color: var(--black2);
}
.mobile-contact-text a,
.mobile-contact-text span {
  flex: 0 0 100%;
  font-size: .9rem;
  line-height: 1.3;
  color: var(--black1);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.activity-grid,
.tri-grid { grid-template-columns: 1fr; }
.partner-link-card { flex-basis: calc((100% - 16px) / 2); }
@media (max-width: 599px) {
  .partner-link-card { flex-basis: 100%; }
}
.social-phones {
  max-width: 100%;
  height: 13.5rem;
}
.social-phone img {
  height: 12.5rem;
}
.social-phone--left { left: 0; }
.social-phone--mid { left: 26%; }
.social-phone--right { left: 50%; }
.social-cta-grid {
  grid-template-columns: 1fr;
}
.social-cta-title {
  max-width: none;
}
.social-cta-quote-text {
  max-width: none;
}

@media (max-width: 640px) {
  /* Партнёры: компактная горизонтальная карточка с рамкой (герб слева, текст + домен справа) */
  .partners-links-carousel { margin: 0; padding-bottom: .5rem; }
  .partner-link-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: .85rem;
    row-gap: .45rem;
    align-items: center;
    padding: .8rem .9rem;
    border: 1px solid #DEE1EB;
    border-radius: 10px;
    box-shadow: none;
  }
  .partner-link-card:hover { transform: none; border-color: var(--blue4); }
  .partner-link-gerb { grid-row: 1 / span 2; width: 52px; height: 52px; }
  .partner-link-title {
    margin: 0;
    min-height: 0;
    font-size: .9rem;
    line-height: 1.3;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .partner-link-pill { justify-self: start; margin-top: 0; font-size: .72rem; padding: .25rem .6rem .25rem .45rem; }

  /* Соцсети: телефоны по центру, кнопки в одну строку */
  .social-cta-left { align-items: center; text-align: center; }
  .social-phones { width: 19rem; max-width: 100%; height: 12.5rem; margin-inline: auto; }
  .social-phone img { height: 11.5rem; }
  /* Группа по центру: средний телефон (ширина ~5.75rem) на оси, крайние симметрично */
  .social-phone--mid { left: calc(50% - 2.625rem); }
  .social-phone--left { left: calc(50% - 2.625rem - 4.6rem); }
  .social-phone--right { left: calc(50% - 2.625rem + 4.6rem); }
  .social-cta-title { font-size: 1.05rem; line-height: 1.4; }
  .social-cta-links {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    width: 100%;
    gap: .5rem;
  }
  .social-cta-item {
    flex-direction: column;
    justify-content: center;
    gap: .3rem;
    padding: .55rem .25rem;
    font-size: .72rem;
    min-width: 0;
  }
  .social-cta-item span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .social-cta-item img { width: 18px; height: 18px; }

  /* Цитата */
  .social-cta-quote-inner {
    gap: .75rem;
    padding: 1.1rem 1rem 1.15rem;
    border: 1px solid #DEE1EB;
    border-radius: 12px;
  }
  .social-cta-quote-mark { width: 2.75rem; }
  .social-cta-quote-text { font-size: 1.08rem; line-height: 1.5; }
  .social-cta-quote-author { font-size: 1rem; margin-top: .25rem; }
  .social-cta-quote-job { font-size: .9rem; }
}
.footer-top {
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 0 1.25rem;
  flex-wrap: wrap;
}
.footer-top-brand {
  flex: 1 1 auto;
  max-width: 100%;
  width: 100%;
}
.footer-brand-link {
  justify-content: center;
  text-align: left;
}
.footer-brand-text {
  text-align: left;
}
.footer-top-item {
  flex: 1 1 auto;
  max-width: none;
  width: 100%;
  min-width: 0;
}
.footer-top-qr { display: none; }
.footer-middle {
  justify-content: center;
  text-align: center;
  padding: 1rem 0;
}
.footer-col { display: none; width: 100%; }
.footer-col--alt { display: flex; width: 100%; align-items: center; }
.footer-alt-title,
.footer-alt-hint { display: none; }
.footer-socials { justify-content: center; }
.footer-bottom {
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.footer-rights { white-space: normal; }
.footer-stats { font-size: .8125rem; padding-bottom: 5rem; }
.footer-stats-updated { flex-wrap: wrap; justify-content: center; }
.footer-stats-counts span + span::before { margin: 0 .4rem; }
.footer-col-center,
.footer-col-right { text-align: left; justify-content: flex-start; }
.tri-head { flex-wrap: wrap; }
.panel-card, .panel-row { min-height: 3.8rem; padding: .9rem 1rem; }

.news-board { grid-template-columns: minmax(0, 1fr); }
.news-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.news-tile {
  min-width: 0;
  min-height: 8.5rem;
  aspect-ratio: 16 / 10;
  box-shadow: none;
}
@media (max-width: 640px) {
  .news-grid { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
  .news-tile { aspect-ratio: 16 / 9; min-height: 0; }
  .news-tile-title { font-size: 1.05rem; }
}
.news-side {
  margin-top: .35rem;
}
.news-side-item { gap: 1.25rem; min-height: 4.25rem; }
.news-side-date strong { font-size: 1.5rem; }
.news-side-date span { font-size: .9rem; }
.news-tile-title { font-size: 1rem; -webkit-line-clamp: 2; }
.news-tile-badge { font-size: .82rem; padding: .4rem .85rem; box-shadow: none; }
.news-tile-content { padding: 1.05rem .95rem 1rem; gap: .5rem; }
.news-meta-item { font-size: .92rem; }
.news-board-head .section-title { font-size: 1.45rem; }

.president-quote {
  min-height: 0;
  margin: 1.25rem 0 1.5rem;
}
.president-quote-bg--left {
  width: 100%;
  top: 38%;
}
.president-quote-bg--right {
  position: relative;
  width: 100%;
  height: 16rem;
}
.president-quote-bg--right::after {
  background: linear-gradient(0deg, #061422 0%, rgba(6, 20, 34, .45) 18%, rgba(6, 20, 34, 0) 55%);
}
.president-quote-inner {
  padding: 1.75rem 1.1rem 2rem;
}
.president-quote-text {
  max-width: 100%;
  font-size: 1.08rem;
}

.press-head { flex-direction: column; align-items: flex-start; gap: .35rem; }
.press-title--editions,
.press-title--services { width: 100%; }
.press-title--desktop { display: none; }
.press-title--mobile { display: block; margin: .35rem 0 .15rem; }
.press-body { grid-template-columns: 1fr; }
.press-tile {
  width: 100%;
  min-height: 0;
  height: auto;
}
.service-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}
.service-card { min-height: 9.25rem; padding: 1.1rem .7rem .9rem; gap: .75rem; }
.service-card:hover { transform: translateX(4px); }
.service-card-ico,
.service-card-ico--lottie { width: 4.5rem; height: 4.5rem; }
.service-card-title { font-size: .88rem; }

.section { padding: 1.35rem 0 1.6rem; }
.section-title { font-size: 1.25rem; }
.social-chip { width: 30px; height: 30px; }
.social-inline { gap: .75rem; }
.lang-dd-btn { min-width: 2.6rem; padding: 0 .4rem; font-size: 0.875rem; font-weight: 500; }
.article-layout { grid-template-columns: 1fr; }
.article-side { display: none; }
.article-main { padding: 1rem; }
.page-banner-inner { padding: 24px 0 0; gap: .5rem; }
.page-banner-crumbs { font-size: .92rem; }
.news-page { padding: 16px 0 40px; }
.news-page-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.news-toolbar { flex-direction: column; gap: .75rem; }
.news-toolbar-dates { flex: 0 0 auto; }
.news-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.news-card { height: 360px; }
@media (max-width: 768px) {
  .news-feed { grid-template-columns: minmax(0, 1fr); }
}
.sidebar-stack { gap: .85rem; }
.back-to-top { right: .75rem; bottom: .75rem; }

/* Внутренние разделы */
.person { grid-template-columns: minmax(0, 1fr); }
.person-photo { height: auto; min-height: 0; max-height: 500px; }
.person-photo img { object-fit: contain; transform: none; }
.person-text { padding: 16px; }
.contact-grid { grid-template-columns: minmax(0, 1fr); }
.appeal-form { padding: 16px; }
.appeal-form-grid { grid-template-columns: minmax(0, 1fr); }
.contact-map iframe { height: 300px; }
.article-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.faq-item { padding: 14px; }
.faq-question { gap: 12px; }
.faq-icon { flex-basis: 40px; width: 40px; height: 40px; }
.faq-toggle { flex-basis: 32px; width: 32px; height: 32px; }
.faq-answer { margin-left: 0; }
.file-row-icon { flex-basis: 40px; width: 40px; height: 40px; }
.file-row-icon .ui-ico { width: 30px; height: 30px; }
.oc-lines { display: none; }
.oc-top { margin-bottom: 16px; }
.oc-node--head { min-width: 0; flex: 1; padding: 14px 16px; font-size: 1rem; }
.oc-node--aside { min-width: 0; }
.oc-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oc-subs { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 960px) {
    .sp-card { flex-direction: column; text-align: center; gap: 16px; padding: 20px 16px; }
    .sp-logo { width: 104px; height: 104px; }
    .sp-links { justify-content: center; }
}

@media (max-width: 640px) {
    .oc-cols, .oc-subs { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
  .rmap { padding: 12px; margin-bottom: 24px; }
  .rmap-label { font-size: 1rem; }
  .rmap-label--sm { font-size: 0.75rem; }
  .rmap-country { display: none; }
  .region-info-row { grid-template-columns: 1fr; gap: 6px; }
}

/* окно «мобильная версия» на телефоне не нужно */
.a11y-mobile { display: none; }
.mobile-nav-a11y { display: flex; gap: .5rem; padding: .9rem var(--gutter) 0; }
.mobile-a11y-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; flex: 1 1 auto;
  min-height: 44px; padding: .55rem .9rem;
  border: 1px solid var(--line); border-radius: 10px; background: #fff;
  color: var(--primary); font: inherit; font-size: .95rem; font-weight: 500; cursor: pointer;
}
.mobile-a11y-btn--icon { flex: 0 0 44px; padding: 0; }
.mobile-a11y-btn.is-active { border-color: var(--primary); background: var(--primary); color: #fff; }

/* цитата блока соцсетей - только на ПК */
.social-cta-quote { display: none; }
