/* ============================================================
   Военный комиссариат Советского и Железнодорожного районов
   г. Ростова-на-Дону — дизайн-система сайта
   Стиль: официальный, светлый, тёмно-синий + золотой акцент
   Иконки — css/icons.css (генерируется tools/build-icons.js)
   ============================================================ */

/* ---------- Переменные ---------- */
:root {
  --c-primary: #14456e;
  --c-primary-dark: #0e3355;
  --c-primary-darker: #082136;
  --c-navy-950: #051726;
  --c-primary-light: #e8f0f8;
  --c-primary-50: #f4f7fb;
  --c-accent: #c19a3d;
  --c-accent-hover: #d4ae55;
  --c-accent-dark: #8a6516;
  --c-accent-soft: #f0d9a0;
  --c-accent-light: #fbf3df;
  --c-red: #b8322a;
  --c-red-light: #fdf1ef;
  --c-green: #1f6b45;
  --c-green-light: #eef7f2;
  --c-ink: #17212e;
  --c-muted: #586777;
  --c-line: #dfe5ec;
  --c-line-soft: #ebeff4;
  --c-bg: #f3f5f8;
  --c-white: #ffffff;
  --shadow-xs: 0 1px 2px rgba(16, 34, 54, .06);
  --shadow-sm: 0 1px 2px rgba(16, 34, 54, .05), 0 2px 8px rgba(16, 34, 54, .05);
  --shadow-md: 0 8px 24px rgba(16, 34, 54, .1);
  --shadow-lg: 0 22px 50px rgba(8, 33, 54, .18);
  --radius-lg: 20px;
  --radius: 14px;
  --radius-sm: 10px;
  --font: "Segoe UI", "Inter", Roboto, "Helvetica Neue", Arial, sans-serif;
  --container: 1200px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --tricolor: linear-gradient(90deg, #ffffff 0 33.33%, #1c57a5 33.33% 66.66%, #d52b1e 66.66% 100%);
  --dots: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1.6px) 0 0 / 22px 22px;
}

/* ---------- Сброс и база ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 80px; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.62;
  color: var(--c-ink);
  background: var(--c-bg);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }
main { flex: 1 0 auto; }
img, video, iframe { max-width: 100%; height: auto; display: block; }
a { color: var(--c-primary); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--c-accent-dark); }
ul, ol { padding-left: 1.25em; }
li::marker { color: var(--c-accent-dark); }
h1, h2, h3, h4 { line-height: 1.22; color: var(--c-primary-darker); margin: 0 0 .55em; letter-spacing: -.012em; }
h1 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); font-weight: 800; }
h2 { font-size: clamp(1.38rem, 2.3vw, 1.85rem); font-weight: 800; }
h3 { font-size: 1.12rem; font-weight: 700; }
p { margin: 0 0 1em; }
strong, b { font-weight: 700; }
kbd {
  font-family: inherit; font-size: .8em; font-weight: 700;
  padding: 1px 6px; border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .08);
}
::selection { background: var(--c-accent-soft); color: var(--c-primary-darker); }
:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; border-radius: 4px; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 22px; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 300;
  background: var(--c-accent); color: var(--c-primary-darker);
  font-weight: 800; padding: 10px 18px; border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md); transition: top .2s ease;
}
.skip-link:focus { top: 12px; color: var(--c-primary-darker); }

/* ---------- Верхняя служебная полоса ---------- */
.tricolor-bar { height: 4px; background: var(--tricolor); }
.utility-bar { background: var(--c-navy-950); color: rgba(255, 255, 255, .78); font-size: .82rem; }
.utility-bar .container { display: flex; align-items: center; gap: 22px; padding-top: 8px; padding-bottom: 8px; }
.utility-item { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.utility-item .ico { color: var(--c-accent); }
.utility-item a { color: rgba(255, 255, 255, .88); }
.utility-item a:hover, .utility-link:hover { color: var(--c-accent-soft); }
.utility-spacer { margin-left: auto; }
.utility-link { color: rgba(255, 255, 255, .72); white-space: nowrap; }
@media (max-width: 1080px) { .utility-link { display: none; } }
@media (max-width: 760px) { .utility-item:nth-child(2) { display: none; } }

/* ---------- Шапка ---------- */
.site-header { background: var(--c-white); border-bottom: 1px solid var(--c-line); position: relative; z-index: 70; }
.header-top { display: flex; align-items: center; gap: 28px; padding-top: 18px; padding-bottom: 18px; }
.brand {
  display: flex; align-items: center; gap: 15px;
  min-width: 0; flex: 0 1 auto;
  color: var(--c-primary-darker);
}
.brand__mark {
  flex: 0 0 auto;
  width: 34px; height: 24px; border-radius: 4px;
  background: linear-gradient(180deg, #fff 0 33.33%, #1c57a5 33.33% 66.66%, #d52b1e 66.66% 100%);
  box-shadow: inset 0 0 0 1px rgba(8, 33, 54, .14), 0 3px 8px rgba(8, 33, 54, .12);
}
.brand__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-left: 15px; border-left: 2px solid var(--c-accent); }
.brand__title {
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
  font-weight: 800;
  letter-spacing: -.015em;
  color: var(--c-primary-darker);
  line-height: 1.15;
  white-space: nowrap;
}
.brand__subtitle { font-size: .82rem; color: var(--c-muted); line-height: 1.32; max-width: 268px; }
.brand:hover .brand__title { color: var(--c-primary); }

/* Поиск в шапке */
.hdr-search { display: flex; align-items: center; flex: 1 1 220px; max-width: 300px; margin-left: auto; position: relative; }
.hdr-search input {
  width: 100%;
  border: 1.5px solid var(--c-line);
  background: var(--c-primary-50);
  color: var(--c-ink);
  border-radius: 999px;
  padding: 11px 50px 11px 18px;
  font-family: inherit; font-size: .9rem;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.hdr-search input::placeholder { color: var(--c-muted); }
.hdr-search input:focus { outline: none; background: #fff; border-color: var(--c-primary); box-shadow: 0 0 0 4px rgba(20, 69, 110, .1); }
.hdr-search button {
  position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border-radius: 50%;
  border: 0; background: var(--c-primary); color: #fff;
  display: grid; place-items: center; cursor: pointer; font-size: .95rem;
  transition: background .15s ease;
}
.hdr-search button:hover { background: var(--c-primary-dark); }

/* Контакты в шапке */
.hdr-contacts { display: flex; align-items: center; gap: 22px; flex: 0 0 auto; }
.hdr-contact { display: flex; align-items: center; gap: 11px; color: var(--c-primary-darker); }
.hdr-contact__icon {
  width: 42px; height: 42px; border-radius: 12px;
  background: var(--c-accent-light); color: var(--c-accent-dark);
  display: grid; place-items: center; font-size: 1.1rem;
  transition: background .15s ease, color .15s ease;
}
.hdr-contact b { display: block; font-size: 1.02rem; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.hdr-contact small { display: block; font-size: .74rem; color: var(--c-muted); line-height: 1.3; white-space: nowrap; }
.hdr-contact:hover { color: var(--c-primary); }
.hdr-contact:hover .hdr-contact__icon { background: var(--c-accent); color: var(--c-primary-darker); }

.hdr-icon-btn, .nav-toggle {
  display: none;
  width: 44px; height: 44px; border-radius: 12px;
  border: 0; cursor: pointer;
  align-items: center; justify-content: center;
  font-size: 1.25rem;
}
.hdr-icon-btn { background: var(--c-primary-light); color: var(--c-primary); margin-left: auto; }
.nav-toggle { background: var(--c-primary); color: #fff; }
.nav-toggle:hover { background: var(--c-primary-dark); }

/* ---------- Навигация ---------- */
.main-nav {
  background: var(--c-primary-dark);
  position: sticky; top: 0; z-index: 60;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .04);
  transition: box-shadow .2s ease;
}
.main-nav.is-stuck { box-shadow: 0 8px 24px rgba(5, 23, 38, .28); }
.main-nav__head, .main-nav__foot, .nav-backdrop { display: none; }
.nav-list {
  display: flex; align-items: center; gap: 2px;
  list-style: none; margin: 0; padding: 0;
}
.nav-list a {
  position: relative;
  display: block;
  padding: 16px 15px;
  color: rgba(255, 255, 255, .86);
  font-size: .95rem;
  font-weight: 600;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}
.nav-list a::after {
  content: ""; position: absolute; left: 15px; right: 15px; bottom: 0;
  height: 3px; border-radius: 3px 3px 0 0; background: var(--c-accent);
  transform: scaleX(0); transition: transform .2s var(--ease);
}
.nav-list a:hover { color: #fff; background: rgba(255, 255, 255, .06); }
.nav-list a:hover::after { transform: scaleX(.5); }
.nav-list a.active { color: #fff; }
.nav-list a.active::after { transform: scaleX(1); }
.nav-list__cta-item { margin-left: auto; }
.nav-list a.nav-list__cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-accent);
  color: var(--c-primary-darker);
  border-radius: 999px;
  padding: 9px 20px;
  margin: 7px 0;
  font-weight: 800;
}
.nav-list a.nav-list__cta::after { display: none; }
.nav-list a.nav-list__cta:hover { background: var(--c-accent-hover); color: var(--c-primary-darker); }

@media (max-width: 1180px) {
  .hdr-contact:nth-child(2) { display: none; }
  .nav-list a { padding-left: 12px; padding-right: 12px; }
  .nav-list a::after { left: 12px; right: 12px; }
}
@media (max-width: 980px) {
  html { scroll-padding-top: 86px; }
  .site-header { position: sticky; top: 0; box-shadow: 0 4px 18px rgba(8, 33, 54, .08); }
  .header-top { gap: 12px; padding-top: 12px; padding-bottom: 12px; }
  .hdr-search, .hdr-contacts { display: none; }
  .hdr-icon-btn, .nav-toggle { display: inline-flex; }
  .brand { gap: 11px; }
  .brand__mark { width: 28px; height: 20px; }
  .brand__text { padding-left: 11px; }
  .brand__subtitle { font-size: .74rem; max-width: 260px; }

  .main-nav {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: min(88vw, 380px);
    z-index: 120;
    background: var(--c-primary-darker);
    transform: translateX(105%);
    transition: transform .3s var(--ease);
    overflow-y: auto;
    box-shadow: -20px 0 50px rgba(0, 0, 0, .35);
  }
  .main-nav.open { transform: translateX(0); }
  .main-nav .container { padding: 0; display: flex; flex-direction: column; min-height: 100%; }
  .main-nav__head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 18px 16px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: #fff; font-weight: 800; font-size: 1.05rem;
  }
  .nav-close {
    width: 42px; height: 42px; border-radius: 12px; border: 0; cursor: pointer;
    background: rgba(255, 255, 255, .08); color: #fff; font-size: 1.2rem;
    display: grid; place-items: center;
  }
  .nav-close:hover { background: rgba(255, 255, 255, .16); }
  .nav-list { flex-direction: column; align-items: stretch; padding: 12px; gap: 2px; }
  .nav-list a { border-radius: var(--radius-sm); padding: 13px 14px; font-size: 1rem; }
  .nav-list a::after { left: 0; right: auto; top: 10px; bottom: 10px; width: 3px; height: auto; border-radius: 0 3px 3px 0; transform: scaleY(0); }
  .nav-list a.active { background: rgba(255, 255, 255, .07); }
  .nav-list a.active::after { transform: scaleY(1); }
  .nav-list__cta-item { margin: 10px 0 0; }
  .nav-list a.nav-list__cta { display: flex; justify-content: center; margin: 0; padding: 13px 20px; }
  .main-nav__foot {
    display: flex; flex-direction: column; gap: 12px;
    margin-top: auto; padding: 20px 24px 28px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: .9rem; color: rgba(255, 255, 255, .75);
  }
  .main-nav__foot a, .main-nav__foot span { display: flex; align-items: center; gap: 10px; color: rgba(255, 255, 255, .85); }
  .main-nav__foot .ico { color: var(--c-accent); }
  .nav-backdrop {
    display: block; position: fixed; inset: 0; z-index: 110;
    background: rgba(5, 23, 38, .6);
    opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease;
  }
  .nav-backdrop.show { opacity: 1; visibility: visible; }
}
@media (max-width: 420px) {
  .brand__mark { display: none; }
  .brand__text { padding-left: 10px; }
}

/* ---------- Хлебные крошки ---------- */
.breadcrumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .85rem; color: var(--c-muted); margin-bottom: 18px; }
.breadcrumbs a { color: var(--c-muted); }
.breadcrumbs a:hover { color: var(--c-primary); }
.breadcrumbs .sep { opacity: .5; }
.breadcrumbs .current { color: var(--c-ink); font-weight: 600; }
.page-head .breadcrumbs, .search-hero .breadcrumbs { color: rgba(255, 255, 255, .62); }
.page-head .breadcrumbs a, .search-hero .breadcrumbs a { color: rgba(255, 255, 255, .72); font-weight: 400; }
.page-head .breadcrumbs a:hover, .search-hero .breadcrumbs a:hover { color: var(--c-accent-soft); }
.page-head .breadcrumbs .current, .search-hero .breadcrumbs .current { color: #fff; }

/* ---------- Кнопки ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  border: 0; border-radius: var(--radius-sm);
  padding: 12px 22px;
  font-family: inherit; font-size: .96rem; font-weight: 700;
  cursor: pointer; text-align: center; line-height: 1.3;
  transition: transform .14s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
}
.btn .ico { font-size: 1.05em; }
.btn:active { transform: translateY(1px); }
.btn--gold { background: var(--c-accent); color: var(--c-primary-darker); box-shadow: 0 6px 16px rgba(193, 154, 61, .28); }
.btn--gold:hover { background: var(--c-accent-hover); color: var(--c-primary-darker); box-shadow: 0 10px 24px rgba(193, 154, 61, .38); transform: translateY(-1px); }
.btn--green { background: var(--c-primary); color: #fff; box-shadow: 0 4px 14px rgba(20, 69, 110, .2); }
.btn--green:hover { background: var(--c-primary-dark); color: #fff; }
.btn--ghost { background: var(--c-primary-light); color: var(--c-primary-dark); }
.btn--ghost:hover { background: #d9e6f2; color: var(--c-primary-darker); }
.btn--outline { background: rgba(255, 255, 255, .04); color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .55); }
.btn--outline:hover { background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 2px #fff; color: #fff; }
.btn--line { background: #fff; color: var(--c-primary-dark); box-shadow: inset 0 0 0 1.5px var(--c-line); }
.btn--line:hover { color: var(--c-primary-darker); box-shadow: inset 0 0 0 1.5px var(--c-primary); }
.btn--sm { padding: 8px 15px; font-size: .87rem; }
.btn--lg { padding: 15px 28px; font-size: 1.02rem; }
.btn--block { width: 100%; }

/* ---------- Секции ---------- */
.section { padding: 64px 0; }
.section--alt { background: var(--c-white); }
.section--tint { background: var(--c-primary-50); }
.section--tight { padding-top: 40px; }
.section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 32px; flex-wrap: wrap; }
.section__head h2 { margin-bottom: 0; }
.section__head .subtitle { color: var(--c-muted); margin: 8px 0 0; font-size: .97rem; }
.section h2 { position: relative; padding-bottom: 14px; }
.section h2::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 56px; height: 3px; background: var(--c-accent); border-radius: 2px;
}
.section__head h2 { padding-bottom: 0; }
.section__head h2::after { display: none; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--c-accent-dark);
  font-weight: 800; font-size: .76rem;
  letter-spacing: .14em; text-transform: uppercase;
  margin-bottom: 10px;
}
.eyebrow::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.eyebrow--light { color: var(--c-accent-soft); }

/* ---------- Плитки ---------- */
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .tiles--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .tiles--3 { grid-template-columns: 1fr; } }
.tile {
  position: relative;
  display: flex; flex-direction: column; gap: 12px;
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  padding: 26px 26px 24px;
  box-shadow: var(--shadow-xs);
  color: var(--c-ink);
  overflow: hidden;
  transition: transform .2s var(--ease), box-shadow .2s ease, border-color .2s ease;
}
.tile::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, var(--c-primary), var(--c-accent));
  transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease);
}
.tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: #c9d6e3; color: var(--c-ink); }
.tile:hover::before { transform: scaleX(1); }
.tile__icon {
  width: 54px; height: 54px; border-radius: 15px;
  background: var(--c-primary-light);
  color: var(--c-primary);
  display: grid; place-items: center;
  font-size: 1.45rem;
  transition: background .2s ease, color .2s ease;
}
.tile:hover .tile__icon { background: var(--c-primary); color: #fff; }
.tile h3 { margin: 4px 0 0; font-size: 1.08rem; }
.tile p { margin: 0; color: var(--c-muted); font-size: .92rem; flex: 1; }
.tile__more { color: var(--c-primary); font-weight: 700; font-size: .88rem; display: inline-flex; gap: 8px; align-items: center; margin-top: 4px; }
.tile__more::after {
  content: ""; width: 1.1em; height: 1.1em; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .2s var(--ease);
}
.tile:hover .tile__more { color: var(--c-accent-dark); }
.tile:hover .tile__more::after { transform: translateX(4px); }

/* ---------- Новости ---------- */
.news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; }
.news-grid > .search-empty { grid-column: 1 / -1; }
.news-card {
  --t1: #1a5585; --t2: #082136;
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: var(--shadow-xs);
  transition: transform .2s var(--ease), box-shadow .2s ease;
}
.news-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.news-card__thumb, .news-card__media {
  position: relative; display: grid; place-items: center;
  height: 158px; overflow: hidden; color: #fff;
  background: radial-gradient(circle at 78% 18%, rgba(255, 255, 255, .16), transparent 46%), var(--dots), linear-gradient(140deg, var(--t1), var(--t2));
}
.news-card__media { height: auto; aspect-ratio: 16 / 9; background: var(--c-primary-darker); }
.news-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .5s var(--ease); }
.news-card:hover .news-card__media img { transform: scale(1.04); }
.news-card__thumb .big-icon {
  width: 76px; height: 76px; border-radius: 50%;
  display: grid; place-items: center; font-size: 2.1rem;
  background: rgba(255, 255, 255, .1);
  box-shadow: 0 0 0 10px rgba(255, 255, 255, .05), 0 0 0 22px rgba(255, 255, 255, .03);
  transition: transform .3s var(--ease);
}
.news-card:hover .big-icon { transform: scale(1.06) rotate(-4deg); }
.news-card[data-cat="contract"] { --t1: #a27c2a; --t2: #4a360b; }
.news-card[data-cat="service"] { --t1: #1d7476; --t2: #0b3436; }
.news-card[data-cat="events"] { --t1: #993232; --t2: #431010; }
.news-card[data-cat="law"] { --t1: #44596e; --t2: #18232e; }
.news-card[data-cat="vuz"] { --t1: #3a479a; --t2: #151b48; }
.news-card[data-cat="other"] { --t1: #2b6e4c; --t2: #0f3220; }
.news-card__cat {
  position: absolute; top: 12px; left: 12px;
  background: rgba(255, 255, 255, .94); color: var(--c-primary-dark);
  font-size: .7rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
  padding: 5px 11px; border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.news-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.news-card__date { color: var(--c-muted); font-size: .8rem; display: flex; align-items: center; gap: 7px; margin-bottom: 9px; }
.news-card__date::before {
  content: ""; width: 1.05em; height: 1.05em; background: var(--c-accent-dark);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
}
.news-card h3 { font-size: 1.04rem; margin-bottom: 9px; line-height: 1.32; }
.news-card h3 a { color: var(--c-primary-darker); }
.news-card h3 a:hover { color: var(--c-primary); }
.news-card p { font-size: .91rem; color: var(--c-muted); margin-bottom: 16px; flex: 1; }
.news-card .btn { align-self: flex-start; }
.news-card__full { border-top: 1px solid var(--c-line); margin: 0 0 16px; padding-top: 14px; font-size: .92rem; color: var(--c-ink); }
.news-card__full p { color: var(--c-ink); }
.news-card__full p:last-child { margin-bottom: 0; }
.news-card__full ul { margin-bottom: 12px; }
.news-card__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; }

/* Главная: ведущая новость + лента */
.news-feature { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.news-card--feature .news-card__body { padding: 24px 28px 28px; }
.news-card--feature h3 { font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
.news-card--feature p { font-size: .97rem; }
.news-side { display: flex; flex-direction: column; gap: 16px; }
.news-card--row { flex-direction: row; flex: 1; }
.news-card--row .news-card__thumb { width: 132px; height: auto; min-height: 132px; flex: 0 0 auto; }
.news-card--row .big-icon { width: 56px; height: 56px; font-size: 1.5rem; box-shadow: 0 0 0 8px rgba(255, 255, 255, .05); }
.news-card--row .news-card__body { padding: 16px 20px; justify-content: center; }
.news-card--row h3 { font-size: .98rem; margin-bottom: 6px; }
.news-card--row p { font-size: .87rem; margin: 0; flex: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-card__tag { font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--c-accent-dark); }
.news-card--row .news-card__date { margin-bottom: 4px; }
@media (max-width: 900px) { .news-feature { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
  .news-card--row .news-card__thumb { width: 92px; min-height: 0; }
  .news-card--row .big-icon { width: 46px; height: 46px; font-size: 1.25rem; }
  .news-card--row p { display: none; }
}

/* ---------- Лента «срочно» ---------- */
.ticker { background: var(--c-primary-darker); color: #fff; overflow: hidden; font-size: .86rem; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.ticker .container { display: flex; align-items: center; gap: 16px; padding-top: 9px; padding-bottom: 9px; }
.ticker__label {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px;
  background: var(--c-red); color: #fff;
  font-weight: 800; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase;
  padding: 4px 11px; border-radius: 6px;
}
.ticker__label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .25; } }
.ticker__track { overflow: hidden; white-space: nowrap; flex: 1; -webkit-mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); }
.ticker__inner { display: inline-block; white-space: nowrap; animation: tickerMove 55s linear infinite; }
.ticker:hover .ticker__inner { animation-play-state: paused; }
.ticker__inner a { color: rgba(255, 255, 255, .86); margin-right: 60px; }
.ticker__inner a:hover { color: var(--c-accent-soft); }
.ticker__inner .dot { color: var(--c-accent); margin-right: 10px; }
@keyframes tickerMove { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Герой (главная) ---------- */
.hero { position: relative; color: #fff; overflow: hidden; background: var(--c-navy-950); isolation: isolate; }
.hero__bg {
  position: absolute; inset: 0; z-index: -2;
  background: url("../img/cover-hero.jpg") center 32% / cover no-repeat;
}
.hero__overlay {
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(circle at 88% 12%, rgba(193, 154, 61, .16), transparent 38%),
    linear-gradient(98deg, rgba(5, 23, 38, .84) 0%, rgba(8, 33, 54, .68) 46%, rgba(8, 33, 54, .36) 100%);
}
.hero .container { max-width: 1340px; }
.hero__grid {
  display: grid; grid-template-columns: 150px minmax(0, 1.85fr) minmax(320px, .75fr);
  grid-template-areas: "star text gerb" "star text panel";
  gap: 18px 36px; align-items: center; padding: 56px 0 132px;
}
.hero__inner { grid-area: text; }
.hero__panel { grid-area: panel; align-self: start; }
.hero__emblem { display: block; height: auto; filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .45)); }
.hero__emblem--star { grid-area: star; width: 150px; align-self: center; filter: drop-shadow(0 10px 22px rgba(0, 0, 0, .55)); }
.hero__emblem--gerb { grid-area: gerb; width: 132px; justify-self: center; align-self: end; }
.hero__inner { max-width: 820px; }
.hero__tag {
  display: inline-flex; align-items: center; gap: 9px;
  background: rgba(193, 154, 61, .16);
  border: 1px solid rgba(193, 154, 61, .55);
  color: var(--c-accent-soft);
  border-radius: 999px;
  padding: 6px 15px;
  font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  margin-bottom: 22px;
}
.hero h1 { color: #fff; margin-bottom: 18px; font-size: clamp(1.8rem, 3.1vw, 2.45rem); line-height: 1.16; text-shadow: 0 2px 18px rgba(0, 0, 0, .3); }
.hero h1 .hero__line { display: block; }
.hero h1 .hero__line--districts { font-size: .74em; line-height: 1.25; margin: 4px 0 2px; }
@media (min-width: 761px) { .hero h1 .hero__line--districts { white-space: nowrap; } }
@media (max-width: 420px) { .hero h1 .hero__line--districts { font-size: .62em; } }
.hero h1 .hero__line--city { color: var(--c-accent-soft); white-space: nowrap; }
.hero p.lead { font-size: 1.1rem; color: rgba(255, 255, 255, .86); margin-bottom: 30px; max-width: 700px; }
.hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }

.hero__panel {
  background: rgba(8, 33, 54, .55);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--radius-lg);
  padding: 22px 18px 14px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .25);
}
.hero__panel-title { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent-soft); margin: 0 6px 10px; }
.quick-list { list-style: none; margin: 0; padding: 0; }
.quick-list li + li { border-top: 1px solid rgba(255, 255, 255, .08); }
.quick-list a {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 10px; border-radius: 12px; color: #fff;
  transition: background .15s ease;
}
.quick-list a:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.quick-list__icon {
  flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px;
  background: rgba(193, 154, 61, .16); color: var(--c-accent-soft);
  display: grid; place-items: center; font-size: 1.15rem;
  transition: background .15s ease, color .15s ease;
}
.quick-list a:hover .quick-list__icon { background: var(--c-accent); color: var(--c-primary-darker); }
.quick-list b { display: block; font-size: .95rem; line-height: 1.3; }
.quick-list small { display: block; font-size: .78rem; color: rgba(255, 255, 255, .66); line-height: 1.35; }
.quick-list .ico-chevron-right, .quick-list .ico-arrow-up-right { margin-left: auto; color: rgba(255, 255, 255, .45); transition: transform .15s ease, color .15s ease; }
.quick-list a:hover .ico-chevron-right, .quick-list a:hover .ico-arrow-up-right { color: var(--c-accent-soft); transform: translateX(3px); }

/* Факты под героем */
.facts { position: relative; z-index: 3; margin-top: -72px; }
.facts__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  background: var(--c-white); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg); border: 1px solid var(--c-line-soft);
  overflow: hidden;
}
.fact { display: flex; align-items: center; gap: 14px; padding: 22px 24px; color: var(--c-ink); position: relative; }
.fact + .fact::before { content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 1px; background: var(--c-line); }
a.fact:hover { background: var(--c-primary-50); color: var(--c-ink); }
.fact__icon {
  flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px;
  background: var(--c-primary-light); color: var(--c-primary);
  display: grid; place-items: center; font-size: 1.25rem;
}
.fact--accent .fact__icon { background: var(--c-accent); color: var(--c-primary-darker); }
.fact b { display: block; font-size: 1.05rem; color: var(--c-primary-darker); line-height: 1.25; white-space: nowrap; }
.fact b + span { display: block; font-size: .8rem; color: var(--c-muted); line-height: 1.35; margin-top: 2px; }
@media (max-width: 1080px) {
  .hero__grid {
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "star . gerb" "text text text" "panel panel panel";
    gap: 26px 20px; padding-bottom: 120px;
  }
  .hero__emblem--star { width: 104px; }
  .hero__emblem--gerb { width: 92px; align-self: center; }
  .hero__panel { max-width: 640px; }
  .facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fact:nth-child(3)::before { display: none; }
  .fact:nth-child(n+3) { border-top: 1px solid var(--c-line); }
}
@media (max-width: 560px) {
  .hero__grid { padding: 30px 0 104px; }
  .hero__emblem--star { width: 84px; }
  .hero__emblem--gerb { width: 76px; }
  .hero h1 { font-size: 1.62rem; }
  .hero p.lead { font-size: 1rem; }
  .hero__actions .btn { flex: 1 1 100%; }
  .facts__grid { grid-template-columns: 1fr; }
  .fact::before { display: none; }
  .fact + .fact { border-top: 1px solid var(--c-line); }
  .fact { padding: 16px 20px; }
}

/* ---------- Направления (главная) ---------- */
.section--directions { padding-top: 64px; }
.directions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.direction {
  --d: var(--c-primary); --d-dark: var(--c-primary-darker);
  position: relative; display: flex; flex-direction: column;
  background: var(--c-white); border: 1px solid var(--c-line); border-bottom: 4px solid var(--d);
  border-radius: var(--radius-lg); overflow: hidden; color: var(--c-ink);
  box-shadow: 0 10px 26px rgba(8, 33, 54, .1);
  transition: transform .18s ease, box-shadow .18s ease;
}
.direction:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(8, 33, 54, .2); color: var(--c-ink); }
.direction--kontrakt { --d: #1f5590; --d-dark: #0f2f57; }
.direction--bars { --d: #4a7a3f; --d-dark: #2a4a24; }
.direction--mog { --d: #b8291f; --d-dark: #7a1712; }
.direction--bvp { --d: #55627a; --d-dark: #2c3445; }
.direction--soc { --d: #1f8278; --d-dark: #0f4c46; }
.direction__head { position: relative; display: block; height: 176px; background: var(--d-dark); }
.direction__head img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.direction:hover .direction__head img { transform: scale(1.05); }
.direction__title {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 12px;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .45));
  color: #fff; display: flex; flex-direction: column; gap: 1px;
}
.direction__title h3 { margin: 0; color: #fff; font-size: 1.45rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; line-height: 1.1; text-shadow: 0 2px 8px rgba(0, 0, 0, .4); }
.direction__title h3::after { display: none; }
.direction__title small { font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .85); }
.direction__body { display: flex; flex-direction: column; gap: 12px; flex: 1 1 auto; padding: 16px 16px 16px; }
.direction__text { display: block; font-size: .88rem; color: var(--c-muted); line-height: 1.45; flex: 1 1 auto; }
.direction__more {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; align-self: stretch;
  padding: 9px 12px; border-radius: 10px; font-weight: 700; font-size: .88rem;
  color: #fff; background: var(--d); transition: background .18s ease;
}
.direction:hover .direction__more { background: var(--d-dark); }
@media (max-width: 1180px) { .directions { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .directions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .direction__title h3 { font-size: 1.2rem; } }
@media (max-width: 460px) { .directions { grid-template-columns: 1fr; } }

/* ---------- Страницы направлений (агитационные) ---------- */
.dp-progress { position: fixed; left: 0; right: 0; top: 0; height: 4px; z-index: 200; pointer-events: none; }
.dp-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--d), var(--c-accent)); transform: scaleX(0); transform-origin: left; }

.dp-hero {
  position: relative; overflow: hidden; isolation: isolate; color: #fff;
  background: linear-gradient(120deg, var(--d-dark) 0%, var(--d) 55%, var(--d-dark) 100%);
  padding: 24px 0 120px;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 64px), 0 100%);
}
.dp-hero__bg { position: absolute; inset: -4%; z-index: -3; background-size: cover; background-position: center; opacity: .2; filter: blur(1.5px) saturate(.9); animation: dpZoom 24s ease-in-out infinite alternate; }
.dp-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(circle at 80% 25%, rgba(255, 255, 255, .2), transparent 42%),
    repeating-linear-gradient(125deg, rgba(255, 255, 255, .045) 0 2px, transparent 2px 16px),
    linear-gradient(90deg, rgba(0, 0, 0, .5), transparent 70%);
}
.dp-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 64px; z-index: -1; background: linear-gradient(to top right, rgba(0, 0, 0, .25) 49.5%, transparent 50%); }
.dp-hero .breadcrumbs { color: rgba(255, 255, 255, .65); }
.dp-hero .breadcrumbs a { color: rgba(255, 255, 255, .78); font-weight: 400; }
.dp-hero .breadcrumbs .current { color: #fff; }
.dp-hero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 56px; align-items: center; padding-top: 34px; }
.dp-hero__text > * { animation: dpRise .8s var(--ease) both; }
.dp-hero__text > *:nth-child(2) { animation-delay: .08s; }
.dp-hero__text > *:nth-child(3) { animation-delay: .16s; }
.dp-hero__text > *:nth-child(4) { animation-delay: .24s; }
.dp-logo { display: block; width: 104px; height: 104px; border-radius: 50%; margin: 0 0 18px; border: 3px solid rgba(255, 255, 255, .85); box-shadow: 0 10px 26px rgba(0, 0, 0, .4); }
@media (max-width: 560px) { .dp-logo { width: 84px; height: 84px; } }
.dp-badge {
  display: inline-flex; align-items: center; gap: 10px; padding: 7px 16px; border-radius: 999px; margin-bottom: 22px;
  background: rgba(0, 0, 0, .3); border: 1px solid rgba(255, 255, 255, .35);
  font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
}
.dp-badge__dot { width: 9px; height: 9px; border-radius: 50%; background: #4ade80; animation: dpPulse 1.8s ease-out infinite; }
.dp-hero h1 {
  color: #fff; margin: 0 0 20px; font-size: clamp(2.3rem, 5.4vw, 4.3rem); line-height: .98; font-weight: 900;
  text-transform: uppercase; letter-spacing: -.015em; text-shadow: 0 4px 24px rgba(0, 0, 0, .45);
}
.dp-hero h1 em { font-style: normal; display: inline-block; margin-top: 6px; padding: 2px 14px 6px; color: var(--d-dark); background: var(--d-acc); text-shadow: none; transform: rotate(-1.5deg); box-shadow: 8px 8px 0 rgba(0, 0, 0, .25); }
.dp-hero__lead { font-size: 1.17rem; line-height: 1.55; color: rgba(255, 255, 255, .92); max-width: 620px; margin: 0 0 32px; }
.dp-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.dp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 17px 30px; border-radius: 14px;
  font-weight: 800; font-size: 1.05rem; letter-spacing: .01em; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.dp-btn .ico-arrow-right { transition: transform .15s ease; }
.dp-btn:hover .ico-arrow-right { transform: translateX(4px); }
.dp-btn--main { position: relative; overflow: hidden; background: var(--c-accent); color: var(--c-primary-darker) !important; box-shadow: 0 12px 30px rgba(0, 0, 0, .35); animation: dpGlow 2.6s ease-in-out infinite; }
.dp-btn--main::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent); transform: skewX(-20deg); animation: dpShine 3.6s ease-in-out infinite; }
.dp-btn--main:hover { background: var(--c-accent-hover); transform: translateY(-2px); }
.dp-btn--ghost { color: #fff !important; border: 2px solid rgba(255, 255, 255, .6); }
.dp-btn--ghost:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }

.dp-visual { position: relative; display: grid; place-items: center; min-height: 380px; animation: dpRise .9s .2s var(--ease) both; }
.dp-visual__photo {
  position: relative; width: 100%; max-width: 380px; border-radius: 22px; overflow: hidden; transform: rotate(2.5deg);
  border: 4px solid #fff; box-shadow: 0 30px 70px rgba(0, 0, 0, .5); animation: dpFloat 7s ease-in-out infinite;
}
.dp-visual__photo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, .45)); }
.dp-visual__plate { position: absolute; width: 100%; max-width: 380px; height: 420px; border-radius: 22px; background: var(--d-acc); opacity: .9; transform: rotate(-5deg) translate(-18px, 14px); }
.dp-visual__photo img { display: block; width: 100%; height: 440px; object-fit: cover; object-position: var(--pos, center); }
.dp-visual__photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; height: 8px; background: var(--tricolor); }
.dp-visual__tag {
  position: absolute; left: -22px; bottom: 44px; z-index: 3; padding: 12px 18px; border-radius: 12px; transform: rotate(-4deg);
  background: var(--c-accent); color: var(--c-primary-darker); font-weight: 900; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .02em;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .4);
}
.dp-visual__chip {
  position: absolute; right: -14px; top: 30px; z-index: 3; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px;
  background: #fff; color: var(--d-dark); font-weight: 800; font-size: .9rem; box-shadow: 0 12px 28px rgba(0, 0, 0, .35); animation: dpBob 4s ease-in-out infinite;
}
.dp-visual__chip .ico { color: var(--d); }
.dp-medal { position: relative; width: 320px; height: 320px; display: grid; place-items: center; }
.dp-medal::before, .dp-medal::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .35); animation: dpRing 3.2s ease-out infinite; }
.dp-medal::after { animation-delay: 1.6s; }
.dp-medal__orbit { position: absolute; inset: 14px; border-radius: 50%; border: 2px dashed rgba(255, 255, 255, .28); animation: dpSpin 30s linear infinite; }
.dp-medal__orbit::before { content: ""; position: absolute; top: -7px; left: 50%; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--d-acc); box-shadow: 0 0 16px var(--d-acc); }
.dp-medal__core {
  position: relative; width: 224px; height: 224px; border-radius: 50%; display: grid; place-items: center; font-size: 6.5rem; color: #fff;
  background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, .3), rgba(255, 255, 255, .06) 60%), var(--d);
  border: 6px solid var(--d-acc); box-shadow: 0 0 0 10px rgba(255, 255, 255, .08), 0 30px 60px rgba(0, 0, 0, .45);
  animation: dpFloat 6s ease-in-out infinite;
}

/* крупные цифры поверх шапки */
.dp-stats { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 18px; margin-top: -96px; position: relative; z-index: 3; }
.dp-stat {
  position: relative; overflow: hidden; background: var(--c-white); border-radius: var(--radius-lg); padding: 24px 24px 22px 24px;
  box-shadow: 0 22px 50px rgba(8, 33, 54, .18); border-top: 5px solid var(--d);
}
.dp-stat::after { content: ""; position: absolute; right: -30px; bottom: -30px; width: 110px; height: 110px; border-radius: 50%; background: var(--d); opacity: .07; }
.dp-stat a { color: var(--d-dark); font-weight: 700; }
.dp-stat b { display: block; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 900; line-height: 1.05; color: var(--d-dark); font-variant-numeric: tabular-nums; }
.dp-stat > span { display: block; margin-top: 8px; color: var(--c-muted); font-size: .93rem; line-height: 1.4; }

/* наклонная лента лозунгов */
.dp-ribbon { overflow: hidden; padding: 34px 0 10px; }
.dp-marquee { width: 104%; margin-left: -2%; transform: rotate(-1.6deg); background: var(--d-dark); color: #fff; box-shadow: 0 14px 30px rgba(0, 0, 0, .18); border-top: 4px solid var(--d-acc); border-bottom: 4px solid var(--d-acc); }
.dp-marquee__track { display: flex; width: max-content; animation: dpMarquee 30s linear infinite; }
.dp-marquee span { display: inline-flex; align-items: center; gap: 22px; padding: 16px 22px; font-weight: 900; font-size: 1.1rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.dp-marquee span::after { content: "★"; color: var(--d-acc); font-size: 1.2rem; }

/* заголовки секций */
.dp-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--d); margin-bottom: 10px; }
.dp-kicker::before { content: ""; width: 34px; height: 3px; background: var(--d); }
.dp-title { font-size: clamp(1.7rem, 3.2vw, 2.5rem); font-weight: 900; text-transform: uppercase; letter-spacing: -.005em; line-height: 1.08; margin-bottom: 10px; padding-bottom: 0; }
.dp-title::after { display: none; }
.dp-title em { font-style: normal; color: var(--d); }
.dp-sub { color: var(--c-muted); font-size: 1.05rem; max-width: 760px; margin: 0 0 32px; }

/* выгоды */
.dp-perks { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; counter-reset: dpp; }
.dp-perk {
  position: relative; overflow: hidden; isolation: isolate; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius-lg);
  padding: 28px 24px 26px; transition: transform .25s ease, box-shadow .25s ease, color .25s ease;
}
.dp-perk::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(140deg, var(--d), var(--d-dark)); opacity: 0; transition: opacity .3s ease; }
.dp-perk::after { counter-increment: dpp; content: "0" counter(dpp); position: absolute; right: 16px; top: 8px; font-size: 3.4rem; font-weight: 900; line-height: 1; color: var(--d); opacity: .1; transition: opacity .3s ease, color .3s ease; }
.dp-perk:hover { transform: translateY(-8px); box-shadow: 0 26px 50px rgba(8, 33, 54, .22); color: #fff; }
.dp-perk:hover::before { opacity: 1; }
.dp-perk:hover::after { color: #fff; opacity: .18; }
.dp-perk__icon { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; font-size: 1.65rem; color: #fff; background: linear-gradient(135deg, var(--d), var(--d-dark)); margin-bottom: 18px; box-shadow: 0 10px 22px rgba(0, 0, 0, .18); transition: transform .3s ease, background .3s ease; }
.dp-perk:hover .dp-perk__icon { transform: rotate(-8deg) scale(1.08); background: rgba(255, 255, 255, .18); }
.dp-perk h3 { font-size: 1.17rem; margin: 0 0 8px; transition: color .25s ease; }
.dp-perk p { margin: 0; color: var(--c-muted); font-size: .95rem; line-height: 1.5; transition: color .25s ease; }
.dp-perk:hover h3 { color: #fff; }
.dp-perk:hover p { color: rgba(255, 255, 255, .88); }

/* «Это для тебя, если…» */
.dp-fit { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 40px; align-items: center; }
.dp-fit__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.dp-fit__list li { display: flex; align-items: center; gap: 16px; padding: 16px 20px; background: var(--c-white); border: 1px solid var(--c-line); border-left: 5px solid var(--d); border-radius: 14px; font-weight: 600; font-size: 1.04rem; color: var(--c-ink); }
.dp-fit__list li::before { content: "✓"; flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--d); color: #fff; font-weight: 900; }
.dp-quote {
  position: relative; overflow: hidden; border-radius: 24px; padding: 76px 34px 50px; color: #fff;
  background: radial-gradient(circle at 100% 0, rgba(255, 255, 255, .2), transparent 50%), linear-gradient(140deg, var(--d), var(--d-dark));
  box-shadow: 0 24px 50px rgba(8, 33, 54, .25); rotate: 1.2deg;
}
.dp-quote::before { content: "«"; position: absolute; left: 22px; top: -30px; font-size: 8rem; font-weight: 900; line-height: 1; color: var(--d-acc); opacity: .35; }
.dp-quote::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: var(--tricolor); }
.dp-quote p { position: relative; margin: 0 0 14px; font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 900; line-height: 1.15; text-transform: uppercase; }
.dp-quote small { position: relative; color: rgba(255, 255, 255, .8); font-size: .9rem; font-weight: 600; }

/* шаги */
.dp-steps { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 18px; counter-reset: dps; position: relative; }
.dp-steps::before, .dp-steps::after { content: ""; position: absolute; left: calc(50% / var(--n, 4)); right: calc(50% / var(--n, 4)); top: 37px; height: 4px; border-radius: 4px; }
.dp-steps::before { background: var(--c-line); }
.dp-steps::after { background: linear-gradient(90deg, var(--d), var(--c-accent)); transform: scaleX(0); transform-origin: left; transition: transform 1.6s var(--ease) .2s; }
.dp-steps.is-drawn::after { transform: scaleX(1); }
.dp-step { position: relative; text-align: center; padding: 0 6px; }
.dp-step::before {
  counter-increment: dps; content: counter(dps); position: relative; z-index: 1; display: grid; place-items: center; margin: 0 auto 18px; width: 78px; height: 78px; border-radius: 50%;
  background: linear-gradient(140deg, var(--d), var(--d-dark)); color: #fff; font-size: 2rem; font-weight: 900; border: 6px solid var(--c-white); box-shadow: 0 0 0 3px var(--d), 0 14px 28px rgba(0, 0, 0, .2);
  transition: transform .25s ease;
}
.dp-step:hover::before { transform: scale(1.08) rotate(-6deg); }
.dp-step h3 { font-size: 1.12rem; margin: 0 0 6px; }
.dp-step p { margin: 0; color: var(--c-muted); font-size: .93rem; line-height: 1.45; }

/* призыв к действию */
.dp-cta {
  position: relative; overflow: hidden; isolation: isolate; color: #fff; border-radius: 28px; padding: 50px 48px;
  background: radial-gradient(circle at 90% 10%, rgba(255, 255, 255, .22), transparent 45%), repeating-linear-gradient(125deg, rgba(255, 255, 255, .04) 0 2px, transparent 2px 16px), linear-gradient(120deg, var(--d-dark), var(--d));
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 36px; align-items: center; box-shadow: 0 30px 60px rgba(8, 33, 54, .25);
}
.dp-cta::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: var(--tricolor); }
.dp-cta__star { position: absolute; right: -60px; top: -60px; z-index: -1; width: 300px; opacity: .1; animation: dpSpin 60s linear infinite; }
.dp-cta h2 { color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.6rem); font-weight: 900; text-transform: uppercase; line-height: 1.05; margin: 0 0 14px; padding: 0; }
.dp-cta h2::after { display: none; }
.dp-cta p { color: rgba(255, 255, 255, .9); margin: 0 0 24px; font-size: 1.07rem; }
.dp-phones { background: rgba(0, 0, 0, .28); border: 1px solid rgba(255, 255, 255, .22); border-radius: 18px; padding: 8px 22px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.dp-phones ul { margin: 0; padding: 0; }
.dp-phones li { list-style: none; display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; padding: 13px 0; }
.dp-phones li + li { border-top: 1px solid rgba(255, 255, 255, .14); }
.dp-phones span { color: rgba(255, 255, 255, .75); font-size: .9rem; }
.dp-phones a { color: #fff; font-weight: 900; font-size: 1.28rem; white-space: nowrap; }
.dp-phones a:hover { color: var(--d-acc); }
.dp-phones .phone-todo { font-size: 1.05rem; color: var(--c-red); }

/* другие направления */
.dp-others { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.dp-others a {
  position: relative; overflow: hidden; display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-radius: 16px; font-weight: 800; font-size: 1.05rem;
  color: #fff; background: linear-gradient(135deg, var(--d), var(--d-dark)); box-shadow: 0 10px 22px rgba(8, 33, 54, .15); transition: transform .2s ease, box-shadow .2s ease;
}
.dp-others a .ico { font-size: 1.4rem; }
.dp-others a::after { content: "→"; margin-left: auto; transition: transform .2s ease; }
.dp-others a:hover { transform: translateY(-4px); box-shadow: 0 18px 34px rgba(8, 33, 54, .25); color: #fff; }
.dp-others a:hover::after { transform: translateX(4px); }

.direction--kontrakt { --d-acc: #f0d9a0; }
.direction--bars { --d-acc: #d2dfa6; }
.direction--mog { --d-acc: #ffc2b0; }
.direction--bvp { --d-acc: #d3dbe8; }
.direction--soc { --d-acc: #a9e6dc; }

@keyframes dpZoom { from { transform: scale(1); } to { transform: scale(1.08) translateX(-1%); } }
@keyframes dpPulse { 0% { box-shadow: 0 0 0 0 rgba(74, 222, 128, .7); } 100% { box-shadow: 0 0 0 12px rgba(74, 222, 128, 0); } }
@keyframes dpGlow { 0%, 100% { box-shadow: 0 12px 30px rgba(0, 0, 0, .35), 0 0 0 0 rgba(240, 217, 160, .55); } 50% { box-shadow: 0 12px 30px rgba(0, 0, 0, .35), 0 0 0 12px rgba(240, 217, 160, 0); } }
@keyframes dpShine { 0%, 60% { left: -60%; } 100% { left: 130%; } }
@keyframes dpFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }
@keyframes dpBob { 0%, 100% { translate: 0 0; } 50% { translate: 0 8px; } }
@keyframes dpRing { 0% { transform: scale(.75); opacity: .9; } 100% { transform: scale(1.25); opacity: 0; } }
@keyframes dpSpin { to { transform: rotate(360deg); } }
@keyframes dpRise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes dpMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .dp-hero__bg, .dp-badge__dot, .dp-btn--main, .dp-btn--main::after, .dp-visual, .dp-visual__photo, .dp-visual__chip, .dp-medal::before, .dp-medal::after,
  .dp-medal__orbit, .dp-medal__core, .dp-marquee__track, .dp-hero__text > *, .dp-cta__star { animation: none; }
  .dp-steps::after { transform: scaleX(1); transition: none; }
}
@media (max-width: 1000px) {
  .dp-hero { padding-bottom: 116px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 36px), 0 100%); }
  .dp-hero__grid { grid-template-columns: 1fr; gap: 34px; }
  .dp-visual { min-height: 0; }
  .dp-visual__photo, .dp-visual__plate { max-width: 320px; }
  .dp-visual__photo img { height: 320px; }
  .dp-visual__plate { height: 320px; }
  .dp-medal { width: 230px; height: 230px; }
  .dp-medal__core { width: 164px; height: 164px; font-size: 4.6rem; }
  .dp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 30px; }
  .dp-steps::before, .dp-steps::after { display: none; }
  .dp-cta { grid-template-columns: 1fr; padding: 34px 24px 40px; }
  .dp-fit { grid-template-columns: 1fr; }
  .dp-others { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .dp-stats { grid-template-columns: 1fr; margin-top: -84px; gap: 12px; }
  .dp-steps { grid-template-columns: 1fr; }
  .dp-step { display: grid; grid-template-columns: 64px 1fr; text-align: left; column-gap: 16px; align-items: start; }
  .dp-step::before { grid-row: span 2; width: 60px; height: 60px; font-size: 1.5rem; margin: 0; border-width: 4px; }
  .dp-btn { flex: 1 1 100%; }
  .dp-visual__tag { left: 4px; }
  .dp-visual__chip { right: 4px; }
  .dp-quote { rotate: none; padding: 64px 24px 42px; }
  .dp-others { grid-template-columns: 1fr; }
}

/* ---------- Важные объявления ---------- */
.notice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.notice {
  --n: var(--c-primary); --n-bg: var(--c-primary-light);
  position: relative; background: var(--c-white);
  border: 1px solid var(--c-line); border-radius: var(--radius);
  padding: 24px 24px 22px; box-shadow: var(--shadow-xs);
  overflow: hidden;
}
.notice::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--n); }
.notice--red { --n: var(--c-red); --n-bg: var(--c-red-light); }
.notice--green { --n: var(--c-green); --n-bg: var(--c-green-light); }
.notice--gold { --n: var(--c-accent); --n-bg: var(--c-accent-light); }
.notice__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.notice__icon { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--n-bg); color: var(--n); font-size: 1.2rem; }
.notice h3 { margin: 0; font-size: 1.04rem; }
.notice p { margin: 0; font-size: .92rem; color: var(--c-muted); }
.notice p strong { color: var(--c-ink); }
@media (max-width: 960px) { .notice-grid { grid-template-columns: 1fr; } }

/* ---------- Оповещения ---------- */
.alert {
  display: flex; gap: 16px; align-items: flex-start;
  border-radius: var(--radius);
  padding: 18px 22px;
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-primary);
  background: var(--c-white);
  margin-bottom: 16px;
  box-shadow: var(--shadow-xs);
}
.alert__icon {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 11px;
  display: grid; place-items: center; font-size: 1.15rem;
  background: var(--c-primary-light); color: var(--c-primary);
}
.alert b { display: block; margin-bottom: 3px; color: var(--c-primary-darker); }
.alert p { margin: 0; font-size: .93rem; color: var(--c-muted); }
.alert p strong { color: var(--c-ink); }
.alert--red { border-left-color: var(--c-red); background: var(--c-red-light); border-color: #f2d6d2; }
.alert--red .alert__icon { background: #fbe0dc; color: var(--c-red); }
.alert--red b { color: #8f241d; }
.alert--gold { border-left-color: var(--c-accent); background: var(--c-accent-light); border-color: #efe0bb; }
.alert--gold .alert__icon { background: #f5e4b8; color: var(--c-accent-dark); }
.alert--gold b { color: #6e5011; }
.alert--green { border-left-color: var(--c-green); background: var(--c-green-light); border-color: #cfe6d9; }
.alert--green .alert__icon { background: #d8eee2; color: var(--c-green); }
.alert--green b { color: var(--c-green); }
.alert--blue { border-left-color: var(--c-primary); background: var(--c-primary-50); border-color: #d6e2ee; }
.alert--blue b { color: var(--c-primary-dark); }

/* ---------- Таблицы ---------- */
.table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--c-line); background: var(--c-white); box-shadow: var(--shadow-xs); }
table.data { width: 100%; border-collapse: collapse; font-size: .93rem; min-width: 620px; }
table.data th, table.data td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--c-line-soft); vertical-align: top; }
table.data tbody tr:last-child td { border-bottom: 0; }
table.data thead th { background: var(--c-primary-dark); color: #fff; font-weight: 700; font-size: .84rem; letter-spacing: .04em; text-transform: uppercase; }
table.data tbody tr:nth-child(even) { background: var(--c-primary-50); }
table.data tbody tr { transition: background .12s ease; }
table.data tbody tr:hover { background: var(--c-primary-light); }
table.data td:first-child { font-weight: 700; color: var(--c-primary-darker); }
table.data .num { text-align: center; white-space: nowrap; }
table.data td.num { font-size: 1.05rem; }

/* ---------- Аккордеон ---------- */
.accordion { border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-white); overflow: hidden; box-shadow: var(--shadow-xs); }
.accordion__item + .accordion__item { border-top: 1px solid var(--c-line-soft); }
.accordion__btn {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  background: none; border: 0;
  font-family: inherit; font-size: 1rem; font-weight: 700;
  color: var(--c-primary-darker);
  padding: 18px 22px;
  cursor: pointer; text-align: left;
  transition: background .15s ease, color .15s ease;
}
.accordion__btn:hover { background: var(--c-primary-50); }
.accordion__q { display: flex; align-items: center; gap: 14px; }
.accordion__q .h-ico { width: 36px; height: 36px; }
.accordion__btn .chev {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%;
  background: var(--c-primary-light); color: var(--c-primary);
  display: grid; place-items: center;
  transition: transform .25s var(--ease), background .25s ease, color .25s ease;
}
.accordion__btn .chev::before {
  content: ""; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.accordion__item.open .accordion__btn { color: var(--c-primary); }
.accordion__item.open .chev { transform: rotate(180deg); background: var(--c-accent); color: var(--c-primary-darker); }
.accordion__panel { max-height: 0; overflow: hidden; transition: max-height .32s var(--ease); }
.accordion__panel-inner { padding: 0 22px 22px; color: var(--c-ink); font-size: .95rem; }
.accordion__panel-inner p:last-child, .accordion__panel-inner ul:last-child { margin-bottom: 0; }

/* ---------- Шаги ---------- */
/* шаги выстроены в вертикальную ленту — подходит для любого их количества */
.steps { counter-reset: step; display: flex; flex-direction: column; gap: 14px; }
.step {
  counter-increment: step;
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  padding: 18px 24px 18px 88px;
  min-height: 84px;
  box-shadow: var(--shadow-xs);
  position: relative;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.step:hover { border-color: #c9d6e3; box-shadow: var(--shadow-sm); }
.step::before {
  content: counter(step, decimal-leading-zero);
  position: absolute; top: 18px; left: 20px;
  width: 48px; height: 48px; border-radius: 14px;
  background: var(--c-primary); color: #fff;
  display: grid; place-items: center;
  font-size: 1rem; font-weight: 800; letter-spacing: .02em;
  box-shadow: 0 6px 14px rgba(20, 69, 110, .22);
  transition: background .2s ease, color .2s ease;
}
/* пунктир от номера шага к номеру следующего: от низа значка (66px) до значка следующей карточки (+14px зазор +18px отступ) */
.step:not(:last-child)::after {
  content: ""; position: absolute; z-index: 1;
  left: 43px; top: 70px; height: calc(100% - 42px); width: 2px;
  background: repeating-linear-gradient(180deg, var(--c-accent) 0 5px, transparent 5px 9px);
}
.step:hover::before { background: var(--c-accent); color: var(--c-primary-darker); }
.step h3 { font-size: 1.02rem; margin: 2px 0 5px; }
.step p { font-size: .92rem; color: var(--c-muted); margin: 0; }
@media (max-width: 520px) {
  .step { padding: 16px 16px 16px 72px; }
  .step::before { left: 14px; top: 16px; width: 42px; height: 42px; font-size: .9rem; }
  .step:not(:last-child)::after { left: 34px; top: 62px; height: calc(100% - 36px); }
}

/* ---------- Формы ---------- */
.form-card { background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-sm); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 20px; }
.form-grid .full { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field label { font-weight: 700; font-size: .9rem; color: var(--c-primary-dark); }
.field label .req { color: var(--c-red); }
.field input, .field select, .field textarea {
  font-family: inherit; font-size: .97rem;
  border: 1.5px solid var(--c-line);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  background: #fbfcfe;
  color: var(--c-ink);
  width: 100%;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.field input:hover, .field select:hover, .field textarea:hover { border-color: #c5d1dd; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--c-primary);
  box-shadow: 0 0 0 4px rgba(20, 69, 110, .12);
  background: #fff;
}
.field textarea { resize: vertical; min-height: 130px; }
.field .hint { font-size: .8rem; color: var(--c-muted); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--c-red); background: #fdf6f5; }
.field .error-msg { font-size: .8rem; color: var(--c-red); font-weight: 600; }
.field .error-msg:empty { display: none; }
.checkbox-line { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: var(--c-muted); font-weight: 400 !important; }
.checkbox-line input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--c-primary); }
.form-note { font-size: .83rem; color: var(--c-muted); border-top: 1px dashed var(--c-line); padding-top: 14px; margin: 18px 0 0; }
@media (max-width: 760px) { .form-grid { grid-template-columns: 1fr; } .form-card { padding: 22px 18px; } }

/* ---------- Уведомления формы ---------- */
.flash { display: none; border-radius: var(--radius-sm); padding: 14px 18px; margin-bottom: 18px; font-weight: 600; font-size: .95rem; }
.flash.show { display: block; animation: flashIn .3s ease; }
@keyframes flashIn { from { opacity: 0; transform: translateY(-6px); } }
.flash--ok { background: #ecf7f0; color: #1b5e3a; border: 1px solid #c2e2ce; }
.flash--err { background: #fdecea; color: #8f2b1e; border: 1px solid #f2c6bf; }

/* ---------- Контакты ---------- */
.contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: 20px; }
.contact-card {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow-xs);
  display: flex; gap: 16px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.contact-card:hover { border-color: #c9d6e3; box-shadow: var(--shadow-sm); }
.contact-card__icon {
  flex: 0 0 auto;
  width: 46px; height: 46px; border-radius: 13px;
  background: var(--c-primary-light); color: var(--c-primary);
  display: grid; place-items: center; font-size: 1.2rem;
}
.contact-card h3 { font-size: .74rem; text-transform: uppercase; letter-spacing: .09em; color: var(--c-muted); margin: 3px 0 7px; line-height: 1.35; }
.contact-card p, .contact-card a { margin: 0 0 4px; font-weight: 700; color: var(--c-primary-darker); font-size: 1rem; word-break: break-word; }
.contact-card a:hover { color: var(--c-primary); }
.contact-card .note { display: block; font-weight: 400; color: var(--c-muted); font-size: .84rem; line-height: 1.45; }
.contact-card--phones > div { flex: 1 1 auto; min-width: 0; }
.phone-list { list-style: none; margin: 0; padding: 0; }
.phone-list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 12px; padding: 6px 0; }
.phone-list li + li { border-top: 1px dashed var(--c-line); }
.phone-list li > span:first-child { font-size: .86rem; color: var(--c-muted); }
.phone-list a { margin: 0; white-space: nowrap; }
.phone-todo { font-weight: 700; color: var(--c-red); background: var(--c-red-light); border: 1px dashed var(--c-red); border-radius: 6px; padding: 0 6px; white-space: nowrap; }

/* Горячие линии (главная): акцентная карточка */
.hotlines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.hotline-main {
  grid-row: span 2;
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between; gap: 24px;
  border-radius: var(--radius-lg); padding: 30px;
  color: #fff;
  background: radial-gradient(circle at 90% 8%, rgba(193, 154, 61, .28), transparent 42%), var(--dots), linear-gradient(150deg, var(--c-primary), var(--c-primary-darker));
  box-shadow: var(--shadow-md);
}
.hotline-main__icon { width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center; font-size: 1.5rem; background: rgba(255, 255, 255, .1); color: var(--c-accent-soft); }
.hotline-main h3 { color: rgba(255, 255, 255, .78); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; margin: 18px 0 6px; }
.hotline-main__num { display: block; font-size: clamp(3.2rem, 6vw, 4.4rem); font-weight: 800; line-height: 1; color: #fff; letter-spacing: -.02em; }
.hotline-main__num:hover { color: var(--c-accent-soft); }
.hotline-main p { color: rgba(255, 255, 255, .8); margin: 12px 0 0; font-size: .93rem; }
@media (max-width: 960px) { .hotlines { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hotline-main { grid-row: auto; grid-column: 1 / -1; } }
@media (max-width: 620px) { .hotlines { grid-template-columns: 1fr; } }

/* ---------- Карта ---------- */
.map-block { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--c-line); box-shadow: var(--shadow-sm); background: var(--c-primary-light); }
.map-block iframe { width: 100%; height: 420px; border: 0; display: block; }

/* ---------- Двухколоночный макет ---------- */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 34px; align-items: start; }
.layout__side { position: sticky; top: 76px; display: flex; flex-direction: column; gap: 20px; }
.layout > * { min-width: 0; }
@media (max-width: 1080px) { .layout { grid-template-columns: minmax(0, 1fr); } .layout__side { position: static; } }

/* ---------- Боковые панели ---------- */
.side-panel { background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-xs); overflow: hidden; }
.side-panel__head {
  color: var(--c-primary-darker);
  border-bottom: 1px solid var(--c-line-soft);
  padding: 15px 18px; font-weight: 800; font-size: .95rem;
  display: flex; align-items: center; gap: 10px;
  background: linear-gradient(180deg, var(--c-primary-50), #fff);
}
.side-panel__head .ico { color: var(--c-accent-dark); font-size: 1.1rem; }
.side-panel__body { padding: 14px 18px 16px; font-size: .9rem; }
.side-panel__body ul { list-style: none; padding: 0; margin: 0; }
.side-panel__body li { padding: 9px 0; border-bottom: 1px solid var(--c-line-soft); display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.side-panel__body li:last-child { border-bottom: 0; }
.side-panel__body li span:first-child { color: var(--c-muted); }
.side-panel__body li span:first-child a { font-weight: 600; }
.side-panel__body li b { color: var(--c-primary-darker); text-align: right; }
.side-panel__body p { color: var(--c-ink); }
.side-panel--accent { border: 0; background: radial-gradient(circle at 100% 0, rgba(193, 154, 61, .25), transparent 50%), linear-gradient(150deg, var(--c-primary), var(--c-primary-darker)); color: #fff; }
.side-panel--accent .side-panel__head { background: none; color: #fff; border-color: rgba(255, 255, 255, .12); }
.side-panel--accent .side-panel__head .ico { color: var(--c-accent-soft); }
.side-panel--accent .side-panel__body p, .side-panel--accent .side-panel__body { color: rgba(255, 255, 255, .85); }
.side-panel--accent a { color: #fff; }
.side-panel--accent a:hover { color: var(--c-accent-soft); }

/* ---------- Счётчик призыва ---------- */
.countdown {
  position: relative; overflow: hidden;
  background: radial-gradient(circle at 95% 0, rgba(193, 154, 61, .25), transparent 40%), var(--dots), linear-gradient(120deg, var(--c-primary-darker), var(--c-primary));
  border-radius: var(--radius-lg);
  color: #fff;
  padding: 34px 36px;
  display: flex; flex-wrap: wrap; gap: 26px 32px; align-items: center;
  box-shadow: var(--shadow-md);
}
.countdown__text { flex: 1 1 340px; }
.countdown__text h2 { color: #fff; margin-bottom: 8px; padding-bottom: 0; }
.countdown__text h2::after { display: none; }
.countdown__text p { margin: 0; color: rgba(255, 255, 255, .8); font-size: .94rem; }
.countdown__digits { display: flex; gap: 12px; }
.countdown__cell {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px;
  min-width: 84px; padding: 14px 8px 12px; text-align: center;
}
.countdown__cell b { display: block; font-size: 2rem; line-height: 1.05; color: var(--c-accent-soft); font-variant-numeric: tabular-nums; }
.countdown__cell span { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(255, 255, 255, .7); }
.countdown__progress { flex: 1 1 100%; }
.countdown__bar { height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.countdown__bar span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--c-accent), var(--c-accent-soft)); transition: width 1s var(--ease); }
.countdown__meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 9px; font-size: .82rem; color: rgba(255, 255, 255, .72); }
.countdown__meta b { color: #fff; }
@media (max-width: 620px) {
  .countdown { padding: 26px 20px; }
  .countdown__digits { width: 100%; gap: 8px; }
  .countdown__cell { flex: 1; min-width: 0; }
  .countdown__cell b { font-size: 1.55rem; }
}

/* ---------- Поисковая строка ---------- */
.search-bar { display: flex; gap: 10px; max-width: 640px; position: relative; }
.search-bar input {
  flex: 1; min-width: 0;
  border: 1.5px solid var(--c-line);
  border-radius: 999px;
  padding: 14px 22px;
  font-family: inherit; font-size: .97rem;
  background: var(--c-white);
  box-shadow: var(--shadow-xs);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.search-bar input:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 4px rgba(20, 69, 110, .12); }
.search-bar .btn { border-radius: 999px; }
.search-bar--icon::before {
  content: ""; position: absolute; left: 20px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; background: var(--c-muted); pointer-events: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.search-bar--icon input { padding-left: 50px; }

/* ---------- Фишки-фильтры ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 26px; }
.chip {
  border: 1.5px solid var(--c-line);
  background: var(--c-white);
  color: var(--c-primary-dark);
  font-family: inherit; font-size: .87rem; font-weight: 600;
  padding: 8px 17px; border-radius: 999px; cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.chip:hover { border-color: var(--c-primary); }
.chip.active { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }

/* ---------- Инфо-карточки ---------- */
.info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.info-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .info-grid--3 { grid-template-columns: 1fr; } }
.info-card {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: var(--shadow-xs);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s var(--ease);
}
.info-card:hover { border-color: #c9d6e3; box-shadow: var(--shadow-sm); }
.info-card h3 { display: flex; align-items: center; gap: 13px; margin-bottom: 12px; font-size: 1.06rem; }
.info-card p, .info-card li { font-size: .93rem; }
.info-card p { color: var(--c-muted); }
.info-card li { margin-bottom: 4px; }
.info-card ul { margin-bottom: 0; }
.info-card p:last-child { margin-bottom: 0; }
.h-ico {
  flex: 0 0 auto;
  width: 42px; height: 42px; border-radius: 12px;
  background: var(--c-accent-light); color: var(--c-accent-dark);
  display: inline-grid; place-items: center; font-size: 1.12rem;
}

/* ---------- Заголовок страницы ---------- */
.page-head {
  background: radial-gradient(circle at 92% -10%, rgba(193, 154, 61, .24), transparent 40%), var(--dots), linear-gradient(120deg, var(--c-navy-950) 0%, var(--c-primary-dark) 60%, #17496f 100%);
  color: #fff;
  padding: 30px 0 46px;
  position: relative;
  overflow: hidden;
}
.page-head::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: linear-gradient(90deg, var(--c-accent) 0 64px, transparent 64px);
  max-width: var(--container); margin: 0 auto;
}
.page-head__row { display: flex; align-items: center; gap: 30px; justify-content: space-between; }
.page-head h1 { color: #fff; margin-bottom: 12px; }
.page-head p { margin: 0; color: rgba(255, 255, 255, .84); max-width: 780px; font-size: 1.04rem; }
.page-head a { color: var(--c-accent-soft); font-weight: 700; }
.page-head a:hover { color: #fff; }
.page-head__icon {
  flex: 0 0 auto; width: 104px; height: 104px; border-radius: 28px;
  display: grid; place-items: center; font-size: 3rem;
  color: var(--c-accent-soft);
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 0 0 14px rgba(255, 255, 255, .025);
  transform: rotate(-4deg);
}
@media (max-width: 760px) { .page-head__icon { display: none; } .page-head { padding: 22px 0 34px; } .page-head p { font-size: .97rem; } }

/* ---------- Постеры ---------- */
.poster-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 24px; align-items: start; }
.poster { position: relative; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-md); border: 1px solid var(--c-line); background: var(--c-white); margin: 0; }
.poster img { width: 100%; height: auto; }
.poster figcaption { padding: 16px 20px; font-size: .9rem; color: var(--c-muted); background: var(--c-white); }
.poster figcaption b { color: var(--c-primary-darker); }

/* ---------- Агит-баннер ---------- */
.cta-banner {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: radial-gradient(circle at 70% 120%, rgba(193, 154, 61, .25), transparent 45%), var(--dots), linear-gradient(115deg, var(--c-navy-950) 0%, var(--c-primary-dark) 55%, #1c527c 100%);
  color: #fff;
  padding: 46px 48px;
  box-shadow: var(--shadow-lg);
  display: flex;
  gap: 40px;
  align-items: center;
  flex-wrap: wrap;
}
.cta-banner__content { flex: 1 1 440px; position: relative; z-index: 1; }
.cta-banner .eyebrow { color: var(--c-accent-soft); }
.cta-banner h2 { color: #fff; padding-bottom: 0; font-size: clamp(1.5rem, 2.8vw, 2.1rem); }
.cta-banner h2::after { display: none; }
.cta-banner p { color: rgba(255, 255, 255, .85); }
.cta-banner__note { display: flex; gap: 10px; align-items: flex-start; font-size: .93rem; padding: 10px 14px; border-radius: 12px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); }
.cta-banner__note .ico { color: var(--c-accent-soft); margin-top: 3px; flex: 0 0 auto; }
.cta-banner a:not(.btn) { color: var(--c-accent-soft); font-weight: 700; }
.cta-banner a:not(.btn):hover { color: #fff; }
.cta-banner__poster { flex: 0 1 300px; position: relative; z-index: 1; display: flex; justify-content: center; }
.cta-banner__poster img {
  width: auto;
  max-width: 100%;
  max-height: 360px;
  border-radius: var(--radius-sm);
  box-shadow: 0 24px 48px rgba(0, 0, 0, .4);
  object-fit: contain;
  transition: transform .4s var(--ease);
}
.cta-banner__poster a:hover img { transform: translateY(-4px) rotate(-1deg); }
.stat-chips { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 26px; }
.stat-chip {
  padding: 12px 16px; border-radius: 14px;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14);
  min-width: 150px;
}
.stat-chip b { display: block; font-size: 1.3rem; color: var(--c-accent-soft); line-height: 1.15; white-space: nowrap; }
.stat-chip > span { font-size: .78rem; color: rgba(255, 255, 255, .72); }
@media (max-width: 700px) {
  .cta-banner { padding: 30px 22px; gap: 26px; }
  .cta-banner__poster img { max-height: 280px; }
  .stat-chip { flex: 1 1 140px; min-width: 0; }
}

/* ---------- Прокрутка вверх ---------- */
.to-top {
  position: fixed; right: 24px; bottom: 24px;
  width: 50px; height: 50px; border-radius: 15px;
  border: 0; background: var(--c-primary); color: #fff;
  font-size: 1.2rem; cursor: pointer;
  box-shadow: var(--shadow-md);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease, background .15s ease;
  z-index: 90; display: grid; place-items: center;
}
.to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: var(--c-accent); color: var(--c-primary-darker); }
body.has-cookie .to-top { bottom: 96px; }

/* ---------- Модальное окно ---------- */
.modal { position: fixed; inset: 0; z-index: 200; background: rgba(5, 23, 38, .78); display: none; align-items: center; justify-content: center; padding: 24px; }
.modal.open { display: flex; animation: modalFade .2s ease; }
@keyframes modalFade { from { opacity: 0; } }
.modal__box { background: var(--c-white); border-radius: var(--radius-lg); max-width: 620px; width: 100%; overflow: hidden; box-shadow: var(--shadow-lg); position: relative; animation: modalUp .25s var(--ease); }
@keyframes modalUp { from { transform: translateY(14px); } }
.modal__close {
  position: absolute; top: 14px; right: 14px;
  width: 40px; height: 40px; border-radius: 12px;
  border: 0; background: var(--c-primary-light); color: var(--c-primary-dark);
  font-size: 1.05rem; cursor: pointer; display: grid; place-items: center;
}
.modal__close:hover { background: var(--c-red); color: #fff; }
.modal__body { padding: 28px 30px; display: flex; gap: 16px; align-items: flex-start; }
.err-body { flex-direction: column; align-items: stretch; gap: 10px; }
.err-body h3 { display: flex; align-items: center; gap: 12px; padding-right: 40px; }
.err-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.err-body .field { margin-bottom: 6px; }

/* ---------- Оглавление ---------- */
.toc {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  padding: 20px 26px 16px;
  box-shadow: var(--shadow-sm);
  margin: -26px 0 0;
  position: relative; z-index: 2;
}
.toc__title { display: flex; align-items: center; gap: 10px; font-weight: 800; color: var(--c-primary-darker); margin-bottom: 12px; font-size: .95rem; }
.toc__title .ico { color: var(--c-accent-dark); }
.toc__list { columns: 3; column-gap: 34px; margin: 0; padding: 0; list-style: none; counter-reset: toc; font-size: .93rem; }
.toc__list li { counter-increment: toc; margin-bottom: 8px; break-inside: avoid; display: flex; gap: 10px; }
.toc__list li::before { content: counter(toc, decimal-leading-zero); color: var(--c-accent-dark); font-weight: 800; font-size: .8rem; padding-top: 2px; font-variant-numeric: tabular-nums; }
.toc__list a { color: var(--c-primary); }
.toc__list a:hover { color: var(--c-accent-dark); text-decoration: underline; }
@media (max-width: 980px) { .toc__list { columns: 2; } }
@media (max-width: 640px) { .toc__list { columns: 1; } }

/* ---------- Уведомление о cookie ---------- */
.cookie-bar {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 150;
  max-width: 980px; margin: 0 auto;
  background: var(--c-primary-darker); color: #fff;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: var(--radius);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
  animation: cookieIn .35s var(--ease);
}
@keyframes cookieIn { from { transform: translateY(140%); } }
.cookie-bar .container { display: flex; align-items: center; gap: 18px; padding: 14px 20px; flex-wrap: wrap; max-width: none; }
.cookie-bar p { margin: 0; font-size: .86rem; color: rgba(255, 255, 255, .85); flex: 1 1 380px; }
.cookie-bar a { color: var(--c-accent-soft); }

/* ---------- Результаты поиска ---------- */
.search-hero { background: radial-gradient(circle at 92% -10%, rgba(193, 154, 61, .24), transparent 40%), var(--dots), linear-gradient(120deg, var(--c-navy-950), var(--c-primary-dark)); color: #fff; padding: 30px 0 46px; }
.search-hero h1 { color: #fff; margin-bottom: 22px; }
.search-hero .search-bar { max-width: 780px; }
.search-hero .search-bar input { border: 0; padding: 17px 24px 17px 52px; font-size: 1.05rem; box-shadow: 0 10px 30px rgba(0, 0, 0, .2); }
.search-hero .search-bar .btn { padding: 0 30px; }
.search-meta { color: var(--c-muted); font-size: .9rem; margin-bottom: 18px; }
.search-hints { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 18px; font-size: .87rem; color: rgba(255, 255, 255, .75); }
.search-hints button {
  border: 1px solid rgba(255, 255, 255, .3);
  background: rgba(255, 255, 255, .07);
  color: #fff; font-family: inherit; font-size: .83rem;
  padding: 6px 15px; border-radius: 999px; cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.search-hints button:hover { background: var(--c-accent); color: var(--c-primary-darker); border-color: var(--c-accent); }
.search-results { display: flex; flex-direction: column; gap: 14px; }
.search-result {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-primary);
  border-radius: var(--radius);
  padding: 18px 22px;
  box-shadow: var(--shadow-xs);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.search-result:hover { transform: translateX(3px); box-shadow: var(--shadow-md); border-left-color: var(--c-accent); }
.search-result__cat { font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; color: var(--c-accent-dark); font-weight: 800; }
.search-result h3 { margin: 5px 0 7px; font-size: 1.06rem; }
.search-result h3 a { color: var(--c-primary-darker); }
.search-result h3 a:hover { color: var(--c-primary); }
.search-result p { margin: 0; font-size: .93rem; color: var(--c-muted); }
mark { background: var(--c-accent-soft); color: var(--c-primary-darker); padding: 0 3px; border-radius: 3px; }

/* ---------- Карта сайта ---------- */
.sitemap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.sitemap-col {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  padding: 24px 26px;
  box-shadow: var(--shadow-xs);
}
.sitemap-col h3 { display: flex; align-items: center; gap: 12px; font-size: 1.04rem; margin-bottom: 12px; }
.sitemap-col ul { list-style: none; margin: 0; padding: 0; font-size: .93rem; }
.sitemap-col li { padding: 8px 0; border-bottom: 1px solid var(--c-line-soft); }
.sitemap-col li:last-child { border-bottom: 0; }

/* ---------- Печатная памятка ---------- */
.pamyatka { background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 40px 44px; position: relative; overflow: hidden; }
.pamyatka::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--tricolor); }
.pamyatka__head { display: flex; gap: 18px; align-items: center; border-bottom: 3px solid var(--c-primary); padding-bottom: 20px; margin-bottom: 26px; }
.pamyatka__head h1 { font-size: 1.55rem; margin: 0 0 5px; }
.pamyatka__head p { margin: 0; font-size: .9rem; color: var(--c-muted); }
.pamyatka__mark {
  flex: 0 0 auto; width: 64px; height: 64px; border-radius: 18px;
  background: var(--c-primary); color: var(--c-accent-soft);
  display: grid; place-items: center; font-size: 1.9rem;
}
.pamyatka__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.pamyatka h3 { font-size: 1rem; border-left: 4px solid var(--c-accent); padding-left: 11px; margin-bottom: 10px; }
.pamyatka ol, .pamyatka ul { font-size: .93rem; padding-left: 1.3em; }
.pamyatka li { margin-bottom: 6px; }
.pamyatka__note { margin-top: 24px; border: 2px dashed var(--c-accent); background: var(--c-accent-light); border-radius: var(--radius-sm); padding: 15px 20px; font-size: .9rem; }
.pamyatka__contact { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; font-size: .93rem; }
.pamyatka__contact span { display: inline-flex; align-items: center; gap: 9px; }
.pamyatka__contact .ico { color: var(--c-accent-dark); }
@media (max-width: 760px) { .pamyatka__grid { grid-template-columns: 1fr; } .pamyatka { padding: 28px 20px; } }

/* ---------- Подвал ---------- */
.site-footer { background: var(--c-navy-950); color: rgba(255, 255, 255, .74); margin-top: auto; font-size: .9rem; }
.footer-cta { background: var(--dots), linear-gradient(100deg, var(--c-primary-dark), var(--c-primary)); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.footer-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 18px 30px; flex-wrap: wrap; padding-top: 30px; padding-bottom: 30px; }
.footer-cta__text { display: flex; align-items: center; gap: 18px; flex: 1 1 420px; min-width: 0; }
.footer-cta__icon { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; font-size: 1.5rem; background: rgba(193, 154, 61, .18); color: var(--c-accent-soft); }
.footer-cta__text b { display: block; color: #fff; font-size: 1.25rem; line-height: 1.25; }
.footer-cta__text span { color: rgba(255, 255, 255, .78); font-size: .93rem; }
.footer-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1.15fr 1.1fr; gap: 38px; padding: 52px 0 38px; }
.footer-grid h4 { color: #fff; font-size: .82rem; margin-bottom: 18px; letter-spacing: .12em; text-transform: uppercase; display: flex; align-items: center; gap: 10px; }
.footer-grid h4::before { content: ""; width: 18px; height: 2px; background: var(--c-accent); border-radius: 2px; }
.footer-grid ul { list-style: none; margin: 0; padding: 0; }
.footer-grid li { margin-bottom: 10px; }
.footer-grid a { color: rgba(255, 255, 255, .76); }
.footer-grid a:hover { color: var(--c-accent-soft); }
.footer-links a { display: inline-flex; align-items: center; gap: 6px; }
.footer-links .ico { font-size: .85em; opacity: .55; }
.footer-brand .brand { display: inline-flex; }
.footer-brand .brand__mark { box-shadow: 0 3px 10px rgba(0, 0, 0, .3); }
.footer-brand .brand__title { color: #fff; font-size: 1.12rem; }
.footer-brand .brand__subtitle { color: var(--c-accent-soft); font-size: .8rem; }
.footer-brand p { margin: 18px 0 0; font-size: .86rem; color: rgba(255, 255, 255, .6); max-width: 340px; }
.footer-note { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--radius-sm); background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .78) !important; }
.footer-note .ico { color: #5fbf8b; margin-top: 2px; }
.footer-contact li { display: flex; gap: 11px; align-items: flex-start; }
.footer-contact .ico { color: var(--c-accent); margin-top: 3px; }
.footer-contact a { color: #fff; font-weight: 700; }
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 20px 0; display: flex; justify-content: space-between; align-items: center; gap: 10px 24px; flex-wrap: wrap;
  font-size: .8rem; color: rgba(255, 255, 255, .5);
}
.footer-bottom__links { display: flex; gap: 6px 18px; flex-wrap: wrap; }
.footer-bottom a { color: rgba(255, 255, 255, .62); }
.footer-bottom a:hover { color: var(--c-accent-soft); }
.footer-hint { margin: 0; padding: 0 0 22px; font-size: .78rem; color: rgba(255, 255, 255, .45); }
.footer-hint a { color: rgba(255, 255, 255, .62); text-decoration: underline; text-underline-offset: 2px; }
.footer-hint a:hover { color: var(--c-accent-soft); }
@media (max-width: 1080px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) {
  .footer-grid { grid-template-columns: 1fr; gap: 30px; padding-top: 40px; }
  .footer-cta__actions, .footer-cta__actions .btn { width: 100%; }
  .footer-cta__icon { display: none; }
}

/* ---------- Страница 404 ---------- */
.error-page { text-align: center; padding: 80px 0 90px; }
.error-page__code {
  display: block; font-size: clamp(5rem, 16vw, 9rem); font-weight: 800; line-height: 1;
  letter-spacing: -.04em; color: var(--c-primary-darker);
  background: linear-gradient(120deg, var(--c-primary), var(--c-accent)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.error-page h1 { margin: 12px 0 10px; }
.error-page p { color: var(--c-muted); max-width: 520px; margin: 0 auto 26px; }
.error-page .hero__actions { justify-content: center; }

/* ---------- Утилиты ---------- */
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; }
.mt-1 { margin-top: 10px; } .mb-1 { margin-bottom: 10px; }
.mt-2 { margin-top: 20px; } .mb-2 { margin-bottom: 20px; }
.mt-3 { margin-top: 32px; } .mb-3 { margin-bottom: 36px; }
.center { text-align: center; }
.muted { color: var(--c-muted); }
.small { font-size: .86rem; }
.divider { height: 1px; background: var(--c-line); margin: 40px 0; }
.hidden { display: none !important; }
.filter-empty { padding: 10px 0; display: flex; align-items: center; justify-content: center; gap: 10px; }
.filter-empty .ico { font-size: 1.3rem; color: var(--c-accent-dark); }

/* ---------- Появление при прокрутке ---------- */
.has-reveal .reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.has-reveal .reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .has-reveal .reveal { opacity: 1; transform: none; }
}

/* ---------- Адаптив ---------- */
@media (max-width: 620px) {
  .container { padding: 0 16px; }
  .section { padding: 46px 0; }
  .section__head { margin-bottom: 24px; }
  .utility-bar { font-size: .78rem; }
  .utility-bar .container { gap: 14px; }
  .to-top { right: 16px; bottom: 16px; width: 46px; height: 46px; }
  .pamyatka__mark { width: 52px; height: 52px; font-size: 1.5rem; }
  .alert { padding: 16px; gap: 12px; }
  .contact-card { padding: 18px; }
}

/* ---------- Живой статус «открыто / закрыто» ---------- */
.live-badge {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: .82rem; font-weight: 700; line-height: 1.3;
}
.live-badge {
  padding: 7px 15px; border-radius: 999px; margin-bottom: 20px;
  background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2); color: #fff;
}
.live-badge__dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: var(--c-accent); }
[data-state="open"] .live-badge__dot { background: #3ccf7d; box-shadow: 0 0 0 0 rgba(60, 207, 125, .6); animation: livePing 1.8s ease-out infinite; }
[data-state="break"] .live-badge__dot { background: #f2b33d; }
[data-state="closed"] .live-badge__dot { background: #e0675e; }
@keyframes livePing { 0% { box-shadow: 0 0 0 0 rgba(60, 207, 125, .55); } 80%, 100% { box-shadow: 0 0 0 9px rgba(60, 207, 125, 0); } }

.live-badge--light { margin: 10px 0 0; padding: 5px 12px; background: var(--c-primary-50); border-color: var(--c-line); color: var(--c-primary-darker); font-size: .78rem; }
.alert--live b { display: flex; align-items: center; gap: 9px; }

/* ---------- Главная: живая полоса под героем ---------- */
.live-strip .fact b { white-space: normal; }
.fact__icon--live { position: relative; }
.fact[data-state="open"] .fact__icon--live { background: var(--c-green-light); color: var(--c-green); }
.fact[data-state="break"] .fact__icon--live { background: var(--c-accent-light); color: var(--c-accent-dark); }
.fact[data-state="closed"] .fact__icon--live { background: var(--c-red-light); color: var(--c-red); }
.fact[data-state] .fact__icon--live::after {
  content: ""; position: absolute; right: -2px; top: -2px; width: 12px; height: 12px; border-radius: 50%;
  border: 2px solid #fff; background: var(--c-accent);
}
.fact[data-state="open"] .fact__icon--live::after { background: #2fb36b; animation: livePing 1.8s ease-out infinite; }
.fact[data-state="break"] .fact__icon--live::after { background: #f2b33d; }
.fact[data-state="closed"] .fact__icon--live::after { background: #e0675e; }

/* ---------- Плакаты: подпись с кнопкой ---------- */
.poster figcaption { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.poster figcaption .btn { flex: 0 0 auto; }

/* ---------- Главная: агит-баннер оживлён ---------- */
.cta-banner__poster img { animation: posterSway 7s ease-in-out infinite; }
@keyframes posterSway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(1.5deg) translateY(-6px); } }
.cta-banner__poster a:hover img { animation-play-state: paused; }
.stat-chip b { font-variant-numeric: tabular-nums; }

/* ---------- Контракт: агитационная шапка ---------- */
.page-head--agit {
  padding: 30px 0 64px;
  background:
    radial-gradient(circle at 82% 30%, rgba(193, 154, 61, .34), transparent 44%),
    radial-gradient(circle at 8% 110%, rgba(28, 87, 165, .35), transparent 40%),
    var(--dots), linear-gradient(115deg, var(--c-navy-950) 0%, var(--c-primary-darker) 48%, var(--c-primary-dark) 100%);
}
.page-head--agit::before {
  content: ""; position: absolute; right: -120px; top: -140px; width: 520px; height: 520px; border-radius: 50%;
  border: 1px solid rgba(240, 217, 160, .12); box-shadow: 0 0 0 60px rgba(240, 217, 160, .03), 0 0 0 130px rgba(240, 217, 160, .02);
  pointer-events: none;
}
.page-head--agit::after { height: 4px; max-width: none; background: var(--tricolor); }
.agit-head { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 48px; align-items: center; }
.agit-head h1 { font-size: clamp(1.9rem, 3.8vw, 3rem); line-height: 1.1; margin-bottom: 16px; text-shadow: 0 2px 18px rgba(0, 0, 0, .3); }
.agit-head p { font-size: 1.1rem; max-width: 600px; margin-bottom: 28px; }
.agit-head .hero__actions .btn { color: inherit; }
.agit-head .hero__actions .btn--gold { color: var(--c-primary-darker); }
.agit-head .hero__actions .btn--outline { color: #fff; }
.agit-card {
  position: relative; overflow: hidden;
  background: rgba(8, 33, 54, .55); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(240, 217, 160, .28); border-radius: var(--radius-lg);
  box-shadow: 0 30px 60px rgba(0, 0, 0, .3);
}
.agit-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--c-accent), var(--c-accent-soft), var(--c-accent)); }
.agit-card__head { display: flex; align-items: center; gap: 10px; padding: 18px 22px 6px; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent-soft); }
.agit-card__list { list-style: none; margin: 0; padding: 4px 12px 8px; }
.agit-card__list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 10px; border-radius: 12px; font-size: .9rem; color: rgba(255, 255, 255, .8); }
.agit-card__list li + li { border-top: 1px solid rgba(255, 255, 255, .08); }
.agit-card__list b { color: #fff; font-size: 1.05rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.agit-card__list li.is-main { background: linear-gradient(90deg, rgba(193, 154, 61, .22), rgba(193, 154, 61, .06)); border-top-color: transparent; }
.agit-card__list li.is-main + li { border-top-color: transparent; }
.agit-card__list li.is-main b { color: var(--c-accent-soft); font-size: 1.3rem; }
.agit-card__icon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: rgba(193, 154, 61, .16); color: var(--c-accent-soft); font-size: 1rem; }
.agit-card__call {
  display: flex; align-items: center; gap: 14px; margin: 0 12px 12px; padding: 14px 18px; border-radius: 14px;
  background: var(--c-accent); color: var(--c-primary-darker) !important; font-weight: 800; font-size: 1.15rem;
  transition: background .15s ease, transform .15s ease;
}
.agit-card__call:hover { background: var(--c-accent-hover); transform: translateY(-1px); }
.agit-card__call .ico { font-size: 1.3rem; }
.agit-card__call small { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .75; }

/* Льготы — галочки вместо точек */
.info-card--perks ul { list-style: none; padding: 0; }
.info-card--perks li { position: relative; padding: 0 0 0 30px; margin-bottom: 9px; }
.info-card--perks li::before {
  content: ""; position: absolute; left: 0; top: 2px; width: 19px; height: 19px; border-radius: 50%;
  background: var(--c-green-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f6b45' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.info-card--perks { border-top: 3px solid var(--c-accent); }

/* Боковая панель записи */
.side-call { margin: 0 0 12px; }
.side-call a { font-size: 1.45rem; font-weight: 800; color: #fff !important; letter-spacing: -.01em; }
.side-call a:hover { color: var(--c-accent-soft) !important; }
.live-badge--side { margin: 0; }
.dl-item { padding: 8px 0 !important; }
.dl-item a { display: flex; align-items: center; gap: 12px; width: 100%; font-weight: 700; color: var(--c-primary-darker); }
.dl-item img { width: 46px; height: 46px; object-fit: cover; object-position: top; border-radius: 8px; border: 1px solid var(--c-line); flex: 0 0 auto; }
.dl-item span { flex: 1; line-height: 1.3; }
.dl-item small { display: block; font-weight: 400; font-size: .78rem; color: var(--c-muted); }
.dl-item .ico { color: var(--c-accent-dark); font-size: 1.1rem; }
.dl-item a:hover .ico { transform: translateY(2px); }

/* Плакаты на странице контракта */
.poster-grid--agit { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px; }
.poster-grid--agit .poster { transition: transform .25s var(--ease), box-shadow .25s ease; }
.poster-grid--agit .poster:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.poster-col { display: flex; flex-direction: column; gap: 24px; }
.share-card {
  position: relative; overflow: hidden; border-radius: var(--radius); padding: 26px 26px 24px; color: #fff;
  background: radial-gradient(circle at 100% 0, rgba(193, 154, 61, .32), transparent 50%), var(--dots), linear-gradient(150deg, var(--c-primary), var(--c-primary-darker));
  box-shadow: var(--shadow-md);
}
.share-card__icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem; background: rgba(193, 154, 61, .2); color: var(--c-accent-soft); margin-bottom: 14px; }
.share-card h3 { color: #fff; font-size: 1.25rem; margin-bottom: 8px; }
.share-card p { color: rgba(255, 255, 255, .8); font-size: .93rem; margin-bottom: 18px; }
.share-card__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.share-btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; border: 0; cursor: pointer;
  font-family: inherit; font-size: .88rem; font-weight: 700; color: #fff; background: rgba(255, 255, 255, .1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); transition: background .15s ease, transform .15s ease;
}
.share-btn:hover { color: #fff; background: rgba(255, 255, 255, .2); transform: translateY(-1px); }
.share-btn::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--c-accent-soft); }
.share-btn--tg::before { background: #2aabee; }
.share-btn--vk::before { background: #5a8fd6; }
.share-btn--wa::before { background: #25d366; }
button.share-btn::before { display: none; }

/* Эмблема в финальном баннере */
.cta-emblem { position: relative; z-index: 1; flex: 0 0 auto; width: 210px; height: 210px; margin: 0 20px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle, rgba(193, 154, 61, .3), rgba(193, 154, 61, .05) 62%, transparent 63%); }
.cta-emblem .ico { font-size: 4.6rem; color: var(--c-accent-soft); filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .35)); }
.cta-emblem__ring { position: absolute; inset: 0; border-radius: 50%; border: 2px dashed rgba(240, 217, 160, .45); animation: spin 40s linear infinite; }
.cta-emblem::after { content: ""; position: absolute; inset: 22px; border-radius: 50%; border: 1px solid rgba(240, 217, 160, .25); }
@keyframes spin { to { transform: rotate(360deg); } }
.poster figcaption b { display: block; margin-bottom: 2px; }
.cta-banner .live-badge { margin: -4px 0 22px; }

@media (max-width: 1080px) {
  .side-panel--dl { display: none; }
  .agit-head { grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr); gap: 30px; }
}
@media (max-width: 860px) {
  .agit-head { grid-template-columns: minmax(0, 1fr); }
  .agit-card { max-width: 560px; }
  .page-head--agit { padding-bottom: 54px; }
  .poster-grid--agit { grid-template-columns: 1fr; }
  .cta-emblem { display: none; }
}
@media (max-width: 760px) {
  .page-head--agit { padding: 20px 0 50px; }
  .agit-head { gap: 24px; }
  .agit-head p { font-size: 1rem; margin-bottom: 22px; }
  .agit-head .hero__actions .btn { flex: 1 1 100%; }
  .agit-head .hero__actions .btn--outline { display: none; }
  .agit-card__list li { padding: 10px 8px; }
  .page-head--agit::before { display: none; }
}

/* ---------- Мобильная панель действий ---------- */
.mobile-bar { display: none; }
@media (max-width: 760px) {
  .mobile-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 95;
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    background: rgba(8, 33, 54, .97); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
    box-shadow: 0 -8px 24px rgba(5, 23, 38, .25);
  }
  .mobile-bar a {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    min-height: 52px; border-radius: 12px; color: rgba(255, 255, 255, .9);
    font-size: .74rem; font-weight: 700; line-height: 1.2; text-align: center;
  }
  .mobile-bar a .ico { font-size: 1.25rem; color: var(--c-accent-soft); }
  .mobile-bar a:active { background: rgba(255, 255, 255, .08); }
  .mobile-bar a.mobile-bar__main { background: var(--c-accent); color: var(--c-primary-darker); }
  .mobile-bar a.mobile-bar__main .ico { color: var(--c-primary-darker); }
  body.has-mobile-bar { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  body.has-mobile-bar .to-top { bottom: calc(76px + env(safe-area-inset-bottom)); }
  body.has-mobile-bar .cookie-bar { bottom: calc(72px + env(safe-area-inset-bottom)); }
  body.has-mobile-bar.has-cookie .to-top { bottom: calc(150px + env(safe-area-inset-bottom)); }
}

/* ---------- Адаптив: телефоны ---------- */
@media (max-width: 760px) {
  .utility-bar { display: none; }
  .ticker { display: none; }
  /* Герой главной: компактнее, быстрые действия плиткой 2×N */
  .hero__grid { gap: 26px; }
  .hero__tag { margin-bottom: 14px; }
  .hero h1 { font-size: 1.5rem; }
  .hero p.lead .hide-sm { display: none; }
  .hero .hero__actions .btn--outline { display: none; }
  .hero__panel { padding: 16px 12px 10px; }
  .quick-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .quick-list li + li { border-top: 0; }
  .quick-list a { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; background: rgba(255, 255, 255, .05); height: 100%; }
  .quick-list small, .quick-list .ico-chevron-right, .quick-list .ico-arrow-up-right { display: none; }
  .quick-list b { font-size: .88rem; }
  .quick-list li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  /* Разделы: компактные плитки в две колонки */
  .tiles--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .tile { padding: 18px 16px; gap: 10px; }
  .tile p, .tile__more { display: none; }
  .tile__icon { width: 46px; height: 46px; font-size: 1.25rem; }
  .tile h3 { font-size: .97rem; }
  .section__head { align-items: flex-start; }
  .section__head .btn--line { padding: 8px 14px; font-size: .86rem; }
  /* Таблицы превращаются в карточки */
  .table-wrap.is-stacked { border: 0; background: none; box-shadow: none; overflow: visible; }
  .is-stacked table.data { min-width: 0; }
  .is-stacked table.data thead { display: none; }
  .is-stacked table.data, .is-stacked table.data tbody, .is-stacked table.data tr, .is-stacked table.data td { display: block; width: 100%; }
  .is-stacked table.data tr { background: var(--c-white) !important; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-xs); margin-bottom: 10px; overflow: hidden; }
  .is-stacked table.data td { border: 0; padding: 4px 16px; text-align: left; }
  .is-stacked table.data td:first-child { padding-top: 14px; font-size: 1rem; }
  .is-stacked table.data td:last-child { padding-bottom: 14px; }
  .is-stacked table.data td.num { text-align: left; }
  .is-stacked table.data td:not(:first-child)::before { content: attr(data-label) ": "; color: var(--c-muted); font-size: .82rem; font-weight: 600; }
  /* Оглавление сворачивается */
  .toc { padding: 0; }
  .toc__title { cursor: pointer; margin: 0; padding: 16px 18px; justify-content: space-between; }
  .toc__title::after { content: "Показать"; font-size: .8rem; font-weight: 700; color: var(--c-primary); }
  .toc.open .toc__title::after { content: "Скрыть"; }
  .toc .toc__list { display: none; padding: 0 18px 14px; }
  .toc.open .toc__list { display: block; }
  /* Подвал короче */
  .footer-grid > div:nth-child(2) ul { columns: 2; column-gap: 18px; }
  .footer-grid li { break-inside: avoid; }
  .cookie-bar { left: 10px; right: 10px; }
  .cookie-bar .container { padding: 12px 14px; gap: 10px; }
  .cookie-bar p { font-size: .8rem; flex-basis: 100%; }
}
@media (max-width: 400px) {
  .hero h1 { font-size: 1.42rem; }
}

/* ---------- Печать ---------- */
@media print {
  .site-header, .site-footer, .utility-bar, .tricolor-bar, .breadcrumbs, .to-top, .ticker, .skip-link,
  .nav-toggle, .main-nav, .nav-backdrop, .cookie-bar, .mobile-bar, .modal, .toc, .btn, .no-print, .page-head__icon { display: none !important; }
  body { background: #fff; color: #000; font-size: 12pt; }
  .section { padding: 0; }
  .page-head { background: none; color: #000; padding: 0 0 12pt; }
  .page-head h1, .page-head p { color: #000; }
  .has-reveal .reveal { opacity: 1; transform: none; }
  .pamyatka { border: 0; box-shadow: none; padding: 0; }
  .pamyatka::before { display: none; }
  .pamyatka__grid { grid-template-columns: 1fr 1fr; }
  .pamyatka a::after { content: ""; }
  a::after { content: " (" attr(href) ")"; font-size: .75em; color: #555; }
}

/* ---------- Агитационный раздел «Контракт» (возвращён по просьбе 19.10) ---------- */
:root { --c-flag-red: #d52b1e; --c-flag-blue: #1c57a5; }
.page-head .breadcrumbs, .search-hero .breadcrumbs, .agit-hero .breadcrumbs {color: rgba(255, 255, 255, .62);}
.page-head .breadcrumbs a, .search-hero .breadcrumbs a, .agit-hero .breadcrumbs a {color: rgba(255, 255, 255, .72); font-weight: 400;}
.page-head .breadcrumbs a:hover, .search-hero .breadcrumbs a:hover, .agit-hero .breadcrumbs a:hover {color: var(--c-accent-soft);}
.page-head .breadcrumbs .current, .search-hero .breadcrumbs .current, .agit-hero .breadcrumbs .current {color: #fff;}
.cta-banner .agit-badge {margin-bottom: 16px;}
.agit-red {color: #ff5a4c;}
.agit-gold {background: linear-gradient(100deg, #f6dc9a, var(--c-accent) 60%, #f0d9a0);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;}
.btn--red {background: var(--c-flag-red); color: #fff; box-shadow: 0 8px 22px rgba(213, 43, 30, .35);}
.btn--red:hover {background: #e8402f; color: #fff; transform: translateY(-1px); box-shadow: 0 12px 28px rgba(213, 43, 30, .45);}
.btn--glass {background: rgba(255, 255, 255, .08); color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);}
.btn--glass:hover {background: rgba(255, 255, 255, .16); color: #fff;}
.btn--pulse {position: relative;}
.btn--pulse::after {content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  animation: ctaPulse 2.4s ease-out infinite;}
.section--dark {color: #fff;
  background: radial-gradient(circle at 10% 0, rgba(213, 43, 30, .16), transparent 40%), radial-gradient(circle at 95% 100%, rgba(193, 154, 61, .18), transparent 40%), var(--dots), linear-gradient(135deg, #061423, #0e2a44);}
.section--dark h2 {color: #fff;}
.section--dark .section__head .subtitle {color: rgba(255, 255, 255, .7);}
.agit-hero {position: relative; overflow: hidden; isolation: isolate; color: #fff;
  background: radial-gradient(ellipse at 78% 35%, #1f3d5e 0%, #0b2035 42%, #040d17 100%);
  padding-top: 26px;}
.agit-hero::before {content: ""; position: absolute; inset: 0; z-index: -3; background: var(--dots);}
.agit-hero__flag {position: absolute; z-index: -2; top: -30%; right: -18%; width: 85%; height: 160%;
  background: linear-gradient(112deg, transparent 0 38%, rgba(255, 255, 255, .09) 38% 46%, rgba(28, 87, 165, .32) 46% 54%, rgba(213, 43, 30, .3) 54% 62%, transparent 62%);
  filter: blur(2px);
  animation: flagDrift 14s ease-in-out infinite alternate;}
.agit-hero__figure {position: absolute; z-index: -1; top: 0; bottom: 0;
  right: max(0px, calc((100vw - var(--container)) / 2 - 20px));
  width: min(46vw, 520px);}
.agit-hero__figure img {width: 100%; height: 100%; object-fit: cover; object-position: center 8%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 82%, transparent 100%), linear-gradient(0deg, transparent 0%, #000 30%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 82%, transparent 100%), linear-gradient(0deg, transparent 0%, #000 30%);
  mask-composite: intersect;
  animation: figureIn 1.2s var(--ease) both;}
.agit-hero__content {position: relative; max-width: 660px; padding: 34px 0 56px; animation: contentIn .8s var(--ease) both;}
.agit-badge {display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 16px 7px 12px; border-radius: 999px;
  background: rgba(213, 43, 30, .16); border: 1px solid rgba(255, 90, 76, .5);
  color: #ffd1cc; font-size: .8rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
  margin-bottom: 22px;}
.agit-badge__dot {width: 9px; height: 9px; border-radius: 50%; background: #ff5a4c; animation: dotPulse 1.8s ease-out infinite; box-shadow: 0 0 0 0 rgba(255, 90, 76, .7);}
.agit-hero h1 {color: #fff; font-size: clamp(2.1rem, 5.2vw, 3.9rem); font-weight: 900; line-height: 1.04;
  text-transform: uppercase; letter-spacing: -.02em; margin-bottom: 20px;
  text-shadow: 0 4px 30px rgba(0, 0, 0, .35);}
.agit-hero .lead {font-size: 1.12rem; color: rgba(255, 255, 255, .86); max-width: 560px; margin-bottom: 30px;}
.agit-stats {position: relative; background: rgba(4, 13, 23, .62); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid rgba(255, 255, 255, .1);}
.agit-stats__grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));}
.agit-stats__grid--2 {grid-template-columns: repeat(2, auto); justify-content: start;}
.agit-stats__grid--2 .agit-stat {padding-right: 56px;}
.agit-stats__grid--2 .agit-stat + .agit-stat {padding-left: 56px;}
.agit-stat {display: flex; align-items: center; gap: 16px; padding: 24px 26px; position: relative;}
.agit-stat:first-child {padding-left: 0;}
.agit-stat + .agit-stat::before {content: ""; position: absolute; left: 0; top: 24px; bottom: 24px; width: 1px; background: rgba(255, 255, 255, .12);}
.agit-stat__icon {flex: 0 0 auto; width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem; background: rgba(193, 154, 61, .14); color: var(--c-accent-soft); border: 1px solid rgba(193, 154, 61, .3);}
.agit-stat b {display: block; font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-weight: 900; line-height: 1.1; color: #fff; white-space: nowrap; font-variant-numeric: tabular-nums;}
.agit-stat div > span {display: block; margin-top: 3px; font-size: .84rem; color: rgba(255, 255, 255, .7);}
@media (max-width: 960px) {
  .agit-hero__figure {width: 70vw; right: -14vw; opacity: .4;}
  .agit-stats__grid {grid-template-columns: 1fr;}
  .agit-stat, .agit-stat:first-child,
  .agit-stats__grid--2 .agit-stat, .agit-stats__grid--2 .agit-stat + .agit-stat {padding: 15px 0;}
  .agit-stat + .agit-stat::before {left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 1px;}
}
@media (max-width: 560px) {
  .agit-hero .lead {font-size: 1rem;}
  .agit-hero .hero__actions .btn {flex: 1 1 100%;}
  .agit-hero__content {padding: 20px 0 36px;}
  .agit-stat__icon {width: 42px; height: 42px; font-size: 1.1rem;}
}
.agit-marquee {overflow: hidden; white-space: nowrap;
  background: linear-gradient(90deg, var(--c-accent), #d8b45c, var(--c-accent));
  color: var(--c-primary-darker); font-weight: 900; font-size: .92rem; text-transform: uppercase; letter-spacing: .06em;}
.agit-marquee__track {display: inline-flex; animation: tickerMove 30s linear infinite;}
.agit-marquee span {display: inline-flex; align-items: center; padding: 14px 0;}
.agit-marquee span::after {content: "★"; margin: 0 28px; color: var(--c-flag-red); font-size: 1.05em;}
.perk-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;}
.perk {position: relative; overflow: hidden;
  background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius);
  padding: 28px 26px 26px; box-shadow: var(--shadow-xs);
  transition: transform .25s var(--ease), box-shadow .25s ease, border-color .25s ease;}
.perk::before {content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px;
  background: linear-gradient(90deg, #e9edf2 0 33.3%, var(--c-flag-blue) 33.3% 66.6%, var(--c-flag-red) 66.6%);
  transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease);}
.perk::after {content: ""; position: absolute; right: -40px; bottom: -40px; width: 140px; height: 140px; border-radius: 50%;
  background: radial-gradient(circle, rgba(193, 154, 61, .16), transparent 70%);
  opacity: 0; transition: transform .4s var(--ease), opacity .3s ease;}
.perk:hover {transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: #c9d6e3;}
.perk:hover::before {transform: scaleX(1);}
.perk:hover::after {opacity: 1; transform: scale(1.5);}
.perk__icon {width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; font-size: 1.55rem;
  background: linear-gradient(140deg, var(--c-primary), var(--c-primary-darker)); color: var(--c-accent-soft);
  box-shadow: 0 10px 22px rgba(20, 69, 110, .25); margin-bottom: 18px;
  transition: transform .3s var(--ease);}
.perk:hover .perk__icon {transform: rotate(-6deg) scale(1.06);}
.perk h3 {font-size: 1.15rem; margin-bottom: 8px;}
.perk p {margin: 0; color: var(--c-muted); font-size: .93rem; position: relative; z-index: 1;}
@media (max-width: 960px) {
  .perk-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 600px) {
  .perk-grid {grid-template-columns: 1fr;}
}
.calc {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0;
  border-radius: var(--radius-lg); overflow: hidden;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 30px 60px rgba(0, 0, 0, .3);}
.calc__controls {padding: 32px;}
.calc__field {margin-bottom: 26px;}
.calc__field label, .calc__label {display: block; font-size: .95rem; color: rgba(255, 255, 255, .85); margin-bottom: 12px;}
.calc__field label b {color: var(--c-accent-soft); font-size: 1.2rem;}
.calc input[type="range"] {-webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 99px; outline: none; cursor: pointer;
  background: linear-gradient(90deg, var(--c-accent) 0 var(--fill, 0%), rgba(255, 255, 255, .16) var(--fill, 0%));}
.calc input[type="range"]::-webkit-slider-thumb {-webkit-appearance: none; width: 28px; height: 28px; border-radius: 50%;
  background: #fff; border: 6px solid var(--c-accent); box-shadow: 0 4px 12px rgba(0, 0, 0, .35); cursor: grab;}
.calc input[type="range"]::-moz-range-thumb {width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 6px solid var(--c-accent); cursor: grab;}
.calc input[type="range"]:focus-visible {outline: 3px solid var(--c-accent-soft); outline-offset: 6px;}
.calc__scale {display: flex; justify-content: space-between; font-size: .78rem; color: rgba(255, 255, 255, .55); margin-top: 10px;}
.seg {display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; border-radius: 14px; background: rgba(0, 0, 0, .25);}
.seg__btn {border: 0; border-radius: 10px; padding: 11px 13px; cursor: pointer; text-align: left;
  font-family: inherit; font-size: .92rem; font-weight: 700; color: rgba(255, 255, 255, .78); background: transparent;
  transition: background .15s ease, color .15s ease;}
.seg__btn small {display: block; font-weight: 400; font-size: .76rem; opacity: .75; margin-top: 2px;}
.seg__btn:hover {color: #fff; background: rgba(255, 255, 255, .06);}
.seg__btn.is-active {background: #fff; color: var(--c-primary-darker); box-shadow: 0 4px 12px rgba(0, 0, 0, .2);}
.calc__controls .calc__field:last-child {margin-bottom: 0;}
.calc__note {grid-column: 1 / -1; margin: 0; padding: 16px 32px; font-size: .78rem; color: rgba(255, 255, 255, .55); line-height: 1.55; border-top: 1px solid rgba(255, 255, 255, .1); background: rgba(0, 0, 0, .15);}
.calc__result {padding: 32px; display: flex; flex-direction: column;
  background: radial-gradient(circle at 100% 0, rgba(193, 154, 61, .28), transparent 50%), linear-gradient(160deg, var(--c-primary), var(--c-primary-darker));}
.calc__result-label {font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: rgba(255, 255, 255, .7); font-weight: 800;}
.calc__total {display: block; font-size: clamp(2.3rem, 5vw, 3.4rem); font-weight: 900; line-height: 1.05; color: var(--c-accent-soft); margin: 6px 0 18px; font-variant-numeric: tabular-nums; letter-spacing: -.01em;}
.calc__bar {display: flex; height: 14px; border-radius: 99px; overflow: hidden; background: rgba(255, 255, 255, .1); gap: 3px;}
.calc__bar span {display: block; height: 100%; transition: flex-basis .5s var(--ease); flex: 0 1 0;}
.calc__bar-lump, .calc__dot--lump {background: #ef5a4c;}
.calc__bar-pay, .calc__dot--pay {background: var(--c-accent);}
.calc__legend {list-style: none; margin: 16px 0 24px; padding: 0; font-size: .9rem; color: rgba(255, 255, 255, .8);}
.calc__legend li {display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(255, 255, 255, .08);}
.calc__legend b {margin-left: auto; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap;}
.calc__dot {width: 11px; height: 11px; border-radius: 3px; flex: 0 0 auto;}
.calc__result .btn {margin-top: auto;}
@media (max-width: 900px) {
  .calc {grid-template-columns: 1fr;}
}
.seg--3 {grid-template-columns: repeat(3, 1fr);}
.seg--3 .seg__btn {text-align: center;}
@media (max-width: 480px) {
  .calc__controls, .calc__result {padding: 22px 18px;}
  .calc__note {padding: 14px 18px;}
  .seg--3 .seg__btn {padding: 10px 6px;}
  .seg--3 .seg__btn small {font-size: .75rem;}
}
.quiz {background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 10px; box-shadow: var(--shadow-sm);}
.quiz__grid {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;}
.quiz__q {position: relative; display: flex; flex-direction: column;
  padding: 22px 20px 20px; border-radius: 14px; background: var(--c-primary-50); border: 1px solid transparent;
  transition: background .2s ease, border-color .2s ease;}
.quiz__q.is-answered {background: #fff; border-color: var(--c-line);}
.quiz__num {width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; margin-bottom: 14px;
  background: var(--c-primary); color: #fff; font-weight: 900;
  transition: background .2s ease;}
.quiz__q.is-ok .quiz__num {background: var(--c-green);}
.quiz__q.is-note .quiz__num {background: var(--c-accent); color: var(--c-primary-darker);}
.quiz__q.is-no .quiz__num {background: var(--c-red);}
.quiz__q > p {margin: 0 0 6px; font-weight: 800; color: var(--c-primary-darker); font-size: 1.02rem; line-height: 1.3;}
.quiz__q > small {display: block; font-size: .82rem; color: var(--c-muted); line-height: 1.45; margin-bottom: 16px;}
.quiz__opts {display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto;}
.quiz__opts button {border: 1.5px solid var(--c-line); background: #fff; color: var(--c-primary-dark);
  font-family: inherit; font-size: .85rem; font-weight: 700; padding: 8px 15px; border-radius: 999px; cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .1s ease;}
.quiz__opts button:hover {border-color: var(--c-primary);}
.quiz__opts button:active {transform: scale(.97);}
.quiz__opts button[aria-pressed="true"] {background: var(--c-primary); border-color: var(--c-primary); color: #fff;}
.quiz__opts button[aria-pressed="true"][data-a="ok"] {background: var(--c-green); border-color: var(--c-green);}
.quiz__opts button[aria-pressed="true"][data-a="no"] {background: var(--c-red); border-color: var(--c-red);}
.quiz__result {display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 10px; border-radius: 14px; padding: 18px 20px;
  background: var(--c-primary-50); border: 1px dashed #c9d6e3;
  transition: background .25s ease, border-color .25s ease;}
.quiz__result > div {flex: 1 1 260px;}
.quiz__result-icon {flex: 0 0 auto; width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; font-size: 1.3rem; background: #fff; color: var(--c-primary);}
.quiz__result b {display: block; color: var(--c-primary-darker); font-size: 1.06rem;}
.quiz__result p {margin: 2px 0 0; font-size: .9rem; color: var(--c-muted);}
.quiz__result[data-state="ok"] {background: var(--c-green-light); border: 1px solid #b7dcc6; animation: popIn .4s var(--ease);}
.quiz__result[data-state="ok"] b, .quiz__result[data-state="ok"] .quiz__result-icon {color: var(--c-green);}
.quiz__result[data-state="note"] {background: var(--c-accent-light); border: 1px solid #efe0bb; animation: popIn .4s var(--ease);}
.quiz__result[data-state="note"] .quiz__result-icon {color: var(--c-accent-dark);}
.quiz__result[data-state="no"] {background: var(--c-red-light); border: 1px solid #f2d6d2; animation: popIn .4s var(--ease);}
.quiz__result[data-state="no"] b, .quiz__result[data-state="no"] .quiz__result-icon {color: #8f241d;}
@media (max-width: 1080px) {
  .quiz__grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 560px) {
  .quiz__grid {grid-template-columns: 1fr;}
}
.path {list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; position: relative; counter-reset: path;}
.path::before {content: ""; position: absolute; top: 35px; left: 12%; right: 12%; height: 3px; z-index: 0;
  background: repeating-linear-gradient(90deg, var(--c-accent) 0 10px, transparent 10px 18px);}
.path__step {position: relative; z-index: 1; text-align: center; counter-increment: path; padding: 0 6px;}
.path__num {position: relative; display: inline-grid; place-items: center;
  width: 70px; height: 70px; border-radius: 50%; font-size: 1.6rem;
  background: var(--c-primary); color: #fff; margin-bottom: 18px;
  box-shadow: 0 0 0 8px var(--c-white), 0 12px 26px rgba(20, 69, 110, .3);
  transition: transform .3s var(--ease), background .3s ease, color .3s ease;}
.path__num::after {content: counter(path); position: absolute; top: -4px; right: -6px;
  width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  background: var(--c-flag-red); color: #fff; font-size: .8rem; font-weight: 800; border: 2px solid #fff;}
.path__step:hover .path__num {transform: translateY(-4px) scale(1.05); background: var(--c-accent); color: var(--c-primary-darker);}
.path__step h3 {font-size: 1.05rem; margin-bottom: 8px;}
.path__step p {margin: 0 auto; font-size: .9rem; color: var(--c-muted); max-width: 260px;}
@media (max-width: 960px) {
  .path {grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px;}
  .path::before {display: none;}
}
@media (max-width: 560px) {
  .path {grid-template-columns: 1fr; gap: 22px;}
  .path__step {display: grid; grid-template-columns: 70px 1fr; column-gap: 16px; text-align: left; padding: 0;}
  .path__num {grid-row: span 2; margin: 0; width: 60px; height: 60px; font-size: 1.35rem;}
  .path__step h3 {margin-top: 6px;}
  .path__step p {margin: 0; max-width: none;}
}
.mog {position: relative; overflow: hidden; color: #fff; padding: 76px 0;
  background: radial-gradient(circle at 15% 20%, rgba(213, 43, 30, .22), transparent 40%), radial-gradient(circle at 90% 90%, rgba(193, 154, 61, .2), transparent 40%), var(--dots), linear-gradient(135deg, #061423, #0e2a44);}
.mog__grid {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 46px; align-items: center;}
.mog h2 {color: #fff; font-size: clamp(1.6rem, 3vw, 2.3rem); text-transform: uppercase; font-weight: 900; padding-bottom: 0;}
.mog h2::after {display: none;}
.mog__lead {color: rgba(255, 255, 255, .84); font-size: 1.02rem;}
.mog__dirs {list-style: none; margin: 18px 0 22px; padding: 0; counter-reset: dir; display: flex; flex-direction: column; gap: 10px;}
.mog__dirs li {counter-increment: dir; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; align-items: center;
  padding: 12px 16px 12px 12px; border-radius: 14px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1);
  transition: background .2s ease, transform .2s var(--ease);}
.mog__dirs li:hover {background: rgba(255, 255, 255, .1); transform: translateX(4px);}
.mog__dirs li::before {content: counter(dir); grid-row: span 2; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: var(--c-flag-red); color: #fff; font-weight: 900; font-size: 1.2rem;}
.mog__dirs b {color: #fff; font-size: 1rem;}
.mog__dirs span {font-size: .86rem; color: rgba(255, 255, 255, .7);}
.mog__note {display: flex; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(193, 154, 61, .12); border: 1px solid rgba(193, 154, 61, .35); margin-bottom: 24px;}
.mog__note .ico {color: var(--c-accent-soft); flex: 0 0 auto; margin-top: 3px;}
.mog__note p {margin: 0; font-size: .87rem; color: rgba(255, 255, 255, .82);}
.mog__note b {color: var(--c-accent-soft);}
.mog__figure {margin: 0;}
.mog__poster {position: relative; display: block; width: 100%; padding: 0; border: 0; cursor: zoom-in; background: none;
  border-radius: var(--radius); overflow: hidden; box-shadow: 0 30px 60px rgba(0, 0, 0, .45);
  transform: perspective(1200px) rotateY(-6deg) rotateX(2deg); transition: transform .5s var(--ease);}
.mog__poster:hover {transform: perspective(1200px) rotateY(0) rotateX(0) scale(1.01);}
.mog__poster img {width: 100%;}
@media (max-width: 960px) {
  .mog__grid {grid-template-columns: 1fr;}
  .mog__poster {transform: none;}
}
.poster-actions {display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px;}
.zoom-hint {position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 13px; border-radius: 999px; background: rgba(5, 23, 38, .8); color: #fff; font-size: .8rem; font-weight: 700;
  opacity: 0; transform: translateY(6px); transition: opacity .2s ease, transform .2s ease;}
.mog__poster:hover .zoom-hint, .agit-final__poster-img:hover .zoom-hint,
.mog__poster:focus-visible .zoom-hint, .agit-final__poster-img:focus-visible .zoom-hint {opacity: 1; transform: none;}
.lightbox {position: fixed; inset: 0; z-index: 250; display: flex; align-items: center; justify-content: center; padding: 30px;
  background: rgba(3, 10, 18, .92); animation: modalFade .2s ease;}
.lightbox[hidden] {display: none;}
.lightbox__figure {margin: 0; max-width: min(1100px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px;}
.lightbox__figure img {max-width: 100%; max-height: calc(100vh - 110px); width: auto; border-radius: var(--radius-sm); box-shadow: 0 30px 80px rgba(0, 0, 0, .6); animation: modalUp .3s var(--ease);}
.lightbox__figure figcaption {color: rgba(255, 255, 255, .8); font-size: .92rem;}
.lightbox__close {position: absolute; top: 18px; right: 18px; width: 46px; height: 46px; border-radius: 14px; border: 0; cursor: pointer;
  background: rgba(255, 255, 255, .1); color: #fff; font-size: 1.2rem; display: grid; place-items: center;}
.lightbox__close:hover {background: var(--c-flag-red);}
.agit-final {position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .7fr); gap: 40px; align-items: center;
  padding: 48px 50px; border-radius: var(--radius-lg); color: #fff;
  background: radial-gradient(circle at 0 100%, rgba(213, 43, 30, .32), transparent 45%), radial-gradient(circle at 100% 0, rgba(193, 154, 61, .28), transparent 45%), var(--dots), linear-gradient(120deg, #061423, var(--c-primary));
  box-shadow: var(--shadow-lg);}
.agit-final::after {content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--tricolor);}
.agit-final h2 {color: #fff; font-size: clamp(1.6rem, 3.2vw, 2.4rem); padding-bottom: 0; margin-bottom: 14px;}
.agit-final h2::after {display: none;}
.agit-final__phone {display: inline-block; font-size: clamp(2rem, 5vw, 3.3rem); font-weight: 900; color: var(--c-accent-soft); letter-spacing: -.01em; line-height: 1.1; margin-bottom: 20px;}
.agit-final__phone:hover {color: #fff;}
.agit-final__info {list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 10px; color: rgba(255, 255, 255, .84); font-size: .94rem;}
.agit-final__info li {display: flex; align-items: flex-start; gap: 11px;}
.agit-final__info .ico {color: var(--c-accent-soft); margin-top: 3px;}
.agit-final__info a {color: #fff; font-weight: 700; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px;}
.agit-final__info a:hover {color: var(--c-accent-soft);}
.agit-final__poster {margin: 0;}
.agit-final__poster-img {position: relative; display: block; width: 100%; padding: 0; border: 0; cursor: zoom-in; background: none;
  border-radius: var(--radius); overflow: hidden; box-shadow: 0 24px 50px rgba(0, 0, 0, .45);
  transform: rotate(2deg); transition: transform .4s var(--ease);}
.agit-final__poster-img:hover {transform: rotate(0) scale(1.02);}
.agit-final__poster-img img {width: 100%;}
.agit-final__poster .poster-actions {justify-content: center;}
@media (max-width: 900px) {
  .agit-final {grid-template-columns: 1fr; padding: 34px 22px;}
  .agit-final__poster {max-width: 320px; margin: 0 auto;}
}
.agit-sticky {display: none;}
@media (max-width: 760px) {
  .agit-sticky {display: grid; grid-template-columns: 1.3fr 1fr; gap: 8px;
    position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 95;
    padding: 8px; border-radius: 16px; background: rgba(5, 23, 38, .92);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    box-shadow: 0 14px 40px rgba(0, 0, 0, .35);
    transform: translateY(140%); transition: transform .35s var(--ease);}
  .agit-sticky.show {transform: none;}
  .agit-sticky .btn {padding: 12px 10px;}
  body.has-sticky-cta .to-top {bottom: 92px;}
  body.has-sticky-cta .cookie-bar {bottom: 86px;}
}
@media (pointer: coarse), (max-width: 760px) {
  .chip, .quiz__opts button, .search-hints button {min-height: 44px;}
  .seg__btn {min-height: 48px;}
}
@media (hover: none) {
  .tile:hover, .news-card:hover, .perk:hover, .agit-poster:hover, .search-result:hover,
  .mog__dirs li:hover, .btn--gold:hover, .btn--red:hover, .info-card:hover {transform: none;}
  .path__step:hover .path__num, .perk:hover .perk__icon, .news-card:hover .big-icon,
  .news-card:hover .news-card__media img, .agit-final__poster-img:hover {transform: none;}
}
@media (max-width: 640px) {
  .lightbox {padding: 12px;}
  .lightbox__close {top: 10px; right: 10px;}
}
@media (min-width: 601px) and (max-width: 960px) {
  .agit-stats__grid--2 {grid-template-columns: repeat(2, minmax(0, 1fr));}
  .agit-stats__grid--2 .agit-stat + .agit-stat {padding-left: 24px;}
  .agit-stats__grid--2 .agit-stat + .agit-stat::before {left: 0; right: auto; top: 15px; bottom: 15px; width: 1px; height: auto;}
}
@keyframes contentIn {from { opacity: 0; transform: translateY(18px); }}
@keyframes ctaPulse {0% { box-shadow: 0 0 0 0 rgba(213, 43, 30, .55); }
  70% { box-shadow: 0 0 0 18px rgba(213, 43, 30, 0); }
  100% { box-shadow: 0 0 0 0 rgba(213, 43, 30, 0); }}
@keyframes dotPulse {70% { box-shadow: 0 0 0 7px rgba(213, 43, 30, 0); } 100% { box-shadow: 0 0 0 0 rgba(213, 43, 30, 0); }}
@keyframes figureIn {from { opacity: 0; transform: translateX(30px) scale(1.03); }}
@keyframes flagDrift {from { transform: translateX(0) skewX(0); } to { transform: translateX(-4%) skewX(-3deg); }}
@keyframes popIn {from { transform: scale(.98); opacity: .5; }}
