/* Общие стили шаблона: токены, база, кнопки, шапка, подвал, каркас, карточки, вкладки, документы */

/* Шрифты и токены */
@font-face {
  font-family: 'Myriad Pro';
  src: url('../fonts/MyriadPro-Light.woff2') format('woff2'),
       url('../fonts/MyriadPro-Light.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Myriad Pro';
  src: url('../fonts/MyriadPro-Regular.woff2') format('woff2'),
       url('../fonts/MyriadPro-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Myriad Pro';
  src: url('../fonts/MyriadPro-Semibold.woff2') format('woff2'),
       url('../fonts/MyriadPro-Semibold.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Myriad Pro';
  src: url('../fonts/MyriadPro-Bold.woff2') format('woff2'),
       url('../fonts/MyriadPro-Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --white:  #fdfffe;   /* Мятно-кремовый */
  --orange: #e77c1c;   /* Насыщенный оранжевый */
  --error:  #e5272e;
  --card:   rgba(26, 35, 63, .98);
  --card-gradient: linear-gradient(85.83deg, rgba(5, 10, 27, .8) .44%, rgba(14, 38, 62, .8) 99.79%);
  --radius: .625rem;   /* 10 px */
  --font: 'Myriad Pro', 'MyriadPro-Regular', 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
}

/* База */
*,
*::before,
*::after { box-sizing: border-box; }
html {
  font-size: clamp(10.66px, calc(100vw / 120), 32px);
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background-color: #050b1c;
  background-image:
    linear-gradient(rgba(4, 9, 24, .69), rgba(4, 9, 24, .69)),
    url('../img/bg-1.jpg'),
    url('../img/bg-2.jpg'),
    url('../img/bg-3.jpg');
  background-repeat: no-repeat;
  background-position: 0 0, 0 0, 0 124.105rem, 0 248.21rem;
  background-size: 100% 100%, 100% 124.105rem, 100% 124.105rem, 100% 124.105rem;
  color: var(--white);
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.2;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
@keyframes space-drift {
  from { transform: translate3d(0, 0, 0) scale(1.06); }
  to   { transform: translate3d(-1.8%, -1.2%, 0) scale(1.11); }
}
@keyframes space-twinkle {
  0%, 100% { opacity: .38; }
  50%      { opacity: .58; }
}
h1,
h2,
h3,
p,
ul,
dl,
dd,
figure { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; transition: color .2s ease; }
a:hover,
a:focus-visible { color: var(--orange); }
img { display: block; max-width: 100%; height: auto; }
button { font-family: inherit; color: inherit; }
input { font-family: inherit; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

/* Утилиты и типографика макета */
.h1 {
  font-size: 5rem;        /* H1 80/80 Regular */
  line-height: 5rem;
  font-weight: 400;
  color: var(--white);
}
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; top: -6rem; left: 1rem; z-index: 100;
  padding: .625rem 1.125rem;
  background: var(--orange); color: var(--white);
  border-radius: var(--radius);
  transition: top .2s ease;
}
.skip-link:focus { top: .75rem; color: var(--white); }
/* Кнопка макета: 300×60, радиус 10, h2 20/30 Semibold, uppercase */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 18.75rem;
  height: 3.75rem;
  padding: 0 1.25rem;
  border: 0;
  border-radius: var(--radius);
  background: var(--orange);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.875rem;
  font-weight: 600;
  text-transform: uppercase;
  text-align: center;
  cursor: pointer;
  transition: background-color .2s ease;
}
.btn[hidden] { display: none; }
.btn:hover,
.btn:focus-visible { background: #f18f34; color: #fff; }
/* принудительный перенос, который работает только в мобильной версии */
.br-mobile { display: none; }
.btn--wide { width: 23.125rem; }
/* Соцсети — общий спрайт из макета, каждая половина кликабельна */
.socials { display: flex; flex: none; }
.socials__link { display: block; background-repeat: no-repeat; }
.socials--header { width: 6.25rem; height: 1.25rem; }
.socials--header .socials__link { width: 3.125rem; height: 1.25rem; background-image: url('../img/socials-header.svg'); background-size: 6.25rem 1.25rem; }
.socials--header .socials__link--2 { background-position: -3.125rem 0; }
.socials--footer { width: 6.75rem; height: 1.875rem; }
.socials--footer .socials__link { width: 3.375rem; height: 1.875rem; background-image: url('../img/socials-footer.svg'); background-size: 6.75rem 1.875rem; }
.socials--footer .socials__link--2 { background-position: -3.375rem 0; }
.socials__link { transition: background-image .15s ease, opacity .2s ease; }
.socials--header .socials__link:hover,
.socials--header .socials__link:focus-visible { background-image: url('../img/socials-header-orange.svg'); }
.socials--mobile .socials__link {
  width: 3.125rem;
  height: 1.25rem;
  background-image: url('../img/socials-header.svg');
  background-size: 6.25rem 1.25rem;
}
.socials--mobile .socials__link--2 { background-position: -3.125rem 0; }
.socials--mobile .socials__link:hover { background-image: url('../img/socials-header-orange.svg'); }
.socials--footer .socials__link:hover { opacity: .75; }

/* Шапка (внутри первого экрана, высота 100 px) */
.header {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
  height: 6.25rem;
  padding: 1.25rem;
}
.header__logos { display: flex; align-items: center; gap: 2.5rem; flex: none; }
.header__logo-rkc { height: 4.361rem; width: auto; }
.header__logo-rkm { position: relative; display: block; width: 3.68rem; height: 2.925rem; flex: none; }
.header__logo-rkm-mark { position: absolute; top: 0; left: 0; width: 3.68rem; height: 2.349rem; }
.header__logo-rkm-text { position: absolute; top: 2.588rem; left: 0; width: 3.679rem; height: .337rem; }
.header__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .75rem; }
.header__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 3rem; }
.header__row--bottom { align-items: flex-end; }
.header__title {
  font-size: 1.625rem;      /* h4 26/36 */
  line-height: 2.25rem;
  text-transform: uppercase;
  white-space: nowrap;
}
.header__divider { height: 1px; background: rgba(253, 255, 254, .8); }
.header__aside { display: flex; align-items: center; gap: 2.5rem; flex: none; }
.search {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  width: 10.927rem;         /* ширина строки из макета (174.8 px) */
  height: 2.031rem;
  border-bottom: 1px solid var(--white);
  /* анимируется ширина всей строки, поэтому линия и поле едут синхронно */
  transition: width .35s cubic-bezier(.4, 0, .2, 1), border-color .2s ease;
}
/* наведение и фокус в поле подсвечивают подчёркивание */
.search:hover,
.search:focus-within { border-bottom-color: var(--orange); }
/* Раскрытая строка — втрое шире поля из макета */
.search.is-open { width: 28.638rem; }
.search__input {
  flex: 1;
  min-width: 0;
  padding: 0 .25rem;
  background: transparent;
  border: 0;
  outline: none;
  color: var(--white);
  font-size: 1rem;
}
.search__input::placeholder { color: var(--white); opacity: .7; }
.search__toggle {
  flex: none;
  box-sizing: content-box;          /* иконка 23×22 из макета + запас для клика */
  width: 1.438rem;
  height: 1.375rem;
  padding: .5rem;
  margin: -.5rem;
  background: url('../img/icon-search.svg') no-repeat center / contain content-box;
  border: 0;
  cursor: pointer;
  transition: opacity .2s ease;
}
.search__toggle:hover,
.search__toggle:focus-visible { background-image: url('../img/icon-search-orange.svg'); opacity: 1; }
.search--menu {
  width: 31px;
  align-self: flex-end;
  border-bottom-color: transparent;
}
.search--menu:hover,
.search--menu:focus-within { border-bottom-color: transparent; }
.search--menu.is-open { width: 100%; border-bottom-color: var(--white); }
.search--menu.is-open:hover,
.search--menu.is-open:focus-within { border-bottom-color: var(--orange); }
/* Главное меню */
.mainnav { min-width: 0; }
.mainnav__list { display: flex; align-items: center; gap: 3.125rem; white-space: nowrap; }
.mainnav__link {
  font-size: 1.125rem;      /* h3 18 */
  line-height: 1.375rem;
  text-transform: uppercase;
  color: var(--white);
}
.mainnav__link.is-active { color: var(--orange); }
/* Переключатель языка */
.lang { position: relative; flex: none; }
.lang__btn {
  display: flex; align-items: center; gap: .5rem;
  padding: 0;
  background: transparent; border: 0;
  color: var(--white);
  font-size: 1.25rem; line-height: 1.25rem;
  cursor: pointer;
  transition: color .2s ease;
}
.lang__btn:hover,
.lang__btn:focus-visible { color: var(--orange); }
.lang__btn:hover .lang__arrow,
.lang__btn:focus-visible .lang__arrow { background-image: url('../img/lang-arrow-orange.svg'); }
body:not(.page-home) .lang__btn:hover .lang__arrow,
body:not(.page-home) .lang__btn:focus-visible .lang__arrow { content: url('../img/lang-arrow-orange.svg'); }
.lang__arrow {
  display: block;
  width: .5rem;
  height: .3125rem;
  background: url('../img/lang-arrow.svg') no-repeat center / contain;
  transition: transform .2s ease;
}
.lang__btn[aria-expanded="true"] .lang__arrow { transform: rotate(180deg); }
.lang__list {
  position: absolute; top: calc(100% + .625rem); right: 0; z-index: 20;
  min-width: 4.875rem;
  background: #101a35;
  border: 1px solid rgba(253, 255, 254, .18);
  border-radius: .1875rem;
  overflow: hidden;
}
.lang__option {
  display: block; width: 100%;
  padding: .5625rem .875rem;
  background: transparent; border: 0;
  color: var(--white); font-size: 1rem; text-align: left; cursor: pointer;
}
.lang__option:hover { background: rgba(253, 255, 254, .1); }
.lang__option.is-active { background: var(--orange); }
/* Бургер и мобильное меню (только < 1280) */
.burger { display: none; }
.mobilemenu { color: var(--white); }
.mobilemenu[hidden] { display: none; }

/* Экран 1 — слайдер (общая высота 924 px) */
@keyframes fade-in { from { opacity: 0; transform: translateY(.5rem); } to { opacity: 1; transform: none; } }

/* Подвал */
.footer { display: flex; flex-direction: column; gap: 2.1875rem; padding: 5rem 3.75rem; }
.footer__top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 4rem; }
.footer__col--inner { justify-self: end; }
.footer__contacts-menu { display: flex; gap: 5rem; }
.footer__col { display: flex; flex-direction: column; gap: 1.875rem; }
.footer__col--contacts { width: 19.8125rem; }
.footer__col--menu { width: 14.1875rem; }
.footer__title {
  font-size: 1.625rem;      /* h5 26/30 Light */
  line-height: 1.875rem;
  font-weight: 300;
  color: var(--orange);
  text-transform: uppercase;
}
.footer__col--contacts .footer__title + * { margin-top: 0; }
.footer__block { display: flex; flex-direction: column; gap: .625rem; }
.footer__col--contacts { gap: 1.25rem; }
.footer__col--contacts > .footer__title { margin-bottom: .625rem; }
.footer__caption { font-size: 1rem; font-weight: 400; line-height: normal; }
.footer__row { display: flex; align-items: flex-start; gap: .875rem; font-size: 1rem; line-height: normal; }
.footer__icon { flex: none; width: 1.5rem; height: auto; }
.footer__row a { color: var(--white); }
.footer__row a:hover { color: var(--orange); }
.footer__list { display: flex; flex-direction: column; gap: 1rem; font-size: 1rem; font-weight: 400; line-height: normal; }
.footer__inner-cols { display: flex; gap: 5rem; }
.footer__list--policy { gap: 0; color: var(--orange); }
.footer__list--policy a { color: var(--orange); }
.footer__list--policy a:hover { text-decoration: underline; }
.footer__logos { display: flex; align-items: center; align-self: start; gap: 2.5rem; flex: none; }
.footer__logo-rkc { width: 5.625rem; height: 7.268rem; object-fit: contain; }
.footer__logo-rkm { position: relative; display: block; width: 6.117rem; height: 4.863rem; }
.footer__logo-rkm-mark { position: absolute; top: 0; left: 0; width: 6.117rem; height: 3.905rem; }
.footer__logo-rkm-text { position: absolute; top: 4.303rem; left: 0; width: 6.115rem; height: .56rem; }
.footer__bottom { display: flex; justify-content: space-between; gap: 2rem; font-size: 1rem; font-weight: 400; line-height: normal; }
.footer__dev[href]:hover,
.footer__dev[href]:focus-visible { color: var(--orange); text-decoration: underline; }

/* Внутренние страницы (светлая тема) — */
.page-light {
  background: #edf1f7;
  color: #0a1226;
}
.page-light .header {
  position: static;
  background: #0a1226;
  color: var(--white);
}
.page-light .footer {
  background: #0a1226 url('../img/footer-space.jpg') no-repeat center top / cover;
  color: var(--white);
  border-top: 0;
}
.inner {
  display: flex;
  flex-direction: column;
  gap: 3.125rem;                 /* 50 */
  padding: 2.1875rem 0 6.25rem;  /* 35 сверху, 100 до подвала */
}
.breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 .875rem;                /* 14 */
  padding: 0 3.75rem;
  font-size: 1.125rem;           /* h3 18 */
  text-transform: uppercase;
}
.breadcrumbs__link { color: rgba(10, 18, 38, .5); }
.breadcrumbs__link:hover { color: var(--orange); }
.breadcrumbs__sep { width: 1.587rem; height: 1px; background: rgba(10, 18, 38, .5); }
.breadcrumbs__current { color: var(--orange); }
.inner__title {
  padding: 0 3.75rem;
  font-size: 5rem;               /* H1 80/80 */
  line-height: 5rem;
  font-weight: 400;
  color: #0a1226;
}
.cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 1.25rem;
  padding: 0 3.75rem;
}
.card {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  border: 1px solid var(--orange);
  border-radius: var(--radius);
}
.card__photo {
  display: block;
  height: 24.375rem;             /* 390 */
  border-radius: var(--radius) var(--radius) 0 0;
  overflow: hidden;
}
.card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
/* наведение: фото плавно приближается, кроп держит overflow: hidden плашки */
.card__photo:hover img,
.card__photo:focus-visible img { transform: scale(1.05); }
.card__body {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2.5rem;
  min-height: 11.1875rem;        /* 179 — минимум из макета */
  padding: 2.5rem;
}
.card__title {
  margin: 0;
  font-size: 2.5rem;             /* H2 40/50 Semibold */
  line-height: 3.125rem;
  font-weight: 600;
  text-transform: uppercase;
  color: #0a1226;
  overflow-wrap: normal;
  hyphens: manual;
}
.card__title--narrow { max-width: 13.9375rem; }
/* «Ракеты-носители» — 223 px в макете */
.card__btn { flex: none; width: auto; height: 3.75rem; padding: 0 4.375rem; font-weight: 600; }
.cards--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card--compact .card__body { min-height: 8.75rem; padding: 2.5rem; }
.card--compact .card__title { font-size: 2.5rem; line-height: 3.125rem; }
.card__arrow {
  flex: none;
  display: block;
  width: 3.75rem;
  height: 3.75rem;
  border-radius: var(--radius);
  background: var(--orange) url('../img/icon-arrow.svg') no-repeat center / 100% 100%;
  transition: background-color .2s ease, transform .15s ease;
}
.card__arrow:hover { background-color: #f18f34; }
.card__arrow:active { transform: translateY(1px); }

/* Адаптив (< 1280 px — раскладка вне макета, */
@media (max-width: 1279px) {
  html { font-size: 16px; }
  body {
    background-image:
      linear-gradient(rgba(4, 9, 24, .69), rgba(4, 9, 24, .69)),
      url('../img/bg-1.jpg');
    background-position: 0 0, 0 0;
    background-size: 100% 100%, 100% auto;
    background-repeat: no-repeat, repeat-y;
  }
  .h1 { font-size: 2rem; line-height: 1.15; }
  /* Шапка — полное меню, как на ПК, только компактнее */
  .header { height: auto; padding: .75rem 1rem; gap: clamp(.75rem, 1.6vw, 1.5rem); align-items: center; }
  .header__main { display: flex; gap: .5rem; }
  .header__row { gap: clamp(.75rem, 2vw, 2rem); }
  .header__logo-rkc { height: 2.75rem; }
  .header__logo-rkm { width: 2.875rem; height: 2.29rem; }
  .header__logo-rkm-mark { width: 2.875rem; height: 1.835rem; }
  .header__logo-rkm-text { top: 2.02rem; width: 2.875rem; height: .263rem; }
  .header__title { font-size: clamp(11px, 1.35vw, 17px); line-height: 1.3; white-space: nowrap; }
  .header__aside { gap: clamp(.625rem, 1.4vw, 1.25rem); margin-left: auto; }
  .mainnav__list { gap: clamp(6px, 1.15vw, 18px); }
  .mainnav__link { font-size: clamp(9.5px, 1.15vw, 14px); line-height: 1.2; }
  .socials--header { width: 4.375rem; height: .875rem; }
  .socials--header .socials__link { width: 2.1875rem; height: .875rem; background-size: 4.375rem .875rem; }
  .socials--header .socials__link--2 { background-position: -2.1875rem 0; }
  .lang__btn { font-size: .875rem; line-height: 1; }
  .search { height: 1.5rem; }
  .search.is-open .search__input { width: clamp(6rem, 14vw, 14rem); }
  .search__toggle { width: 1.125rem; height: 1.0625rem; padding: .375rem; margin: -.375rem; }
  .mainnav { display: none; }
  .burger {
    order: -1;                        /* слева от логотипов, как в мобильной версии */
    display: block;
    box-sizing: content-box;          /* иконка 24×16, зона нажатия 48×40 */
    width: 24px;
    height: 16px;
    padding: 12px;
    border: 0;
    background: url('../img/m-burger.svg') no-repeat center / contain content-box;
    cursor: pointer;
    transition: opacity .2s ease;
  }
  .burger:hover,
  .burger:focus-visible { opacity: .6; }
  .burger__line { display: none; }
  .mobilemenu {
    position: fixed; inset: 0; z-index: 60;
    display: flex; flex-direction: column; gap: .5rem;
    padding: 1.5rem;
    background: rgba(8, 13, 30, .97);
    overflow-y: auto;
  }
  .mobilemenu__close {
    align-self: flex-start;   /* слева, под кнопкой бургера, как в мобильной версии */
    width: 2.75rem; height: 2.75rem;
    background: transparent;
    border: 1px solid rgba(253, 255, 254, .4);
    border-radius: .25rem;
    color: var(--white); font-size: 1.625rem; line-height: 1; cursor: pointer;
  }
  .mobilemenu__list a {
    display: block;
    padding: .8125rem 0;
    font-size: 1.0625rem;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(253, 255, 254, .12);
  }
  .socials--mobile { margin-top: 1.5rem; }
  .btn { width: 18.75rem; max-width: 100%; height: 3rem; font-size: .9375rem; }
  /* 300 px, как на ПК */
  .btn--wide { width: 23.125rem; max-width: 100%; }
  .footer { padding-left: 1rem; padding-right: 1rem; }
  /* по высоте карточки формы */
  /* Подвал — четыре колонки, как на ПК */
  .footer { padding-top: 2.5rem; padding-bottom: 1.5rem; gap: 1.5rem; }
  .footer__top { flex-direction: row; align-items: flex-start; gap: 1.25rem; }
  .footer__contacts-menu { flex-direction: row; gap: 1.25rem; }
  .footer__col { gap: 1rem; }
  .footer__col--contacts { width: auto; flex: 0 1 15rem; gap: .875rem; }
  .footer__col--menu { width: auto; flex: 0 1 9rem; }
  .footer__title { font-size: .9375rem; line-height: 1.3; }
  .footer__caption,
  .footer__list { font-size: 14px; }
  .footer__row { font-size: .75rem; }
  .footer__row { gap: .625rem; }
  .footer__icon { width: 1rem; }
  /* значки контактов на планшете мельче (метка 16 × 19,7) — соцсети следом */
  .socials--footer { width: 4.5rem; height: 1.25rem; }
  .socials--footer .socials__link { width: 2.25rem; height: 1.25rem; background-size: 4.5rem 1.25rem; }
  .socials--footer .socials__link--2 { background-position: -2.25rem 0; }
  .footer__list { gap: .625rem; }
  .footer__inner-cols { gap: 1.25rem; }
  .footer__logos { flex: 0 0 auto; gap: 1rem; }
  .footer__logo-rkc { width: 3rem; height: 3.875rem; }
  .footer__logo-rkm { width: 3.5rem; height: 2.8rem; }
  .footer__logo-rkm-mark { width: 3.5rem; height: 2.234rem; }
  .footer__logo-rkm-text { top: 2.46rem; width: 3.5rem; height: .32rem; }
  .footer__bottom { flex-direction: row; gap: 1rem; font-size: 14px; }
  /* Внутренние страницы */
  .inner { gap: 2rem; padding: 1.5rem 0 3rem; }
  .breadcrumbs { gap: 0 .625rem; padding: 0 1rem; font-size: .8125rem; }
  .breadcrumbs__sep { width: 1.125rem; }
  .inner__title { padding: 0 1rem; font-size: 2rem; line-height: 1.15; }
  .cards { gap: 1rem; padding: 0 1rem; }
  .cards--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card--compact .card__body { min-height: 0; padding: 1.25rem; }
  .card--compact .card__title { font-size: 1.5rem; line-height: 1.3; }
  .card__arrow { width: 3rem; height: 3rem; }
  .card__photo { height: 15rem; }
  .card__body { min-height: 0; gap: 1.25rem; padding: 1.25rem; }
  .card__title,
  .card__title--narrow { max-width: none; font-size: 1.25rem; line-height: 1.35; }
  .card__btn { width: auto; max-width: none; height: 3rem; padding: 0 1.5rem; font-size: .8125rem; }
}

/* Шапка планшета — мобильная: бургер слева, */
@media (max-width: 1279px) {
  /* --- шапка точь-в-точь по макету: строка 319×31 на y=14.7, линия на y=65.7 --- */
  .header {
    position: absolute;
    align-items: flex-start;
    gap: 0;
    height: 60.5px;
    padding: 14.7px 20px 0;
    border-bottom: 0;
  }
  .header::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    top: 65.7px;
    height: 1px;
    background: var(--white);
  }
  .header__logos { order: -1; gap: 10px; margin-left: 25.9px; height: 31px; align-items: flex-start; }
  .header__logo-rkc { width: 24px; height: 31px; object-fit: contain; }
  .header__logo-rkm { width: 39px; height: 31px; }
  .header__logo-rkm-mark { top: 0; width: 39px; height: 24.9px; }
  .header__logo-rkm-text { top: 27.4px; width: 39px; height: 3.6px; }
  body:not(.page-home) .header__logo-rkm-mark { content: url('../img/m-roscosmos-mark.svg'); }
  body:not(.page-home) .header__logo-rkm-text { content: url('../img/m-roscosmos-text.svg'); }
  .header__main,
  .header__row,
  .header__row--bottom,
  .header__aside { display: contents; }
  .header__title {
    order: 0;
    display: block;
    width: 137.4px;
    margin: 1.6px 0 0 10px;
    font-size: 12px;
    line-height: 15px;
    white-space: normal;
  }
  /* Прячем поиск именно в шапке — копия в бургер-меню должна остаться видимой */
  .header .header__search,
  .header__divider,
  .mainnav,
  .socials--header { display: none; }
  .lang { order: 1; margin: 8.5px 0 0 auto; }
  .lang__btn { gap: 6px; font-size: 14px; line-height: 14px; }
  .lang__arrow { width: 8px; height: 5px; }
  .burger {
    order: -2;
    display: block;
    box-sizing: content-box;        /* иконка 18×12 из макета, зона нажатия 44×44 */
    width: 18px; height: 12px;
    padding: 16px 13px;
    margin: -6.5px -13px 0;
    border: 0;
    background: url('../img/m-burger.svg') no-repeat center / contain content-box;
  }
  .burger__line { display: none; }
  .search--menu { height: 40px; }
  .search--menu .search__input { font-size: 16px; }
  /* меньше 16 — iOS зумит страницу на фокусе */
  .search--menu .search__toggle { width: 20px; height: 19px; padding: 8px; margin: -8px; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .header__title {
    width: auto;
    white-space: nowrap;
    font-size: 18px;
    line-height: 22px;
    align-self: center;
    margin: 0 0 14.7px 10px;
  }
}
@media (max-width: 767px) {
  html { font-size: 16px; }
  body {
    background-color: #050a1b;
    background-image: url('../img/m-bg-space.jpg');
    background-position: left top;
    background-size: 768px 1903px;
    background-repeat: repeat-y;
  }
  .mobilemenu {
    position: fixed; inset: 0; z-index: 60;
    display: flex; flex-direction: column; gap: 8px;
    padding: 76px 20px 20px;
    background: #080d1e;
    overflow-y: auto;
  }
  /* крестик стоит ровно там же, где бургер в шапке */
  .mobilemenu__close {
    position: absolute;
    top: 18px; left: 17px;
    display: flex; align-items: center; justify-content: center;
    width: 24px; height: 24px;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--white);
    font-size: 26px; line-height: 1;
    cursor: pointer;
  }
  .mobilemenu__close:hover { color: var(--orange); }
  .mobilemenu__list a {
    display: block;
    padding: 12px 0;
    font-size: 14px;
    line-height: 16px;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(253, 255, 254, .12);
  }
  .socials--mobile { margin-top: 20px; }
  /* --- кнопка макета: 48 px, 14 px Bold --- */
  .btn {
    width: 100%;
    max-width: none;
    height: 48px;
    padding: 0 16px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 700;
    border-radius: 10px;
  }
  .btn--wide { width: 100%; }
  .h1 { font-size: 32px; line-height: 35px; }
  .br-mobile { display: inline; }
  /* заголовок карточки статистики — в три строки, как в макете */
  .nowrap-mobile { white-space: nowrap; }
  /* --- подвал --- */
  .footer { padding: 40px 20px; gap: 35px; }
  /* На мобильном подвал — колонка, поэтому сетка десктопа сбрасывается в flex. */
  .footer__top { display: flex; flex-direction: column; align-items: stretch; gap: 40px; }
  .footer__col--inner { justify-self: auto; }
  .footer__logos { order: -1; align-self: center; justify-content: center; gap: 40px; }
  .footer__logo-rkc { width: 78px; height: 100px; }
  .footer__logo-rkm { width: 106px; height: 85px; }
  .footer__logo-rkm-mark { width: 106px; height: 68.1px; }
  .footer__logo-rkm-text { top: 75.2px; width: 106px; height: 9.7px; }
  body:not(.page-home) .footer__logo-rkm-mark { content: url('../img/m-footer-roscosmos-mark.svg'); }
  body:not(.page-home) .footer__logo-rkm-text { content: url('../img/m-footer-roscosmos-text.svg'); }
  .footer__contacts-menu { flex-direction: column; gap: 40px; }
  .footer__col { gap: 20px; }
  .footer__col--contacts,
  .footer__col--menu { width: 227px; max-width: 100%; }
  .footer__title { font-size: 20px; line-height: 20px; font-weight: 600; }
  .footer__caption { font-size: 14px; line-height: 16px; }
  .footer__row { gap: 14px; font-size: 12px; line-height: 14px; }
  .footer__icon { width: 20px; }
  .socials--footer { width: 90px; height: 25px; }
  .socials--footer .socials__link { width: 45px; height: 25px; background-size: 90px 25px; }
  .socials--footer .socials__link--2 { background-position: -45px 0; }
  .footer__list { gap: 10px; font-size: 14px; line-height: 16px; }
  .footer__col--inner { gap: 30px; }
  .footer__inner-cols { flex-direction: column; gap: 10px; }
  .footer__list--policy { gap: 10px; }
  .footer__bottom { flex-direction: column; gap: 20px; font-size: 14px; line-height: 16px; }
  .page-light .header {
    height: 71px;
    padding-top: 20px;
  }
  .page-light .header::after { display: none; }
  .page-light .footer {
    background: #080f22 url('../img/m-footer-space.jpg') no-repeat center top / cover;
  }
  .page-light .footer__logo-rkc { width: 62.222px; height: 80px; }
  .page-light .footer__logo-rkm { width: 85px; height: 68px; }
  .page-light .footer__logo-rkm-mark { width: 85px; height: 54.612px; }
  .page-light .footer__logo-rkm-text { top: 60.211px; width: 85px; height: 7.789px; }
}

/* Внутренние страницы: мобильная версия */
@media (max-width: 767px) {
  .inner { gap: 20px; padding: 40px 0 40px; }
  .breadcrumbs { gap: 0 5px; padding: 0 20px; font-size: 10px; }
  .breadcrumbs__sep { width: 10px; }
  .inner__title { padding: 0 20px; font-size: 32px; line-height: 1.1; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 20px; align-items: stretch; }
  .card { gap: 10px; }
  .card__photo { height: 120px; }
  .card__body {
    flex: 1;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    gap: 10px;
    min-height: 122px;
    padding: 10px;
  }
  .card__title,
  .card__title--narrow { max-width: none; font-size: 15px; line-height: 1.2; }
  .cards--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card--compact .card__body { min-height: 0; padding: 10px; gap: 10px; }
  .card--compact .card__title { font-size: 15px; line-height: 1.2; }
  .card--compact .card__body { flex-direction: column; align-items: flex-start; justify-content: space-between; }
  .card__arrow { width: 36px; height: 36px; }
  /* на телефоне общее правило .btn ставит 700 — у кнопок плашек оставляем 600 */
  .card__btn { width: 100%; max-width: none; height: 48px; padding: 0 20px; font-size: 16px; font-weight: 600; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  /* строка поиска всё же раскрывается плавно — это изменение размера, а не движение */
  .search { transition-duration: .2s !important; }
}

/* Страница «Закупки в АО «РКЦ «Прогресс» — */
.inner--purchases {
  gap: 3.75rem;                    /* 60 между блоками (у остальных внутренних 50) */
  padding: 4.25rem 0 6.25rem;      /* 68 от шапки до крошек, 100 до подвала */
}

/* Табы разделов */
.tabs {
  container-type: inline-size;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 1.25rem;                    /* фолбэк, если cqi не поддерживается */
  gap: 1.0417cqi;                  /* 20 при 1920 */
  padding: 0 3.75rem;
}
.tab {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  justify-content: center;
  border: 0;
  font-family: inherit;
  cursor: pointer;
  margin-bottom: .9375rem;         /* 15 — просвет до подчёркивания, вся плашка 79 */
  padding: 1.25rem 3.0625rem;      /* фолбэк: 20 / 49 из макета */
  padding: 1.25rem 2.5521cqi;      /* 49 при 1920 */
  background: #dce6f0;
  color: #0a1226;
  font-size: 1.25rem;              /* фолбэк: 20 Semibold */
  font-size: 1.0417cqi;            /* 20 при 1920 */
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  transition: background-color .2s ease, color .2s ease;
}
/* подчёркивание 2 px под плашкой — в макете отдельная линия, рисуем псевдоэлементом */
.tab::after {
  content: '';
  position: absolute;
  top: calc(100% + .875rem);
  left: 0; right: 0;
  height: .125rem;
  border-radius: .0625rem;
  background: #dce6f0;
  transition: background-color .2s ease;
}
.tab:hover,
.tab:focus-visible { color: var(--orange); }
.tab--active { background: var(--orange); color: #fff; }
.tab--active::after { background: var(--orange); }
.tab--active:hover,
.tab--active:focus-visible { background: #f18f34; color: #fff; }

/* Разделы закупок: панели под табами */
.tab-panel { display: flex; flex-direction: column; gap: 3.75rem; }
.tab-panel[hidden] { display: none; }
.tab-panel--normative { margin-top: -2.5rem; }

/* Нормативная документация */
.doc-list { display: flex; flex-direction: column; gap: 1.25rem; padding: 0 3.75rem; }
.doc {
  display: flex;
  align-items: flex-start;
  padding: 1.25rem 1.875rem;              /* 20 / 30 */
  box-shadow: inset .375rem 0 0 var(--orange);
  border-radius: var(--radius);
  background-color: #fff;
}
/* display: flex выше перебивает браузерное [hidden] — гасим скрытые порции явно */
.doc[hidden] { display: none; }
.doc__main { display: flex; flex: 1 1 auto; gap: 1.25rem; min-width: 0; padding: .9375rem 0; }
.doc__format {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.125rem;                        /* 50 */
  height: 3.75rem;                        /* 60 */
  border-radius: .375rem;                 /* 6 */
  background-color: #dce6f0;
  font-size: .875rem;                     /* 14 Semibold */
  line-height: 1;
  font-weight: 600;
  text-transform: uppercase;
}
.doc__title {
  margin: 0;
  min-width: 0;
  font-size: 1.25rem;                     /* 20 Semibold */
  line-height: 1.25rem;                   /* 20 */
  font-weight: 600;
  text-transform: uppercase;
  color: #0a1226;
}
.doc__meta {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.25rem;                           /* 20 между всеми элементами */
  width: 40rem;                           /* 640 */
}
.doc__date,
.doc__size {
  font-size: 1.25rem;
  line-height: 1.25rem;
  color: rgba(10, 18, 38, .5);
  text-transform: uppercase;
  white-space: nowrap;
}
.doc__dot { flex: none; width: .3125rem; height: .3125rem; border-radius: 50%; background-color: rgba(10, 18, 38, .5); }
/* Кнопка «открыть» — 176 × 40, рамка и стрелка в макете притушены до 50 % */
.doc__open {
  flex: none;
  width: 11rem;
  height: 2.5rem;
  border: 1px solid #0a1226;
  border-radius: var(--radius);
  opacity: .5;
  background: url('../img/icon-doc-open.svg') no-repeat center / 1.25rem 1.25rem;
  transition: opacity .2s ease;
}
.doc__open:hover,
.doc__open:focus-visible { opacity: 1; }
.doc[data-format="zip"] .doc__open,
.doc[data-format="doc"] .doc__open,
.doc[data-format="docx"] .doc__open,
.doc[data-format="xls"] .doc__open,
.doc[data-format="xlsx"] .doc__open { display: none; }
/* Кнопка «скачать» — высота 48, ширина по тексту (173 в макете) */
.doc__download {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .625rem;
  height: 3rem;
  padding: 0 1.875rem;
  border: 1px solid var(--orange);
  border-radius: var(--radius);
  background-color: var(--orange);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.4;
  font-weight: 600;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease;
}
.doc__download::before {
  content: '';
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  background: url('../img/icon-download.svg') no-repeat center / contain;
}
.doc__download:hover,
.doc__download:focus-visible { background-color: #f18f34; border-color: #f18f34; color: #fff; }

/* Таблица закупок */
/* Кнопка «загрузить еще» — ширина по тексту (289 в макете), 20 Bold */
.btn--load { align-self: center; width: auto; padding: 0 4.375rem; font-weight: 700; }

/* Планшет (< 1280): та же раскладка, размеры */
@media (max-width: 1279px) {
  .inner--purchases { gap: 2rem; padding: 2rem 0 3rem; }
  .tab-panel { gap: 2rem; }
  .tab-panel--normative { margin-top: 0; }
  .doc-list { gap: 1rem; padding: 0 1rem; }
  .doc { padding: 1rem 1.25rem; }
  .doc__main { gap: 1rem; padding: .5rem 0; }
  .doc__format { width: 2.75rem; height: 3.25rem; font-size: .75rem; }
  .doc__title { font-size: 1.0625rem; line-height: 1.2; }
  .doc__meta { width: auto; flex: 0 1 auto; gap: .75rem; }
  .doc__date,
  .doc__size { font-size: .9375rem; line-height: 1.2; }
  .doc__open { width: 4rem; height: 2.25rem; background-size: 1rem 1rem; }
  .doc__download { height: 2.75rem; padding: 0 1.25rem; font-size: .9375rem; }
  .doc__download::before { width: 1rem; height: 1rem; }
  .tabs { flex-wrap: nowrap; gap: .625rem; padding: 0 1rem; }
  /* места на макетную ленту нет: шесть равных плашек в ряд, текст переносится */
  .tab {
    flex: 1 1 0;
    min-width: 0;
    margin-bottom: 10px;
    padding: .75rem .625rem;
    font-size: .8125rem;
    white-space: normal;
  }
  .tab::after { top: calc(100% + 9px); height: 2px; }
  .btn--load { height: 2.75rem; padding: 0 2.5rem; font-size: .875rem; }
}

/* Мобильный (< 768): строка таблицы становится */
@media (max-width: 767px) {
  .inner--purchases { gap: 20px; padding: 40px 0; }
  .tab-panel { gap: 20px; }
  .tab-panel--normative { margin-top: 0; }
  .doc-list { gap: 10px; padding: 0 20px; }
  .doc { flex-direction: column; align-items: stretch; gap: 10px; padding: 20px; }
  .doc__main { gap: 10px; padding: 0; }
  .doc__format { width: 40px; height: 48px; font-size: 12px; }
  .doc__title { font-size: 16px; line-height: 1.2; }
  .doc__meta { width: auto; flex-wrap: wrap; justify-content: flex-start; gap: 10px; }
  .doc__date,
  .doc__size { font-size: 12px; line-height: 1.2; }
  .doc,
  .doc--slim { padding: 10px 20px; }
  .doc__format { width: 36px; height: 36px; font-size: 12px; }
  .doc__meta { flex-wrap: nowrap; gap: 10px; }
  .doc__size { margin-right: auto; }
  /* распорка: кнопки уходят вправо */
  .doc__open { width: 36px; height: 36px; background-size: 16px 16px; }
  .doc__download { flex: none; width: 36px; height: 36px; padding: 0; gap: 0; font-size: 0; }
  .doc__download::before { width: 16px; height: 16px; }
  /* лента табов с прокруткой — как у вкладок изделий на главной */
  .tabs {
    flex-wrap: nowrap;
    gap: 10px;
    padding: 0 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tabs::-webkit-scrollbar { display: none; }
  .tab {
    flex: 0 0 auto;
    margin-bottom: 8px;
    padding: 12px 16px;
    font-size: 13px;
  }
  .tab::after { top: calc(100% + 7px); height: 2px; }
  .btn--load { align-self: stretch; width: auto; margin: 0 20px; height: 48px; padding: 0 20px; font-size: 14px; }
}

/* Детальная страница изделия — */
.inner--product .breadcrumbs + .inner__title {
  margin-top: .8125rem;          /* 50 + 13 = 63  → H1 на 220 */
  margin-bottom: .5rem;          /* 50 + 8  = 58  → блок 2 × 2 на 358 */
}

/* Планшет: своего макета нет, сделан в логике */
@media (max-width: 1279px) {
  /* макетный шаг блоков ниже 1280 не действует — работает базовый gap .inner */
  .inner--product .breadcrumbs + .inner__title { margin-top: 0; }
  .inner--product .breadcrumbs + .inner__title { margin-bottom: 0; }
}

/* Мобильный */
@keyframes icon-shine {
  0%   { filter: brightness(1) drop-shadow(0 0 0 rgba(231, 124, 28, 0)); }
  50%  { filter: brightness(1.4) drop-shadow(0 0 .75rem rgba(231, 124, 28, .6)); }
  100% { filter: brightness(1) drop-shadow(0 0 0 rgba(231, 124, 28, 0)); }
}
@keyframes border-sheen {
  0%   { background-position: 200% 0; opacity: 0; }
  18%  { opacity: 1; }
  82%  { opacity: 1; }
  100% { background-position: -100% 0; opacity: 0; }
}

/* Страница «Контакты» */
.inner--contacts { gap: 3.75rem; padding: 4.25rem 0 6.25rem; }
/* H2 «Филиалы и представительства» — 50/1.2 Regular, в отличие от H1 80/80 */
.inner__title--h2 { font-size: 3.125rem; line-height: 1.2; }

/* Таблица филиалов */
@media (max-width: 1279px) {
  .inner--contacts { gap: 2rem; padding: 2rem 0 3rem; }
  .inner__title--h2 { font-size: 1.25rem; line-height: 1.2; }
}
@media (max-width: 767px) {
  .inner--contacts { gap: 20px; padding: 40px 0; }
  .inner__title--h2 { padding: 0 20px; font-size: 26px; line-height: 1.2; }
}

/* Страница «Работа в АО «РКЦ «Прогресс»» */
.inner--work { gap: 3.75rem; padding: 4.25rem 0 6.25rem; }
/* Плашка над блоком 2х2 — обычный абзац 26/1.3 в общих полях страницы */
.inner__lead {
  padding: 0 3.75rem;
  font-size: 1.625rem;
  line-height: 1.3;
  color: #0a1226;
}
/* Вводный текст из нескольких абзацев. Содержимое приходит из детального описания
   элемента, где редактор выдаёт обычные p, strong и списки без классов, поэтому
   стили навешаны на потомков контейнера: абзацы через 20, полужирное — 600, как в макете */
/* кегль как на «Реализуемом имуществе»: длинный текст набирается 20/1,7, а не 26 */
.inner__lead--text { display: flex; flex-direction: column; gap: 1.25rem; font-size: 1.25rem; line-height: 1.7; }
.inner__lead--text > * { margin: 0; }
.inner__lead--text b,
.inner__lead--text strong { font-weight: 600; }
/* заголовок из редактора набирается как абзац — так же, как в .product-text */
.inner__lead--text h2,
.inner__lead--text h3,
.inner__lead--text h4 { font-size: inherit; line-height: inherit; font-weight: 600; }
.inner__lead--text ul,
.inner__lead--text ol { padding-left: 1.875rem; }
.inner__lead--text li + li { margin-top: .25rem; }
.inner__lead--text li::marker { color: var(--orange); }
.inner__lead--text a { color: var(--orange); }
.inner__lead--text a:hover,
.inner__lead--text a:focus-visible { color: #f18f34; text-decoration: underline; }

/* Содержимое из визуального редактора: готовый HTML без классов, поэтому стили
   навешаны на потомков контейнера. Поля — общие поля страницы, кегль 20/1,7 */
.inner__richtext {
  padding: 0 3.75rem;
  color: #0a1226;
  font-size: 1.25rem;
  line-height: 1.7;
}
.inner__richtext > * + * { margin-top: 1.25rem; }
.inner__richtext b,
.inner__richtext strong { font-weight: 600; }
.inner__richtext a { color: var(--orange); }
.inner__richtext a:hover,
.inner__richtext a:focus-visible { color: #f18f34; text-decoration: underline; }
/* таблица редактора: фон прозрачный, внешняя рамка скруглена, как у плашек макета.
   Рамки раздельные — при border-collapse: collapse браузер не рисует скругление;
   внутренние линии остаются одинарными за счёт border только сверху и слева у ячеек.
   Колонки делятся поровну: пиксельные ширины из атрибутов перебиты, иначе на узком
   экране таблица не ужимается и вылезает за край */
.inner__richtext table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  border: 1px solid var(--orange);
  border-radius: var(--radius);
  background: transparent;
}
.inner__richtext th,
.inner__richtext td {
  width: auto;
  padding: 1.25rem;
  border: 0;
  border-top: 1px solid var(--orange);
  border-left: 1px solid var(--orange);
  vertical-align: top;
  overflow-wrap: break-word;
}
.inner__richtext tr:first-child > * { border-top: 0; }
.inner__richtext tr > *:first-child { border-left: 0; }
/* 20 от заголовка до схемы: общий зазор колонки .inner — 50, разницу снимает отрицательный отступ */
.inner__title--h2 + .inner__richtext { margin-top: -1.875rem; }
/* 20 от схемы до плашек раздела — тем же способом */
.inner__richtext + .cards { margin-top: -1.875rem; }
/* 50 от нижнего края букв H1 до верха заглавной в H2: у строк свои просветы
   (12 снизу у H1 и 13,5 сверху у H2), поэтому зазор колонки уменьшен на 25,5 */
.inner__title + .inner__title--h2 { margin-top: -1.59375rem; }
.inner__richtext th { font-weight: 600; }
.inner__richtext td p,
.inner__richtext th p { margin: 0; }
.inner__richtext td p + p,
.inner__richtext th p + p { margin-top: .625rem; }

/* Карточка «Контактная информация» */
.btn--auto { width: auto; padding: 0 4.375rem; font-weight: 700; }

/* Модальное окно формы */
/* Пока окно открыто, страница под ним не прокручивается */
.page-light.is-modal-open { overflow: hidden; }

/* Планшет (< 1280): раскладка по образцу прошлых */
@media (max-width: 1279px) {
  .inner--work { gap: 2.5rem; padding: 2.5rem 0 3.75rem; }
  .inner__lead { padding: 0 1rem; font-size: 1rem; line-height: 1.4; }
  .inner__lead--text { gap: 1rem; font-size: 1rem; line-height: 1.4; }
  .inner__richtext { padding: 0 1rem; font-size: 1rem; line-height: 1.4; }
  .inner__title--h2 + .inner__richtext { margin-top: -.75rem; }  /* зазор колонки 32 → 20 */
  .inner__richtext + .cards { margin-top: -.75rem; }
  /* заголовки на планшете мельче — просветы строк другие, зазор колонки оставлен как есть */
  .inner__title + .inner__title--h2 { margin-top: 0; }
  .inner__richtext th,
  .inner__richtext td { padding: 1rem; }
  .btn--auto { padding: 0 2rem; }
}

/* Мобильная (< 768): макет 591:11676 и 641:14865 */
@media (max-width: 767px) {
  .inner--work { gap: 20px; padding: 40px 0; }
  .inner__lead { padding: 0 20px; font-size: 14px; line-height: 1.3; }
  .inner__lead--text { gap: 12px; font-size: 14px; line-height: 1.3; }
  .inner__richtext { padding: 0 20px; font-size: 14px; line-height: 1.3; }
  .inner__title--h2 + .inner__richtext { margin-top: 0; }        /* зазор колонки уже 20 */
  .inner__richtext + .cards { margin-top: 0; }
  .inner__title + .inner__title--h2 { margin-top: 0; }
  .inner__richtext > * + * { margin-top: 12px; }
  /* широкая таблица не ужимается в три узкие колонки, а прокручивается вбок — как таблицы «Статистики пусков» */
  .inner__richtext table { display: block; overflow-x: auto; scrollbar-width: none; }
  .inner__richtext table::-webkit-scrollbar { display: none; }
  .inner__richtext tbody { display: table; width: 100%; min-width: 480px; }
  .inner__richtext th,
  .inner__richtext td { padding: 10px; overflow-wrap: normal; }
  /* Кнопки в мобильном макете во всю ширину и ниже: 48 вместо 60 */
  .btn--auto { width: 100%; height: 48px; padding: 0 20px; font-size: 16px; }
}

/* Группа «Документация» / «Протоколы» / */
.doc--slim { align-items: center; padding: .625rem 1.875rem; }
.doc--slim .doc__main { align-items: center; padding: 0; }
.doc--slim .doc__open { width: 3.84375rem; }

/* Планшет (< 1280): по образцу прошлых страниц */
@media (max-width: 1279px) {
  .doc--slim { padding: .625rem 1.25rem; }
}

/* Мобильная (< 768) */
@media (max-width: 767px) {
  .doc--slim { align-items: stretch; }
  .doc--slim .doc__main { align-items: flex-start; }
  .doc--slim .doc__open { width: 36px; }
}

/* Плавное появление блоков при прокрутке */
.reveal {
  opacity: 0;
  transform: translateY(1.75rem);
  transition: opacity .6s ease, transform .6s ease;
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
.reveal.is-revealed {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* Страница «Недвижимое имущество» */
.inner--realty,
.inner--assets { gap: 3.75rem; padding: 4.25rem 0 6.25rem; }
/* Текст над табами мельче общего .inner__lead: 20/34 из макета */
.inner--realty .inner__lead,
.inner--assets .inner__lead { font-size: 1.25rem; line-height: 1.7; }
.tabs--start { justify-content: flex-start; }
.tabs--start .tabs__tab { padding: 1.25rem 3.0625rem; font-size: 1.25rem; }

/* Планшет (< 1280): своего макета нет, размеры по */
@media (max-width: 1279px) {
  .inner--realty,
  .inner--assets { gap: 2rem; padding: 2rem 0 3rem; }
  .inner--realty .inner__lead,
  .inner--assets .inner__lead { font-size: 1rem; line-height: 1.4; }
  .tabs--start { padding: 0 1rem; }
  .tabs--start .tabs__tab { flex: 0 0 auto; padding: .75rem 1.5rem; font-size: .875rem; }
  .tabs--years .tabs__tab { flex: 0 0 auto; padding: .875rem 1.5rem; font-size: 1rem; white-space: nowrap; }
}

/* Мобильная (< 768): одна плашка в ряд */
@media (max-width: 767px) {
  .inner--realty,
  .inner--assets { gap: 20px; padding: 40px 0 40px; }
  .inner--realty .inner__lead,
  .inner--assets .inner__lead { font-size: 14px; line-height: 1.3; }
  .tabs--start { padding: 0 20px; }
  .tabs--start .tabs__tab { padding: 15px 20px; font-size: 14px; margin-bottom: 10px; }
  .tabs--years .tabs__tab { margin-bottom: 10px; padding: 15px 20px; font-size: 14px; }
  .tabs--start .tabs__tab::after { top: calc(100% + 8px); }
  .tabs--years .tabs__tab::after { top: calc(100% + 9px); }
}

/* Детальная страница объекта недвижимости */
.inner--object { gap: 3.75rem; padding: 4.25rem 0 6.25rem; }

/* Плашка условий торгов */
/* Кнопка площадки торгов — базовая .btn во всю ширину и со стрелкой справа */
.btn--trade { width: 100%; gap: .625rem; }
.btn--trade::after {
  content: '';
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  background: url(../img/icon-btn-arrow.svg) no-repeat center / 100% 100%;
}

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  .inner--object { gap: 2rem; padding: 2rem 0 3rem; }
}

/* Мобильная (< 768): макет 632:10373 */
@media (max-width: 767px) {
  /* 40 сверху — по мобильному макету 632:10373: контент на 111 при шапке 71 */
  .inner--object { gap: 20px; padding: 40px 0 40px; }
  .inner--object .inner__title--h2 { font-size: 28px; line-height: 1.1; }
}

/* Страница-заглушка «Раздел в разработке» */
.inner--stub {
  gap: 1.875rem;                   /* 30 — блоков мало, шаг 60 разрывает страницу */
  padding: 4.25rem 0 6.25rem;
  min-height: 31.25rem;            /* 500 */
}
/* крошки от H1 держим на общем шаге 60, остальное плотнее */
.inner--stub .breadcrumbs { margin-bottom: 1.875rem; }
.inner--stub .inner__lead { max-width: 50rem; }
@media (max-width: 1279px) {
  .inner--stub { gap: 1rem; padding: 2rem 0 3rem; min-height: 20rem; }
  .inner--stub .breadcrumbs { margin-bottom: 1rem; }
}
@media (max-width: 767px) {
  .inner--stub { gap: 16px; padding: 24px 0 40px; min-height: 0; }
  .inner--stub .breadcrumbs { margin-bottom: 10px; }
}

/* «Социальная политика» (social-policy.html) */
.inner--social .inner__title[id] { scroll-margin-top: 5rem; }
@media (max-width: 1279px) {
  .inner--social .inner__title[id] { scroll-margin-top: 4.25rem; }
  .inner--social .inner__title--h2 { font-size: 1.625rem; }   /* 26, как на телефоне */
}
@media (max-width: 767px) {
  .inner--social .inner__title[id] { scroll-margin-top: 64px; }
}

/* Страница «Поиск по сайту» (search.html) */
.inner--search { gap: 1.25rem; padding: 4.25rem 0 6.25rem; }
.inner--search .breadcrumbs,
.inner--search .inner__title { padding-left: 3.75rem; padding-right: 3.75rem; }
/* отступы между блоками заданы поштучно: в макете они разные (60 / 62 / 20 / 60) */
.inner--search .inner__title { margin-top: 2.5rem; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  .inner--search { padding: 2rem 0 3rem; }
  .inner--search .breadcrumbs,
  .inner--search .inner__title { padding-left: 1rem; padding-right: 1rem; }
  .inner--search .inner__title { margin-top: 1.5rem; }
}

/* Мобильная (< 768) */
@media (max-width: 767px) {
  .inner--search { gap: 20px; padding: 40px 0 40px; }
  .inner--search .breadcrumbs,
  .inner--search .inner__title { padding-left: 20px; padding-right: 20px; }
  .inner--search .inner__title { margin-top: 0; }
}

/* Страница «Передача энергии» (energy.html) */
.inner--energy { gap: 0; padding: 2.1875rem 0 6.25rem; }
.inner--energy .inner__title { margin-top: 4.4375rem; }
/* 135 + 22 → 228 */
.inner--energy .tabs { margin-top: 3.125rem; }
/* 308 → 358 */
.inner--energy .tab-panel { margin-top: 3.125rem; }
/* 1717 → 1777 */
.inner--energy .breadcrumbs,
.inner--energy .inner__title,
.inner--energy .tabs,
.inner--energy .doc-list { padding-left: 3.75rem; padding-right: 3.75rem; }
/* Панель здесь не колонка с шагом 60, а один блок с группами внутри */
.tab-panel--energy { gap: 0; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  /* мобильного и планшетного макета у страницы нет — шаги обычные для сайта */
  .inner--energy { gap: 2rem; padding: 1.5rem 0 3rem; }
  .inner--energy .inner__title { margin-top: 0; }
  .inner--energy .tabs,
  .inner--energy .tab-panel { margin-top: 0; }
  .inner--energy .breadcrumbs,
  .inner--energy .inner__title,
  .inner--energy .tabs,
  .inner--energy .doc-list { padding-left: 1rem; padding-right: 1rem; }
}

/* Мобильная (< 768) */
@media (max-width: 767px) {
  .inner--energy { gap: 20px; padding: 20px 0 40px; }
  .inner--energy .inner__title { margin-top: 0; }
  .inner--energy .tabs,
  .inner--energy .tab-panel { margin-top: 0; }
  .inner--energy .breadcrumbs,
  .inner--energy .inner__title,
  .inner--energy .tabs,
  .inner--energy .doc-list { padding-left: 20px; padding-right: 20px; }
}

/* Контактные ссылки: телефоны и почта */
a[href^="tel:"],
a[href^="mailto:"] { cursor: pointer; }
a[href^="tel:"]:hover,
a[href^="mailto:"]:hover,
a[href^="tel:"]:focus-visible,
a[href^="mailto:"]:focus-visible {
  color: var(--orange);
  text-decoration: underline;
  text-underline-offset: .2em;
}
.footer a[href^="tel:"]:hover,
.footer a[href^="mailto:"]:hover,
.footer a[href^="tel:"]:focus-visible,
.footer a[href^="mailto:"]:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
@media (hover: none) {
  a[href^="tel:"],
  a[href^="mailto:"] { text-decoration: underline; text-underline-offset: .2em; }
}

/* Страница «Испытательный центр» (test-center.html) */
.inner--tcenter { gap: 3.75rem; padding: 4.25rem 0 6.25rem; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  .inner--tcenter { gap: 2rem; padding: 2rem 0 3rem; }
}

/* Мобильная (< 768) */
@media (max-width: 767px) {
  .inner--tcenter { gap: 20px; padding: 40px 0 40px; }
}

/* Страница «Новости» (news.html, node 3210-3032 «Новости */
.inner--news {
  gap: 2.5rem;                     /* 40 */
  padding: 2.5rem 0 5rem;          /* 40 от шапки до крошек, 80 до подвала */
}
.inner--news .breadcrumbs { padding: 0 3.75rem; }
.inner--news .btn--load { width: 18.75rem; padding: 0; margin-top: 2.5rem; }

/* Заголовок и ссылка на архив в одной строке */
/* отступ уже задан строке */
.archive-link {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .9375rem;                   /* 15 */
  height: 2.5rem;                  /* 40 */
  padding: 0 .6875rem;             /* 11 */
  border-bottom: 2px solid var(--orange);
  color: var(--orange);
  font-size: 1.625rem;             /* 26/30 Bold caps */
  line-height: 1.875rem;
  font-weight: 700;
  text-transform: uppercase;
}
.archive-link:hover,
.archive-link:focus-visible { color: #f18f34; border-bottom-color: #f18f34; }
.archive-link__arrow {
  flex: none;
  width: 1.7678rem;                /* 28.284 */
  height: 1.7678rem;
  background: url('../img/icon-arrow-corner-lg.svg') no-repeat center / 79.75% 79.75%;
  transform: rotate(45deg);
}

/* Лента */
.title-link { color: inherit; }
.title-link:hover,
.title-link:focus-visible { color: var(--orange); }

/* Детальная новость (news-detail.html, node 3210-3696 / 3210-4565) */
.inner--ndetail { gap: 2.5rem; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  .inner--news { gap: 2rem; padding: 2rem 0 3rem; }
  .inner--news .btn--load { width: auto; padding: 0 2.5rem; margin-top: 0; }
  .archive-link { height: 2rem; padding: 0 .5rem; gap: .5rem; font-size: 1rem; line-height: 1.25rem; }
  .archive-link__arrow { width: 1.25rem; height: 1.25rem; }
  /* --- детальная новость: колонки не помещаются, анонсы уходят под статью --- */
  .inner--ndetail { gap: 2rem; }
}

/* Мобильная (< 768, макет 866-21109) */
@media (max-width: 767px) {
  .inner--news { gap: 20px; padding: 20px 0 40px; }
  /* поля мобильного макета — 16, плашка новости 328 */
  .inner--news .breadcrumbs { padding: 0 16px; }
  .inner--news .btn--load { width: auto; margin: 20px 16px 0; padding: 0 20px; }
  .archive-link {
    height: auto;
    padding: 0 0 3px;
    gap: 8px;
    border-bottom-width: 1px;
    font-size: 14px;
    line-height: 17px;
  }
  .archive-link__arrow { width: 14.1px; height: 14.1px; }
  /* --- детальная новость по мобильному макету (3210-4565) --- */
  .inner--ndetail { gap: 20px; }
}

/* «Космические аппараты ДЗЗ» (eo-spacecraft.html) */
/* 12.13 */
.inner--eo .card__title { font-size: 1.75rem; line-height: 2.125rem; }
@media (max-width: 1279px) {
  .inner--eo .card__title { font-size: 1.25rem; line-height: 1.3; }
}
@media (max-width: 767px) {
  .inner--eo .card__title { font-size: 18px; line-height: 1.3; }
}
/* Уже 360 (ниже мобильного макета): длинные слова названий плашек («Нематериальные», «Диссертационный»,
   «космический») шире колонки — шрифт меньше, слова помещаются целиком */
@media (max-width: 359px) {
  .card__title,
  .card__title--narrow,
  .card--compact .card__title { font-size: 13px; }
  .inner--eo .card__title { font-size: 16px; }
}

/* Статистика пусков */
/* Поля страницы 60, как на главной и в разделе новостей. */
/* Ритм макета: между крошками, заголовком, плашкой, табами и таблицей 55 */
.inner--stats { gap: 3.4375rem; }
.inner--stats .breadcrumbs,
.inner--stats .inner__title { padding: 0 3.75rem; }
.inner--stats .inner__title { margin-bottom: 0; }

/* Разделы */
.tabs--half { justify-content: stretch; }
.tabs--half .tabs__tab {
  flex: 1 1 0;
  min-width: 0;
  padding: 1.25rem;
  font-size: 1.25rem;
  line-height: 1.2;
}

/* Таблица */
@media (max-width: 1279px) {
  .inner--stats .breadcrumbs,
  .inner--stats .inner__title { padding: 0 1rem; }
}
@media (max-width: 767px) {
  /* В мобильном макете (856:19839) между блоками 20, а не 55 */
  .inner--stats { gap: 20px; }
  .inner--stats .breadcrumbs,
  .inner--stats .inner__title { padding: 0 20px; }
  .tabs--half .tabs__tab { width: 100%; padding: 12px 15px; font-size: 14px; }
}

/* Страница «Научно-техническое */
/* 289 × 60 из макета */
.inner--coop .breadcrumbs + .inner__title { margin-top: .2125rem; }
@media (min-width: 1280px) {
  .inner--kozlov .breadcrumbs + .inner__title { margin-top: .2125rem; }
  /* 50 + 3,4 → H1 на 210 */
  .inner--coop .breadcrumbs + .inner__title,
  .inner--kozlov .breadcrumbs + .inner__title { margin-bottom: -.745rem; }
}

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  /* планшетного и мобильного макета у страницы нет — шаги обычные для сайта */
  .inner--coop .breadcrumbs + .inner__title { margin-top: 0; }
}

/* Страницы-списки документов: «Документы» */
.inner--docs .breadcrumbs + .inner__title { margin-top: 1.3375rem; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  /* планшетного макета у страницы нет — шаги обычные для сайта */
  .inner--docs .breadcrumbs + .inner__title { margin-top: 0; }
}

/* Мобильная (< 768): макет 547:3587 */
@media (max-width: 767px) {
  /* строки в мобильном макете стоят через 20, а не через 10, как в закупках */
  .inner--docs .doc-list,
  .inner--kozlov .doc-list { gap: 20px; }
  .inner--docs .doc__title,
  .inner--kozlov .doc__title { font-size: 14px; line-height: 1.3; }
  .inner--docs .doc__date,
  .inner--docs .doc__size,
  .inner--kozlov .doc__date,
  .inner--kozlov .doc__size { font-size: 14px; line-height: 20px; }
  .inner--docs .doc__main,
  .inner--kozlov .doc__main { gap: 20px; }
}

/* Страница «Руководство» (management.html) */
.inner--lead { gap: 1.25rem; }
.inner--lead .breadcrumbs + .inner__title { margin-top: 3.1875rem; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  /* планшетного макета у страницы нет — шаги обычные для сайта */
  .inner--lead { gap: 2rem; }
  .inner--lead .breadcrumbs + .inner__title { margin-top: 0; }
}

/* Мобильная (< 768) */
@media (max-width: 767px) {
  .inner--lead { gap: 20px; }
}

/* Страница «Профориентация / Обучение / */
.inner__title--sm { font-size: 4.3rem; }
@media (min-width: 1280px) {
  .inner__title--sm + .doc-list { margin-top: -1.25rem; }
}

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  /* та же пропорция 4,3/5 от планшетного кегля заголовка (2rem) */
  .inner__title--sm { font-size: 1.72rem; }
}

/* Мобильная (< 768) */
@media (max-width: 767px) {
  .inner__title--sm { font-size: 27.5px; }
}

/* Страница «Фотогалерея» (photo-gallery.html, макет */
.inner--pgallery { gap: 3.75rem; }
/* белая кнопка-стрелка (в макете «кнопка малая белая») — для плашки на фото */
.card__arrow--white { background-color: #fff; background-image: url('../img/icon-arrow-orange.svg'); }
.card__arrow--white:hover { background-color: #fdeee0; }

/* Планшет (< 1280): две колонки, «новое» во всю */
@media (max-width: 1279px) {
  .inner--pgallery { gap: 2rem; }
}

/* Мобильная (< 768, макет 716-3695): поля 20, альбомы в */
@media (max-width: 767px) {
  .inner--pgallery { gap: 20px; }
  .inner--pgallery .btn--load { font-size: 16px; }
}

/* Страница альбома (photo-album.html, макет 392-3202 / */
.inner--album { gap: 3.75rem; }

/* Планшет (< 1280) */
@media (max-width: 1279px) {
  .inner--album { gap: 2rem; }
}

/* Мобильная (< 768, макет 591-7974): поля 20, дата и */
@media (max-width: 767px) {
  .inner--album { gap: 20px; }
  .inner--album .btn--load { font-size: 16px; }
}
