/* ============================================================
   НАН РК — Кастомные стили
   ============================================================ */

/* ---------- CSS Переменные / Тема ---------- */
:root {
  /* Палитра */
  --color-primary:        #0B2545; /* Глубокий синий */
  --color-primary-2:      #13315C;
  --color-primary-3:      #1B3A6B;
  --color-accent-emerald: #0F7B5B; /* Изумрудный */
  --color-accent-gold:    #C9A45C; /* Золотой */
  --color-accent-gold-2:  #B8924A;
  --color-neutral-0:      #FFFFFF;
  --color-neutral-50:     #F8FAFC;
  --color-neutral-100:    #F1F5F9;
  --color-neutral-200:    #E2E8F0;
  --color-neutral-300:    #CBD5E1;
  --color-neutral-500:    #64748B;
  --color-neutral-700:    #334155;
  --color-neutral-900:    #0F172A;


  /* Радиусы */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;

  /* Тени */
  --shadow-sm: 0 1px 2px rgba(11, 37, 69, 0.06), 0 1px 4px rgba(11, 37, 69, 0.04);
  --shadow:    0 4px 14px rgba(11, 37, 69, 0.08), 0 2px 4px rgba(11, 37, 69, 0.04);
  --shadow-lg: 0 18px 38px rgba(11, 37, 69, 0.14), 0 8px 16px rgba(11, 37, 69, 0.08);

  /* Транзишены */
  --t-fast: 180ms ease;
  --t-normal: 300ms ease;

  /* Шрифты */
  --font-display: 'PT Serif', Georgia, serif;
    --font-body: 'Onest', 'Inter', system-ui, -apple-system, sans-serif;
}

/* ---------- Базовая типографика ---------- */
html, body {
  font-family: var(--font-display);
  color: var(--color-neutral-900);
  background: var(--color-neutral-50);
  line-height: 1.6;
  scroll-behavior: smooth;
}
/* overflow: clip — не ломает position: sticky (в отличие от overflow: hidden) */
html { overflow-x: clip; }
body { overflow-x: clip; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  color: var(--color-primary);
  letter-spacing: -0.01em;
  font-weight: 700;
  line-height: 1.18;
}

h1 { font-size: clamp(2rem, 4vw + 1rem, 3.4rem); }
h2 { font-size: clamp(1.6rem, 2.2vw + 1rem, 2.4rem); }
h3 { font-size: clamp(1.25rem, 1.2vw + 0.9rem, 1.6rem); }

a { color: var(--color-primary-2); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--color-accent-emerald); }

.container-xxl { max-width: 1320px; }

/* Section title — премиум */
.section-title {
  position: relative;
  display: inline-block;
  padding-bottom: .5rem;
  margin-bottom: 0;
}
.section-title::after {
  content: '';
  position: absolute;
  left: 0; bottom: -2px;
  width: 56px; height: 3px;
  background: linear-gradient(90deg, var(--color-accent-gold), var(--color-accent-emerald));
  border-radius: 2px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-accent-emerald);
}
.eyebrow::before {
  content: '';
  width: 28px; height: 2px;
  background: var(--color-accent-gold);
}

/* ---------- Кнопки ---------- */
.btn {
  border-radius: 999px;
  font-weight: 600;
  padding: .65rem 1.4rem;
  transition: transform var(--t-fast), box-shadow var(--t-normal), background-color var(--t-fast), color var(--t-fast);
  font-size: .92rem;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.btn-primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.btn-primary:hover {
  background: var(--color-primary-2);
  border-color: var(--color-primary-2);
  transform: translateY(-1px);
  box-shadow: var(--shadow);
}
.btn-outline-primary {
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn-outline-primary:hover {
  background: var(--color-primary);
  color: #fff;
}
.btn-gold {
  background: var(--color-accent-gold);
  color: var(--color-neutral-900);
  border: 1px solid var(--color-accent-gold);
}
.btn-gold:hover {
  background: var(--color-accent-gold-2);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--shadow);
}
.btn-emerald {
  background: var(--color-accent-emerald);
  color: #fff;
  border: 1px solid var(--color-accent-emerald);
}
.btn-emerald:hover { background: #0a5d44; color:#fff; }

.btn-ghost {
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-neutral-200);
}
.btn-ghost:hover {
  background: var(--color-neutral-100);
  border-color: var(--color-neutral-300);
}

/* Стрелка в кнопке */
.btn .arrow-i { transition: transform var(--t-fast); }
.btn:hover .arrow-i { transform: translateX(4px); }

/* ---------- Top Line ---------- */
.top-line {
  background: var(--color-primary);
  color: var(--color-neutral-100);
  font-size: .85rem;
  padding: .55rem 0;
}
.top-line a { color: var(--color-neutral-100); }
.top-line a:hover { color: var(--color-accent-gold); }
.top-line .social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.14);
  transition: all var(--t-fast);
}
.top-line .social-icons a:hover {
  background: var(--color-accent-gold);
  border-color: var(--color-accent-gold);
  color: var(--color-primary);
  transform: translateY(-1px);
}
.top-line .bvi-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--color-accent-gold);
  color: var(--color-primary);
  border: 1px solid var(--color-accent-gold);
  padding: 7px 16px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  transition: all var(--t-fast);
  white-space: nowrap;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(201,164,92,0.25);
}
.top-line .bvi-btn i { font-size: .95rem; color: var(--color-primary); }
.top-line .bvi-btn:hover {
  background: #fff;
  border-color: #fff;
  color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(255,255,255,0.25);
}

/* ---------- Inline Lang Switcher (без dropdown) ---------- */
.lang-inline { display: flex; align-items: center; gap: 4px; }
.lang-inline .lang-item {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  color: rgba(255,255,255,0.62);
  border: 1px solid transparent;
  transition: all var(--t-fast);
  text-decoration: none;
}
.lang-inline .lang-item:hover {
  color: #fff;
  background: rgba(255,255,255,0.08);
}
.lang-inline .lang-item.active {
  color: var(--color-primary);
  background: var(--color-accent-gold);
  border-color: var(--color-accent-gold);
}
.lang-inline .lang-item .fi {
  width: 16px; height: 12px;
  border-radius: 2px;
}

/* ---------- Mobile Navbar Search ---------- */
.mobile-nav-search {
  position: relative;
  flex: 1;
  min-width: 0;
}
.mobile-nav-search input {
  width: 100%;
  background: var(--color-neutral-100);
  border: 1px solid var(--color-neutral-200);
  color: var(--color-primary);
  border-radius: 999px;
  padding: 8px 42px 8px 16px;
  font-size: .88rem;
  transition: all var(--t-fast);
}
.mobile-nav-search input::placeholder { color: var(--color-neutral-500); }
.mobile-nav-search input:focus {
  outline: none;
  border-color: var(--color-accent-gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(201,164,92,.16);
}
.mobile-nav-search button {
  position: absolute; right: 3px; top: 50%; transform: translateY(-50%);
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: 999px;
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .82rem;
  transition: all var(--t-fast);
}
.mobile-nav-search button:hover { background: var(--color-accent-gold); color: var(--color-primary); }

.mobile-nav-search {
    position: relative;
    flex: 1;
    min-width: 0;
}

.mobile-nav-search input {
    width: 100%;
    background: var(--color-neutral-100);
    border: 1px solid var(--color-neutral-200);
    color: var(--color-primary);
    border-radius: 999px;
    padding: 8px 42px 8px 16px;
    font-size: .88rem;
    transition: all var(--t-fast);
}

.mobile-nav-search input::placeholder {
    color: var(--color-neutral-500);
}

.mobile-nav-search input:focus {
    outline: none;
    border-color: var(--color-accent-gold);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(201,164,92,.16);
}

/* Основная кнопка с лупой */
.mobile-nav-search button {
    position: absolute; right: 3px; top: 50%; transform: translateY(-50%);
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 999px;
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .82rem;
    transition: all var(--t-fast);
    z-index: 1;
}

.mobile-nav-search button:hover {
    background: var(--color-accent-gold);
    color: var(--color-primary);
}

/* Кнопка крестика (clear) — встает точь-в-точь вместо лупы */
.mobile-nav-search .search-clear-btn-mobile {
    position: absolute; right: 3px; top: 50%; transform: translateY(-50%);
    background: var(--color-neutral-200);
    color: var(--color-neutral-600);
    border: none;
    border-radius: 999px;
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .82rem;
    transition: all var(--t-fast);
    z-index: 2; /* Поверх инпута */
}

.mobile-nav-search .search-clear-btn-mobile:hover {
    background: var(--color-neutral-300);
    color: var(--color-primary);
}

/* --- Мобильный выпадающий список результатов --- */
.mobile-nav-search .search-dropdown-mobile {
    position: absolute;
    top: 100%; left: 0; right: 0;
    margin-top: 8px;
    background: #ffffff;
    border: 1px solid var(--color-neutral-200);
    border-radius: var(--radius-md, 8px);
    box-shadow: var(--shadow-lg, 0 8px 20px rgba(0,0,0,0.12));
    z-index: 2050; /* Выше, чем фиксированный sticky-top (1030) */
    max-height: 320px;
    overflow-y: auto;
    padding: .4rem;
}

.mobile-nav-search .search-results-list-mobile {
    list-style: none; padding: 0; margin: 0;
}

.mobile-nav-search .search-result-item-mobile {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 12px;
    color: var(--color-primary);
    text-decoration: none;
    font-size: .84rem;
    border-radius: var(--radius-sm, 4px);
    border-bottom: 1px solid var(--color-neutral-100);
    transition: all var(--t-fast);
}

.mobile-nav-search .search-result-item-mobile:last-child {
    border-bottom: none;
}

.mobile-nav-search .search-result-item-mobile:hover {
    background: var(--color-neutral-100);
    color: var(--color-accent-emerald); /* Логика ховера как в основном меню */
}

.mobile-nav-search .result-title {
    flex-grow: 1;
    max-width: 70%;
}

/* --- Бейджи типов контента на мобилке --- */
.mobile-nav-search .badge-type-mobile {
    font-size: 9px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
    margin-right: 10px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    flex-shrink: 0;
}

.mobile-nav-search .badge-type-mobile.news {
    background: #e0f2fe; color: #0369a1;
}

.mobile-nav-search .badge-type-mobile.foresight {
    background: #fef3c7; color: #b45309;
}

.mobile-nav-search .badge-type-mobile.category {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(20, 184, 166, 0.15));
    color: #10b981;
    border: 1px solid rgba(16, 185, 129, 0.2);
}

/* Заглушка пустой выдачи */
.mobile-nav-search .search-dropdown-empty-mobile {
    font-size: .84rem;
    color: var(--color-neutral-400);
    padding: 16px 10px;
}

.mobile-nav-search .search-loader-mobile {
    position: absolute; right: 3px; top: 50%; transform: translateY(-50%);
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--color-primary);
    font-size: .9rem;
    z-index: 3;
}

/* Top search */
.top-search {
  position: relative;
  max-width: 420px;
  width: 100%;
  z-index: 9999;
}
.top-search input {
  width: 100%;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.16);
  color: #fff;
  border-radius: 999px;
  padding: .45rem 2.6rem .45rem 1rem;
  font-size: .9rem;
  transition: all var(--t-fast);
}
.top-search input::placeholder { color: rgba(255,255,255,0.55); }
.top-search input:focus {
  outline: none;
  background: rgba(255,255,255,0.16);
  border-color: var(--color-accent-gold);
  box-shadow: 0 0 0 3px rgba(201,164,92,.18);
}
.top-search button {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  background: var(--color-accent-gold);
  color: var(--color-primary);
  border: none;
  border-radius: 999px;
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--t-fast);
}
.top-search button:hover { background: #fff; }

.search-clear-btn {
    position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    border: none;
    border-radius: 999px;
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    transition: all var(--t-fast);
}
.search-clear-btn:hover { background: rgba(255, 255, 255, 0.2); color: var(--color-accent-gold); }

.top-search .search-dropdown {
    position: absolute;
    top: 100%; left: 0; right: 0;
    margin-top: 10px;
    background: #1e2530; /* Плотный темный цвет шапки, подбери под свой */
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 16px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
    z-index: 999;
    max-height: 380px;
    overflow-y: auto;
    padding: 6px 0;
}

.top-search .search-results-list {
    list-style: none; padding: 0; margin: 0;
}

.top-search .search-result-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 16px;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-size: .85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    transition: all var(--t-fast);
}
.top-search .search-result-item:hover {
    background: rgba(255, 255, 255, 0.04);
    color: #fff;
}

.top-search .result-title {
    flex-grow: 1;
    max-width: 65%;
}
.top-search .arrow-i {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.2);
    transition: all var(--t-fast);
}
.top-search .search-result-item:hover .arrow-i {
    transform: translateX(4px);
    color: var(--color-accent-gold);
}

.top-search .badge-type {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 6px;
    margin-right: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
}
.top-search .badge-type.news {
    background: rgba(56, 189, 248, 0.15); color: #38bdf8;
}
.top-search .badge-type.foresight {
    background: rgba(201, 164, 92, 0.15); color: var(--color-accent-gold);
}
.top-search .badge-type.category {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(20, 184, 166, 0.15));
    color: #10b981;
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.top-search .search-dropdown-empty {
    font-size: .85rem;
    color: rgba(255, 255, 255, 0.4);
    padding: 20px 10px;
}

.top-search .search-loader {
    position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--color-accent-gold);
    font-size: .95rem;
    z-index: 3;
}
/* Lang switcher */
.lang-switcher .dropdown-toggle {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  border-radius: 999px;
  padding: .35rem .85rem;
  font-size: .85rem;
  display: inline-flex; align-items: center; gap: 8px;
  transition: all var(--t-fast);
}
.lang-switcher .dropdown-toggle:hover { background: rgba(255,255,255,0.08); border-color: var(--color-accent-gold); }
.lang-switcher .dropdown-toggle::after { display: none; }
.lang-switcher .dropdown-menu {
  border-radius: var(--radius-md);
  border: none;
  box-shadow: var(--shadow-lg);
  padding: .35rem;
  min-width: 140px;
}
.lang-switcher .dropdown-item {
  border-radius: var(--radius-sm);
  display: flex; align-items: center; gap: 10px;
  padding: .5rem .75rem;
  font-size: .9rem;
}
.lang-switcher .dropdown-item:hover { background: var(--color-neutral-100); color: var(--color-primary); }
.lang-switcher .dropdown-item.active { background: var(--color-primary); color: #fff; }
.fi { border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,0.06); }

/* ---------- Navbar ---------- */
.site-navbar {
  background: rgba(255,255,255,0.92);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--color-neutral-200);
  padding: .65rem 0;
  z-index: 1030;
}
.site-navbar .logos-wrap {
  display: flex; align-items: center; gap: 14px;
}
.site-navbar .logos-wrap img.logo-main { height: 52px; width: auto; }
.site-navbar .logos-wrap img.logo-emblem { height: 50px; width: auto; }
.site-navbar .logos-wrap .divider { width: 1px; height: 38px; background: var(--color-neutral-200); }

/* Меню */
.main-nav { display: flex; align-items: center; gap: 4px; }
.main-nav .nav-item { position: relative; }
.main-nav .nav-link {
  color: var(--color-primary);
  font-weight: 600;
  font-size: .92rem;
  padding: .65rem 1rem !important;
  border-radius: var(--radius-md);
  position: relative;
  transition: all var(--t-normal);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.main-nav .nav-link::after {
  content: ''; position: absolute;
  left: 1rem; right: 1rem; bottom: 4px;
  height: 2px;
  background: var(--color-accent-gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--t-normal);
  border-radius: 2px;
}
.main-nav .nav-link:hover,
.main-nav .nav-item:hover > .nav-link,
.main-nav .nav-link.active {
  color: var(--color-primary);
  background: var(--color-neutral-100);
}
.main-nav .nav-link:hover::after,
.main-nav .nav-item:hover > .nav-link::after,
.main-nav .nav-link.active::after { transform: scaleX(1); }

.main-nav .nav-link .chev { transition: transform var(--t-normal); font-size: .7rem; }
.main-nav .nav-item.has-dropdown:hover .chev { transform: rotate(180deg); }

/* Dropdown — hover intent */
.main-nav .dropdown-menu-custom {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 280px;
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: .5rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity var(--t-normal), transform var(--t-normal), visibility var(--t-normal);
  z-index: 1040;
  /* безопасная зона */
  margin-top: 0;
}
.main-nav .dropdown-menu-custom::before {
  content: '';
  position: absolute;
  top: -12px; left: 0; right: 0; height: 12px;
}
/*.main-nav .nav-item.has-dropdown:hover .dropdown-menu-custom,
.main-nav .nav-item.has-dropdown:focus-within .dropdown-menu-custom {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 80ms;
}*/

.main-nav .nav-item.has-dropdown:hover > .dropdown-menu-custom,
.main-nav .nav-item.has-dropdown:focus-within > .dropdown-menu-custom {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 80ms;
}
/* задержка закрытия — пока курсор уходит с пункта, меню остаётся ещё на 200ms */
.main-nav .nav-item.has-dropdown .dropdown-menu-custom {
  transition-delay: 200ms;
}
.main-nav .nav-item.has-dropdown:hover .dropdown-menu-custom {
  transition-delay: 80ms;
}

.dropdown-menu-custom .dd-item {
  display: flex; align-items: flex-start; gap: 12px;
  padding: .7rem .85rem;
  border-radius: var(--radius-sm);
  color: var(--color-primary);
  transition: all var(--t-fast);
}
.dropdown-menu-custom .dd-item:hover {
  background: var(--color-neutral-100);
  color: var(--color-accent-emerald);
}
.dropdown-menu-custom .dd-icon {
  width: 34px; height: 34px; flex-shrink: 0;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-3));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .85rem;
}
.dropdown-menu-custom .dd-item small { color: var(--color-neutral-500); font-weight: 500; font-size: 12px; display: block; margin-top: 2px; }

@media (max-width: 991.98px) {
  .main-nav { display: none; }
}

/* ---------- Подменю 2-го уровня (Multi-level) ---------- */

/* Сбрасываем дефолтный паддинг ссылки внутри dd-item, т.к. паддинг уже есть на самом dd-item */
.dropdown-menu-custom .has-sub-dropdown {
    padding: 0; /* Убираем стандартный паддинг, переносим на ссылку */
}
.dropdown-menu-custom .has-sub-dropdown > a {
    padding: .7rem .85rem;
    width: 100%;
    border-radius: var(--radius-sm);
    transition: all var(--t-fast);
}
.dropdown-menu-custom .has-sub-dropdown > a:hover {
    background: var(--color-neutral-100);
    color: var(--color-accent-emerald);
}

/* Позиционирование самого вложенного меню */
.dropdown-menu-custom .sub-menu-custom {
    top: -8px; /* Корректируем по высоте (компенсируем padding родительского меню) */
    left: 100%; /* Выталкиваем ровно за правый край */
    margin-top: 0;
    transform: translateX(8px); /* Анимация выезда сбоку, а не снизу */
}

/* Перестраиваем невидимый мостик для мышки с вертикального на горизонтальный */
.dropdown-menu-custom .sub-menu-custom::before {
    top: 0;
    bottom: 0;
    left: -12px; /* Мостик теперь слева */
    right: auto;
    width: 12px;
    height: 100%;
}

/* Логика появления подменю с твоими задержками (hover intent) */
.dropdown-menu-custom .has-sub-dropdown:hover > .sub-menu-custom,
.dropdown-menu-custom .has-sub-dropdown:focus-within > .sub-menu-custom {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    transition-delay: 80ms;
}

/* Задержка при уходе курсора (наследуем твою логику) */
.dropdown-menu-custom .sub-menu-custom {
    transition-delay: 200ms;
}

/* Микро-анимация стрелочки вправо */
.dropdown-menu-custom .has-sub-dropdown > a .fa-chevron-right {
    transition: transform var(--t-normal);
}
.dropdown-menu-custom .has-sub-dropdown:hover > a .fa-chevron-right {
    transform: translateX(3px); /* Слегка толкаем стрелочку вправо при наведении */
}

/* ---------- Hero Slider ---------- */
.hero {
  position: relative;
  overflow: hidden;
}
.hero .swiper { width: 100%; }
.hero .hero-slide {
  position: relative;
  min-height: 560px;
  display: flex; align-items: center;
  background-size: cover; background-position: center;
  color: #fff;
}
.hero .hero-slide::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(95deg, rgba(11,37,69,0.92) 0%, rgba(11,37,69,0.72) 45%, rgba(11,37,69,0.42) 100%);
}
.hero .hero-slide::after {
  /* субтильный grain */
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 3px 3px;
  pointer-events: none;
}
.hero .hero-content {
  position: relative; z-index: 2;
  max-width: 720px;
}
.hero .hero-content .eyebrow { color: var(--color-accent-gold); }
.hero .hero-content .eyebrow::before { background: var(--color-accent-gold); }
.hero .hero-title {
  color: #fff;
  font-size: clamp(2.2rem, 3.4vw + 1rem, 3.6rem);
  font-weight: 700;
  line-height: 1.15;
  margin: .8rem 0 1rem;
}
.hero .hero-lead {
  color: rgba(255,255,255,0.86);
  font-size: clamp(1rem, .4vw + .9rem, 1.18rem);
  margin-bottom: 1.6rem;
  max-width: 600px;
}
.hero .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Анимации появления на слайдах */
.swiper-slide-active .hero-content .anim {
  animation: fadeUp .9s cubic-bezier(.2,.7,.2,1) both;
}
.swiper-slide-active .hero-content .anim:nth-child(1) { animation-delay: .1s; }
.swiper-slide-active .hero-content .anim:nth-child(2) { animation-delay: .25s; }
.swiper-slide-active .hero-content .anim:nth-child(3) { animation-delay: .4s; }
.swiper-slide-active .hero-content .anim:nth-child(4) { animation-delay: .55s; }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Swiper pagination и кнопки */
.swiper-pagination-bullet {
  width: 28px;
  height: 4px;
  background: rgba(255,255,255,0.45);
  border-radius: 4px;
  opacity: 1;
  transition: all var(--t-normal);
}
.swiper-pagination-bullet-active {
  background: var(--color-accent-gold);
  width: 48px;
}
.swiper-button-next, .swiper-button-prev {
  background: rgba(255,255,255,0.1);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 50%;
  width: 48px; height: 48px;
  color: #fff;
  transition: all var(--t-normal);
}
.swiper-button-next:hover, .swiper-button-prev:hover {
  background: var(--color-accent-gold);
  border-color: var(--color-accent-gold);
  color: var(--color-primary);
}
.swiper-button-next::after, .swiper-button-prev::after {
  font-size: 1.05rem; font-weight: 700;
}

/* Карусели контента — кнопки */
.carousel-section .nav-arrows {
  display: inline-flex; gap: 8px;
}
.carousel-section .nav-arrows button {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  color: var(--color-primary);
  transition: all var(--t-fast);
  display: inline-flex; align-items: center; justify-content: center;
}
.carousel-section .nav-arrows button:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.carousel-section .nav-arrows button.swiper-button-disabled {
  opacity: .4; pointer-events: none;
}

/* ---------- News Card ---------- */
.news-card {
  background: #fff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform var(--t-normal), box-shadow var(--t-normal);
  height: 100%;
  display: flex; flex-direction: column;
}
.news-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}
.news-card .img-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--color-neutral-100);
}
.news-card .img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s ease;
}
.news-card:hover .img-wrap img { transform: scale(1.06); }
.news-card .img-wrap .cat-badge {
  position: absolute; top: 14px; left: 14px;
  background: rgba(11,37,69,0.92);
  color: #fff;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .12em;
  padding: 5px 12px;
  border-radius: 999px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.news-card .card-body {
  padding: 1.1rem 1.25rem 1.35rem;
  display: flex; flex-direction: column;
  flex: 1;
}
.news-card .news-date {
  font-size: .78rem; color: var(--color-neutral-500);
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: .55rem;
  letter-spacing: .04em;
}
.news-card .news-title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--color-primary);
  line-height: 1.35;
  margin-bottom: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card .read-more {
  margin-top: auto;
  color: var(--color-accent-emerald);
  font-weight: 600;
  font-size: .85rem;
  display: inline-flex; align-items: center; gap: 6px;
  transition: gap var(--t-fast), color var(--t-fast);
}
.news-card:hover .read-more { gap: 12px; color: var(--color-primary); }

/* ---------- Announcement Card ---------- */
.ann-card {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 1.4rem;
  box-shadow: var(--shadow-sm);
  transition: all var(--t-normal);
  height: 100%;
  display: flex; flex-direction: column;
  border: 1px solid var(--color-neutral-200);
  position: relative;
  overflow: hidden;
}
.ann-card::before {
  content: '';
  position: absolute; top: 0; left: 0; width: 5px; height: 100%;
  background: linear-gradient(180deg, var(--color-accent-gold), var(--color-accent-emerald));
}
.ann-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-accent-gold);
}
.ann-card .ann-top {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 1rem;
}
.ann-card .ann-icon {
  width: 52px; height: 52px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-3));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}
.ann-card .ann-date-pill {
  background: var(--color-accent-gold);
  color: var(--color-primary);
  font-weight: 700;
  font-size: .8rem;
  padding: 6px 12px;
  border-radius: 999px;
  letter-spacing: .04em;
}
.ann-card .ann-cat {
  font-size: 11px;
  color: var(--color-accent-emerald);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700;
}
.ann-card .ann-title {
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--color-primary);
  font-size: 1.05rem;
  line-height: 1.4;
  margin: .25rem 0 1rem;
  flex: 1;
}
.ann-card .ann-meta {
  display: flex; gap: 16px;
  font-size: .8rem; color: var(--color-neutral-500);
  border-top: 1px dashed var(--color-neutral-200);
  padding-top: .8rem;
}
.ann-card .ann-meta i { color: var(--color-accent-emerald); }

/* ---------- Foresight section ---------- */
.foresight-section {
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--radius-xl);
  padding: 3rem 2rem;
  position: relative;
  overflow: hidden;
}
.foresight-section::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(800px 400px at 90% 10%, rgba(201,164,92,0.14), transparent 60%),
    radial-gradient(600px 400px at 10% 100%, rgba(15,123,91,0.18), transparent 60%);
  pointer-events: none;
}
.foresight-section > * { position: relative; z-index: 1; }
.foresight-section h2 { color: #fff; }
.foresight-section .foresight-lead {
  color: rgba(255,255,255,0.78);
  font-size: 1rem;
  margin: 1rem 0 1.6rem;
}
.year-tabs {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.year-tab {
  background: transparent;
  color: rgba(255,255,255,0.7);
  border: 1px solid rgba(255,255,255,0.18);
  padding: .55rem 1.2rem;
  border-radius: 999px;
  font-weight: 600;
  cursor: pointer;
  font-size: .92rem;
  transition: all var(--t-normal);
}
.year-tab:hover { color: #fff; border-color: var(--color-accent-gold); }
.year-tab.active {
  background: var(--color-accent-gold);
  color: var(--color-primary);
  border-color: var(--color-accent-gold);
}
.foresight-list-col {
  display: flex; flex-direction: column; gap: 12px;
  max-height: 460px; overflow-y: auto;
  padding-right: 6px;
}
.foresight-list-col::-webkit-scrollbar { width: 6px; }
.foresight-list-col::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 3px; }
.foresight-item {
  background: rgba(255,255,255,0.06);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  padding: 1rem 1.2rem;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  transition: all var(--t-normal);
  cursor: pointer;
}
.foresight-item:hover {
  background: rgba(255,255,255,0.12);
  border-color: var(--color-accent-gold);
  transform: translateX(4px);
}
.foresight-item .f-year {
  font-family: var(--font-display);
  font-size: 1.6rem;
  color: var(--color-accent-gold);
  font-weight: 700;
  line-height: 1;
  min-width: 70px;
}
.foresight-item .f-title { font-weight: 600; color: #fff; }
.foresight-item .f-meta { color: rgba(255,255,255,0.6); font-size: .8rem; margin-top: 4px; }

/* ---------- Science centers ---------- */
.centers-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1.25rem;
}
.center-card {
  position: relative;
  border-radius: var(--radius-lg);
  padding: 1.8rem;
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  overflow: hidden;
  transition: all var(--t-normal);
  display: flex; flex-direction: column;
  min-height: 240px;
}
.center-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}
.center-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(11,37,69,0) 60%, rgba(15,123,91,0.06) 100%);
  opacity: 0;
  transition: opacity var(--t-normal);
}
.center-card:hover::after { opacity: 1; }
.center-card.feature {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-2));
  color: #fff;
  border: none;
  grid-column: span 6;
}
.center-card.feature h3 { color: #fff; }
.center-card.standard { grid-column: span 6; }
.center-card.wide { grid-column: span 12; flex-direction: row; align-items: center; gap: 2rem; }
@media (max-width: 991px) {
  .center-card { grid-column: span 12 !important; }
  .center-card.wide { flex-direction: column; align-items: flex-start; }
}
.center-card .c-icon {
  width: 64px; height: 64px;
  border-radius: var(--radius-md);
  background: var(--color-neutral-100);
  color: var(--color-primary);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 1rem;
  transition: transform var(--t-normal);
}
.center-card.feature .c-icon { background: rgba(255,255,255,0.12); color: var(--color-accent-gold); }
.center-card:hover .c-icon { transform: rotate(-8deg) scale(1.06); }
.center-card h3 {
  font-size: 1.25rem;
  margin-bottom: .55rem;
}
.center-card p {
  color: var(--color-neutral-500);
  font-size: .92rem;
  margin-bottom: 1rem;
}
.center-card.feature p { color: rgba(255,255,255,0.78); }
.center-card .c-stats {
  display: flex; gap: 1.5rem; margin: 1rem 0;
}
.center-card .c-stats .stat .num {
  font-family: var(--font-display);
  font-size: 1.7rem; font-weight: 700;
  color: var(--color-accent-emerald);
  line-height: 1;
}
.center-card.feature .c-stats .stat .num { color: var(--color-accent-gold); }
.center-card .c-stats .stat .lbl {
  font-size: .78rem; color: var(--color-neutral-500);
  text-transform: uppercase; letter-spacing: .1em;
}
.center-card.feature .c-stats .stat .lbl { color: rgba(255,255,255,0.6); }
.center-card .c-link {
  margin-top: auto;
  color: var(--color-accent-emerald);
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
  transition: gap var(--t-fast);
}
.center-card.feature .c-link { color: var(--color-accent-gold); }
.center-card:hover .c-link { gap: 12px; }

/* ---------- Cooperation ---------- */
.coop-section {
  background:
    radial-gradient(800px 500px at 80% 10%, rgba(15,123,91,0.07), transparent 60%),
    #fff;
  border-radius: var(--radius-xl);
  padding: 3rem 2rem;
  border: 1px solid var(--color-neutral-200);
}
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.kpi-card {
  background: var(--color-neutral-50);
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  padding: 1.2rem;
  transition: all var(--t-normal);
}
.kpi-card:hover { border-color: var(--color-accent-gold); background: #fff; box-shadow: var(--shadow); }
.kpi-card .kpi-num {
  font-family: var(--font-display);
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
}
.kpi-card .kpi-num span { color: var(--color-accent-gold); }
.kpi-card .kpi-lbl {
  margin-top: .35rem;
  color: var(--color-neutral-500);
  font-size: .88rem;
}
.partner-logos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 1.5rem;
}
.partner-logos .partner {
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: all var(--t-normal);
  text-decoration: none;
}
.partner-logos .partner:hover {
  border-color: var(--color-accent-gold);
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}
.partner-logos .partner .flag-img {
  width: 38px;
  height: 26px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.08);
}
.partner-logos .partner .p-name {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  min-width: 0;
}
.partner-logos .partner .p-name strong {
  font-family: var(--font-display);
  color: var(--color-primary);
  font-size: .88rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.partner-logos .partner .p-name span {
  font-size: .72rem;
  color: var(--color-neutral-500);
  letter-spacing: .02em;
  text-transform: uppercase;
  margin-top: 2px;
}

/* Cooperation map — photo background */
.coop-map {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #0a1b30;
  min-height: 420px;
  box-shadow: var(--shadow-lg);
}
.coop-map img.coop-photo {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
  transition: transform 1.2s ease;
}
.coop-map:hover img.coop-photo { transform: scale(1.04); }
.coop-map .coop-map-corner {
  position: absolute;
  top: 14px; left: 14px;
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(11,37,69,0.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,0.18);
}
.coop-map .coop-map-corner i { color: var(--color-accent-gold); }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--color-primary);
  color: rgba(255,255,255,0.78);
  padding: 4rem 0 1.5rem;
  margin-top: 4rem;
  position: relative;
}
.site-footer::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--color-accent-gold), var(--color-accent-emerald), var(--color-accent-gold));
}
.site-footer h5 {
  color: #fff;
  font-family: var(--font-display);
  font-size: 1.05rem;
  margin-bottom: 1.2rem;
  letter-spacing: .01em;
}
.site-footer a {
  color: rgba(255,255,255,0.7);
  display: inline-block;
  padding: 4px 0;
  transition: all var(--t-fast);
}
.site-footer a:hover { color: var(--color-accent-gold); transform: translateX(3px); }
.site-footer .footer-list { list-style: none; padding: 0; margin: 0; }
.site-footer .footer-list li { padding: 2px 0; }
.site-footer .contact-item { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.site-footer .contact-item i { color: var(--color-accent-gold); margin-top: 4px; }
.site-footer .newsletter input {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  color: #fff;
  border-radius: 999px;
  padding: .55rem 1rem;
}
.site-footer .newsletter input::placeholder { color: rgba(255,255,255,0.45); }
.site-footer .newsletter button { white-space: nowrap; }
.site-footer .social-icons a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  margin-right: 8px;
}
.site-footer .social-icons a:hover {
  background: var(--color-accent-gold);
  border-color: var(--color-accent-gold);
  color: var(--color-primary);
  transform: translateY(-2px);
}
.site-footer .footer-bottom {
  margin-top: 3rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
  font-size: .85rem;
}

/* ---------- Mobile Bottom Navbar ---------- */
.mobile-bottom-nav {
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0;
  background: rgba(255,255,255,0.96);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-top: 1px solid var(--color-neutral-200);
  z-index: 1040;
  box-shadow: 0 -6px 24px rgba(11,37,69,0.08);
}
.mobile-bottom-nav .nav-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.mobile-bottom-nav .mb-item {
  background: transparent; border: none;
  padding: 12px 6px 10px;
  display: flex; flex-direction: column; align-items: center;
  gap: 4px;
  color: var(--color-primary);
  font-size: 11px;
  font-weight: 600;
  transition: all var(--t-fast);
}
.mobile-bottom-nav .mb-item i { font-size: 1.15rem; color: var(--color-primary); }
.mobile-bottom-nav .mb-item:hover { background: var(--color-neutral-100); color: var(--color-accent-emerald); }
.mobile-bottom-nav .mb-item.active i { color: var(--color-accent-gold); }
@media (max-width: 991.98px) {
  .mobile-bottom-nav { display: block; }
  body { padding-bottom: 72px; }
}


/* Mobile offcanvas menu */
.offcanvas.mobile-menu {
  width: 88% !important;
  max-width: 380px;
}
.offcanvas.mobile-menu ul,
.offcanvas.mobile-menu li {
    list-style: none !important;
    list-style-type: none !important;
    padding-left: 0; /* На всякий случай сбрасываем левый отступ браузера */
}

/* Добивочка для самых упрямых браузеров (Safari/iOS), которые иногда игнорят list-style */
.offcanvas.mobile-menu li::marker {
    content: none !important;
    display: none !important;
}

.offcanvas.mobile-menu .offcanvas-header {
  background: var(--color-primary);
  color: #fff;
}
.offcanvas.mobile-menu .offcanvas-header img { height: 38px; }
.offcanvas.mobile-menu .btn-close { filter: invert(1) grayscale(1) brightness(2); }
.offcanvas.mobile-menu .mobile-menu-list {
  list-style: none; padding: 0; margin: 0;
}
.offcanvas.mobile-menu .mobile-menu-list > li > a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  color: var(--color-primary);
  font-weight: 600;
  font-size: .98rem;
  border-bottom: 1px solid var(--color-neutral-100);
  transition: all var(--t-fast);
  text-decoration: none;
}
.offcanvas.mobile-menu .mobile-menu-list > li > a > span {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.offcanvas.mobile-menu .mobile-menu-list > li > a > span > i {
  width: 26px;
  color: var(--color-accent-emerald);
}
.offcanvas.mobile-menu .mobile-menu-list > li > a:hover {
  background: var(--color-neutral-50);
  color: var(--color-accent-emerald);
}
/*.offcanvas.mobile-menu .mobile-menu-list > li.has-sub > a .chev {
  font-size: .65rem;
  color: var(--color-primary);
  width: 28px; height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-neutral-100);
  border-radius: 50%;
  transition: transform var(--t-normal), background var(--t-fast), color var(--t-fast);
}*/

.offcanvas.mobile-menu .has-sub > a .chev {
    font-size: .65rem;
    color: var(--color-primary);
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-neutral-100);
    border-radius: 50%;
    transition: transform var(--t-normal), background var(--t-fast), color var(--t-fast);
    flex-shrink: 0; /* Важно: чтобы кружок со стрелкой не сплющивался, если текст слишком длинный */
}
/*.offcanvas.mobile-menu .mobile-menu-list > li.has-sub > a[aria-expanded="true"] .chev {
  transform: rotate(180deg);
  background: var(--color-accent-gold);
  color: var(--color-primary);
}*/

.offcanvas.mobile-menu .has-sub > a[aria-expanded="true"] .chev {
    transform: rotate(180deg);
    background: var(--color-accent-gold);
    color: var(--color-primary);
}
/*.offcanvas.mobile-menu .mobile-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
  background: var(--color-neutral-50);
}*/
.offcanvas.mobile-menu .mobile-submenu li a {
    display: flex !important;
    align-items: center;
    padding: 12px 1.5rem 12px 3.4rem !important;
    font-size: .9rem;
    color: var(--color-neutral-700) !important;
    font-weight: 500 !important;
    border-bottom: 1px solid var(--color-neutral-100) !important;
    transition: all var(--t-fast);
    text-decoration: none;
}

/*.offcanvas.mobile-menu .mobile-submenu li a {
  display: flex !important;
  align-items: center;
  padding: 12px 1.5rem 12px 3.4rem !important;
  font-size: .9rem;
  color: var(--color-neutral-700) !important;
  font-weight: 500 !important;
  border-bottom: 1px solid var(--color-neutral-100) !important;
  transition: all var(--t-fast);
  text-decoration: none;
}*/
.offcanvas.mobile-menu .mobile-submenu li a .title-wrap {
    flex-grow: 1;
    display: inline-flex;
    align-items: center;
}

/*.offcanvas.mobile-menu .mobile-submenu li a::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 2px;
  background: var(--color-accent-gold);
  margin-right: 10px;
  transition: width var(--t-fast);
}*/
.offcanvas.mobile-menu .mobile-submenu li a::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 2px;
    background: var(--color-accent-gold);
    margin-right: 10px;
    transition: width var(--t-fast);
    flex-shrink: 0; /* Чтобы полоска не сжималась */
}

.offcanvas.mobile-menu .mobile-submenu li a:hover {
  background: #fff !important;
  color: var(--color-accent-emerald) !important;
}
.offcanvas.mobile-menu .mobile-submenu li a:hover::before {
  width: 26px;
}

/* ---------- Page header ---------- */
.page-header {
  background: linear-gradient(120deg, var(--color-primary) 0%, var(--color-primary-3) 100%);
  color: #fff;
  padding: 3.2rem 0 2.4rem;
  position: relative;
  overflow: hidden;
}
.page-header::after {
  content: '';
  position: absolute; right: -120px; top: -120px;
  width: 360px; height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,164,92,0.16), transparent 70%);
}
.page-header h1 { color: #fff; }
.page-header .breadcrumb {
  background: transparent; padding: 0; margin: 0 0 1rem;
  font-size: .85rem;
}
.page-header .breadcrumb a { color: rgba(255,255,255,0.7); }
.page-header .breadcrumb a:hover { color: var(--color-accent-gold); }
.page-header .breadcrumb-item.active { color: var(--color-accent-gold); }
.page-header .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,0.4); }

/* ---------- Filament Builder Blocks ---------- */
.builder-blocks { display: flex; flex-direction: column; gap: 3rem; }
.builder-blocks > section { scroll-margin-top: 100px; }

/* Текст блок */
.block-text {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 2rem 2.4rem;
  box-shadow: var(--shadow-sm);
}
.block-text p { font-size: 1.02rem; color: var(--color-neutral-700); margin-bottom: 1rem; }
.block-text p.lead-paragraph {
  font-size: 1.18rem;
  font-family: var(--font-display);
  color: var(--color-primary);
  font-weight: 500;
  line-height: 1.5;
}
.block-text ul.fancy-list {
  list-style: none; padding-left: 0;
}
.block-text ul.fancy-list li {
  position: relative;
  padding: 6px 0 6px 32px;
  color: var(--color-neutral-700);
}
.block-text ul.fancy-list li::before {
  content: '';
  position: absolute; left: 0; top: 14px;
  width: 18px; height: 2px;
  background: var(--color-accent-gold);
}
.block-text blockquote.fancy-quote {
  border-left: 4px solid var(--color-accent-gold);
  background: var(--color-neutral-50);
  padding: 1.2rem 1.6rem;
  margin: 1.4rem 0;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--color-primary);
}
.block-text blockquote.fancy-quote cite {
  display: block;
  margin-top: .6rem;
  font-style: normal;
  font-size: .85rem;
  color: var(--color-neutral-500);
}

/* Галерея */
.block-gallery .gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 12px;
}
.block-gallery .g-item {
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
  display: block;
  background: var(--color-neutral-100);
}
.block-gallery .g-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; display:block; }
.block-gallery .g-item:hover img { transform: scale(1.08); }
.block-gallery .g-item::after {
  content: '\f00e';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  inset: 0;
  background: rgba(11,37,69,0.4);
  color: #fff;
  font-size: 1.5rem;
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transition: opacity var(--t-normal);
}
.block-gallery .g-item:hover::after { opacity: 1; }
.block-gallery .g-item:nth-child(1) { grid-column: span 6; aspect-ratio: 4/3; }
.block-gallery .g-item:nth-child(2) { grid-column: span 3; aspect-ratio: 4/3; }
.block-gallery .g-item:nth-child(3) { grid-column: span 3; aspect-ratio: 4/3; }
.block-gallery .g-item:nth-child(4) { grid-column: span 4; aspect-ratio: 4/3; }
.block-gallery .g-item:nth-child(5) { grid-column: span 4; aspect-ratio: 4/3; }
.block-gallery .g-item:nth-child(6) { grid-column: span 4; aspect-ratio: 4/3; }
@media (max-width: 768px) {
  .block-gallery .g-item:nth-child(n) { grid-column: span 6 !important; }
}

/* Видео блок */
.block-video {
  background: var(--color-primary);
  border-radius: var(--radius-lg);
  overflow: hidden;
  padding: 1rem;
}
.block-video .ratio { border-radius: var(--radius-md); overflow: hidden; }
.block-video .v-caption { color: rgba(255,255,255,0.8); padding: 1rem; font-size: .9rem; }

/* Внешняя ссылка-карточка */
.block-link-card {
  display: flex; align-items: center; gap: 1.4rem;
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-lg);
  padding: 1.6rem 1.8rem;
  box-shadow: var(--shadow-sm);
  transition: all var(--t-normal);
  text-decoration: none;
}
.block-link-card:hover {
  border-color: var(--color-accent-gold);
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}
.block-link-card .lc-icon {
  width: 64px; height: 64px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent-emerald));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.block-link-card .lc-content { flex: 1; }
.block-link-card .lc-content h4 { color: var(--color-primary); margin-bottom: .3rem; font-size: 1.1rem; }
.block-link-card .lc-content p { color: var(--color-neutral-500); margin: 0; font-size: .9rem; }
.block-link-card .lc-arrow {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--color-neutral-100);
  color: var(--color-primary);
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--t-normal);
  flex-shrink: 0;
}
.block-link-card:hover .lc-arrow {
  background: var(--color-accent-gold);
  color: var(--color-primary);
  transform: translateX(6px);
}

/* Аккордеон */
.block-accordion .accordion { border: none; }
.block-accordion .accordion-item {
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-md) !important;
  margin-bottom: 10px;
  overflow: hidden;
}
.block-accordion .accordion-button {
  background: #fff;
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--color-primary);
  padding: 1.1rem 1.4rem;
  font-size: 1.02rem;
}
.block-accordion .accordion-button:not(.collapsed) {
  background: var(--color-neutral-50);
  color: var(--color-primary);
  box-shadow: none;
}
.block-accordion .accordion-button::after {
  background-image: none;
  content: '+';
  font-family: var(--font-body);
  font-size: 1.6rem; line-height: 1;
  width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--color-neutral-100);
  color: var(--color-primary);
  border-radius: 50%;
  transition: all var(--t-normal);
}
.block-accordion .accordion-button:not(.collapsed)::after {
  content: '–';
  background: var(--color-accent-gold);
  transform: rotate(0);
}
.block-accordion .accordion-button:focus { box-shadow: none; }
.block-accordion .accordion-body { color: var(--color-neutral-700); padding: 0 1.4rem 1.4rem; }

/* Документы для скачивания */
.block-files .file-row {
  display: flex; align-items: center; gap: 1rem;
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  padding: 1rem 1.2rem;
  margin-bottom: 10px;
  transition: all var(--t-normal);
}
.block-files .file-row:hover {
  border-color: var(--color-accent-emerald);
  transform: translateX(3px);
  box-shadow: var(--shadow-sm);
}
.block-files .f-icon {
  width: 48px; height: 56px;
  border-radius: var(--radius-sm);
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: .72rem;
  font-family: var(--font-body);
  letter-spacing: .04em;
  flex-shrink: 0;
  position: relative;
}
.block-files .f-icon::after {
  content: ''; position: absolute; top: 0; right: 0;
  border-top: 12px solid #fff; border-left: 12px solid transparent;
}
.block-files .f-icon.pdf { background: #C8442E; }
.block-files .f-icon.doc { background: var(--color-primary-2); }
.block-files .f-icon.xls { background: #2A7A3E; }
.block-files .f-content { flex: 1; }
.block-files .f-content h6 {
  color: var(--color-primary); margin-bottom: 3px; font-size: .98rem; font-weight: 600;
}
.block-files .f-content .f-meta {
  color: var(--color-neutral-500); font-size: .8rem;
  display: flex; gap: 12px; flex-wrap: wrap;
}

/* PDF viewer */
.block-pdf {
  background: #fff;
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-lg);
  padding: 1.4rem;
}
.block-pdf .pdf-preview {
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--color-neutral-50), var(--color-neutral-100));
  padding: 2.2rem;
  text-align: center;
  border: 2px dashed var(--color-neutral-300);
  transition: all var(--t-normal);
  cursor: pointer;
}
.block-pdf .pdf-preview:hover {
  border-color: var(--color-accent-gold);
  background: #fff;
}
.block-pdf .pdf-preview .pdf-icon {
  width: 76px; height: 76px;
  border-radius: var(--radius-md);
  background: #C8442E;
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 2rem;
  margin-bottom: 1rem;
}

/* ---------- News detail ---------- */
.news-detail-body {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 2.2rem 2.4rem;
  box-shadow: var(--shadow-sm);
}
.news-detail-body .news-meta {
  display: flex; gap: 1.5rem; flex-wrap: wrap;
  padding: 1rem 0;
  border-top: 1px solid var(--color-neutral-200);
  border-bottom: 1px solid var(--color-neutral-200);
  margin: 1.6rem 0 2rem;
  font-size: .9rem;
  color: var(--color-neutral-500);
}
.news-detail-body .news-meta span { display: inline-flex; align-items: center; gap: 6px; }
.news-detail-body .news-meta i { color: var(--color-accent-emerald); }
.news-detail-body .news-meta .cat-tag {
  background: var(--color-primary); color: #fff;
  padding: 4px 12px; border-radius: 999px;
  font-size: .78rem; letter-spacing: .04em;
}
.news-detail-body .hero-img {
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 1.6rem;
}

.hero-video-player {
    width: 100%;
    height: 100%;
    max-height: 500px;
    object-fit: cover;
    display: block;
}

.hero-video-iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: 500px;
    display: block;
}
.news-detail-body .hero-img img { width: 100%; display: block; }
.news-detail-body p { font-size: 1.02rem; color: var(--color-neutral-700); margin-bottom: 1.1rem; line-height: 1.75; }
.news-detail-body .inline-gallery { margin: 1.6rem 0; }

.share-block {
  background: var(--color-neutral-50);
  border-radius: var(--radius-md);
  padding: 1.2rem 1.4rem;
  margin-top: 2rem;
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.share-block .share-label { font-weight: 600; color: var(--color-primary); }
.share-block a {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff;
  color: var(--color-primary);
  border: 1px solid var(--color-neutral-200);
  transition: all var(--t-fast);
}
.share-block a.tg:hover { background: #229ED9; color: #fff; border-color: #229ED9; }
.share-block a.wa:hover { background: #25D366; color: #fff; border-color: #25D366; }
.share-block a.fb:hover { background: #1877F2; color: #fff; border-color: #1877F2; }
.share-block a.x:hover  { background: #000; color: #fff; border-color: #000; }

/* Sidebar */
.sidebar-card {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 1.4rem 1.5rem;
  box-shadow: var(--shadow-sm);
  margin-bottom: 1.5rem;
}
.sidebar-card h4 {
  font-size: 1.1rem;
  margin-bottom: 1.2rem;
  position: relative;
  padding-bottom: .5rem;
}
.sidebar-card h4::after {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 36px; height: 2px; background: var(--color-accent-gold);
}
.sidebar-news-item {
  display: flex; gap: 12px;
  padding: .7rem 0;
  border-bottom: 1px dashed var(--color-neutral-200);
  text-decoration: none;
}
.sidebar-news-item:last-child { border-bottom: none; }
.sidebar-news-item img {
  width: 72px; height: 72px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
}
.sidebar-news-item h6 {
  font-size: .88rem;
  color: var(--color-primary);
  font-weight: 600;
  margin-bottom: 4px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sidebar-news-item:hover h6 { color: var(--color-accent-emerald); }
.sidebar-news-item .sd-date { font-size: .74rem; color: var(--color-neutral-500); }

/* ---------- Foresight list ---------- */
.foresight-card {
  position: relative;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-3));
  color: #fff;
  border-radius: var(--radius-lg);
  padding: 2rem;
  min-height: 360px;
  display: flex; flex-direction: column;
  overflow: hidden;
  transition: all var(--t-normal);
  box-shadow: var(--shadow);
  height: 100%;
}
.foresight-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}
.foresight-card::before {
  content: '';
  position: absolute;
  right: -80px; bottom: -80px;
  width: 280px; height: 280px;
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 14px);
  border-radius: 50%;
  pointer-events: none;
}
.foresight-card.theme-emerald { background: linear-gradient(135deg, #0a5d44, #0F7B5B); }
.foresight-card.theme-gold { background: linear-gradient(135deg, #8a6b34, #C9A45C); color: #1a1a1a; }
.foresight-card.theme-gold .f-year, .foresight-card.theme-gold .status { color: #1a1a1a; }
.foresight-card.theme-gold p { color: rgba(0,0,0,0.7); }
.foresight-card .f-year {
  font-family: var(--font-display);
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-accent-gold);
  letter-spacing: -0.02em;
}
.foresight-card.theme-emerald .f-year { color: var(--color-accent-gold); }
.foresight-card .f-label {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  color: rgba(255,255,255,0.7);
  margin-top: .25rem;
}
.foresight-card h3 {
  color: #fff;
  font-size: 1.25rem;
  margin: 1rem 0 .8rem;
  flex: 1;
}
.foresight-card.theme-gold h3 { color: #1a1a1a; }
.foresight-card p { color: rgba(255,255,255,0.78); font-size: .9rem; margin-bottom: 1.4rem; }
.foresight-card .status {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.12);
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 12px;
  margin-bottom: 1rem;
  width: fit-content;
}
.foresight-card .status.completed { background: rgba(15,123,91,0.5); }
.foresight-card .status.in-progress { background: rgba(201,164,92,0.4); }
.foresight-card .f-cta {
  margin-top: auto;
  align-self: flex-start;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  border-radius: 999px;
  padding: .55rem 1.2rem;
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600;
  font-size: .88rem;
  transition: all var(--t-normal);
  text-decoration: none;
}
.foresight-card.theme-gold .f-cta { color: #1a1a1a; border-color: rgba(0,0,0,0.2); background: rgba(0,0,0,0.05); }
.foresight-card .f-cta:hover {
  background: var(--color-accent-gold);
  color: var(--color-primary);
  border-color: var(--color-accent-gold);
  gap: 12px;
}

/* ---------- Feedback page ---------- */
.contacts-card {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
  height: 100%;
}
.contacts-card .contact-row {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px dashed var(--color-neutral-200);
}
.contacts-card .contact-row:last-of-type { border-bottom: none; }
.contacts-card .contact-icon {
  width: 44px; height: 44px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-3));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.05rem;
  flex-shrink: 0;
}
.contacts-card .contact-label {
  font-size: .8rem; color: var(--color-neutral-500);
  text-transform: uppercase; letter-spacing: .1em;
}
.contacts-card .contact-value {
  color: var(--color-primary); font-weight: 600; font-size: 1rem;
}
.map-frame {
  margin-top: 1.5rem;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--color-neutral-200);
  height: 280px;
  background: var(--color-neutral-100);
  display: flex; align-items: center; justify-content: center;
  position: relative;
}
.map-frame iframe { width: 100%; height: 100%; border: 0; }

.feedback-form {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
  height: 100%;
}
.feedback-form .form-label {
  font-weight: 600; color: var(--color-primary); font-size: .92rem; margin-bottom: 6px;
}
.feedback-form .form-control {
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  padding: .8rem 1rem;
  font-size: .95rem;
  transition: all var(--t-fast);
}
.feedback-form .form-control:focus {
  border-color: var(--color-accent-gold);
  box-shadow: 0 0 0 3px rgba(201,164,92,0.18);
}
.feedback-form .file-drop {
  border: 2px dashed var(--color-neutral-300);
  border-radius: var(--radius-md);
  padding: 1.6rem;
  text-align: center;
  background: var(--color-neutral-50);
  transition: all var(--t-normal);
  cursor: pointer;
  position: relative;
}
.feedback-form .file-drop:hover, .feedback-form .file-drop.dragover {
  border-color: var(--color-accent-emerald);
  background: #fff;
}
.feedback-form .file-drop input[type="file"] {
  position: absolute; inset: 0; opacity: 0; cursor: pointer;
}
.feedback-form .file-drop .fd-icon {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--color-primary);
  color: var(--color-accent-gold);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  margin-bottom: .65rem;
}
.feedback-form .file-drop .fd-title { font-weight: 600; color: var(--color-primary); }
.feedback-form .file-drop .fd-hint { font-size: .82rem; color: var(--color-neutral-500); margin-top: 2px; }
.feedback-form .file-list { margin-top: 10px; }
.feedback-form .file-list .file-chip {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--color-neutral-100);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: .85rem;
  margin: 4px 4px 0 0;
}
.feedback-form .form-check-input:checked {
  background-color: var(--color-accent-emerald);
  border-color: var(--color-accent-emerald);
}
.feedback-form .submit-btn {
  background: var(--color-primary);
  color: #fff;
  padding: .9rem 2rem;
  font-weight: 700;
  border-radius: 999px;
  border: none;
  transition: all var(--t-normal);
  display: inline-flex; align-items: center; gap: 10px;
}
.feedback-form .submit-btn:hover {
  background: var(--color-accent-emerald);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
.feedback-form .submit-btn .spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #fff;
  border-radius: 50%;
  opacity: 0;
  transition: opacity var(--t-fast);
}
.feedback-form .submit-btn:hover .spinner {
  opacity: 1;
  animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ============================================================
   v2 — Foresight Timeline (index2.html)
   ============================================================ */
.foresight-v2 {
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--radius-xl);
  padding: 3rem 2.4rem;
  position: relative;
  overflow: hidden;
}
.foresight-v2::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(700px 360px at 90% 0%, rgba(201,164,92,0.16), transparent 60%),
    radial-gradient(500px 360px at 5% 100%, rgba(15,123,91,0.22), transparent 60%);
  pointer-events: none;
}
.foresight-v2 > * { position: relative; z-index: 1; }

.timeline-years {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin: 1.6rem 0 .8rem;
  padding: 1rem 0 .5rem;
}
.timeline-years .timeline-line {
  position: absolute;
  left: 8%; right: 8%; top: 30px;
  height: 2px;
  background: linear-gradient(90deg, rgba(255,255,255,0.12) 0%, rgba(201,164,92,0.5) 50%, var(--color-accent-gold) 100%);
  z-index: 0;
}
.timeline-years .t-year {
  position: relative;
  z-index: 1;
  background: transparent;
  border: none;
  color: rgba(255,255,255,0.65);
  font-family: var(--font-display);
  font-weight: 700;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 4px;
  cursor: pointer;
  transition: all var(--t-normal);
}
.timeline-years .t-year .dot {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--color-primary-2);
  border: 2px solid rgba(255,255,255,0.4);
  transition: all var(--t-normal);
  box-shadow: 0 0 0 4px rgba(255,255,255,0);
}
.timeline-years .t-year .y {
  font-size: 1.1rem;
  letter-spacing: 0.02em;
}
.timeline-years .t-year:hover { color: #fff; }
.timeline-years .t-year:hover .dot {
  background: var(--color-accent-gold);
  border-color: var(--color-accent-gold);
}
.timeline-years .t-year.active { color: var(--color-accent-gold); }
.timeline-years .t-year.active .dot {
  background: var(--color-accent-gold);
  border-color: #fff;
  box-shadow: 0 0 0 5px rgba(201,164,92,0.22);
  transform: scale(1.12);
}
.timeline-years .t-year.active .y { font-size: 1.4rem; }

/* Featured card */
.fy-grid { margin-top: 1.4rem; }
.fy-featured {
  display: block;
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 420px;
  background-size: cover;
  background-position: center;
  text-decoration: none;
  color: #fff;
  transition: transform var(--t-normal);
}
.fy-featured:hover { transform: translateY(-3px); }
.fy-featured .fy-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(11,37,69,0.4) 0%, rgba(11,37,69,0.85) 60%, rgba(11,37,69,0.95) 100%);
  transition: background var(--t-normal);
}
.fy-featured:hover .fy-overlay {
  background: linear-gradient(180deg, rgba(11,37,69,0.3) 0%, rgba(11,37,69,0.8) 55%, rgba(11,37,69,0.96) 100%);
}
.fy-featured .fy-content {
  position: absolute;
  inset: auto 0 0 0;
  padding: 2rem 2rem 1.8rem;
}
.fy-featured h3 {
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  margin: .7rem 0 .8rem;
  line-height: 1.25;
}
.fy-featured p {
  color: rgba(255,255,255,0.82);
  font-size: .95rem;
  margin-bottom: 1.1rem;
  max-width: 540px;
}
.fy-meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.fy-year-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  background: var(--color-accent-gold);
  color: var(--color-primary);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  border-radius: 999px;
  letter-spacing: 0;
}
.fy-year-pill.sm { font-size: .82rem; padding: 3px 10px; }
.fy-status {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(201,164,92,0.16);
  color: var(--color-accent-gold);
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid rgba(201,164,92,0.28);
}
.fy-status.done {
  background: rgba(15,123,91,0.18);
  color: #6dd3a8;
  border-color: rgba(15,123,91,0.4);
}
.fy-status.alt { background: rgba(255,255,255,0.08); color: #fff; border-color: rgba(255,255,255,0.18); }
.fy-stats {
  display: flex; gap: 1.4rem; flex-wrap: wrap;
  padding: .7rem 0;
  border-top: 1px solid rgba(255,255,255,0.12);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  margin-bottom: 1rem;
  font-size: .82rem;
  color: rgba(255,255,255,0.7);
}
.fy-stats strong {
  color: var(--color-accent-gold);
  font-family: var(--font-display);
  font-size: 1.15rem;
  margin-right: 4px;
}
.fy-cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--color-accent-gold);
  color: var(--color-primary);
  padding: .55rem 1.2rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .88rem;
  transition: all var(--t-fast);
}
.fy-featured:hover .fy-cta {
  background: #fff;
  gap: 12px;
}

/* Side cards */
.fy-side {
  display: block;
  text-decoration: none;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  padding: 1.2rem 1.3rem;
  margin-bottom: 12px;
  transition: all var(--t-normal);
  color: #fff;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.fy-side:last-child { margin-bottom: 0; }
.fy-side:hover {
  background: rgba(255,255,255,0.1);
  border-color: var(--color-accent-gold);
  transform: translateX(4px);
}
.fy-side-top {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: .7rem;
}
.fy-side h4 {
  color: #fff;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: .6rem;
}
.fy-side p {
  color: rgba(255,255,255,0.65);
  font-size: .85rem;
  margin-bottom: .8rem;
}
.fy-side-cta {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--color-accent-gold);
  font-weight: 600;
  font-size: .82rem;
  transition: gap var(--t-fast);
}
.fy-side:hover .fy-side-cta { gap: 12px; }
.fy-empty {
  width: 100%;
  text-align: center;
  padding: 2rem;
  color: rgba(255,255,255,0.4);
  border: 1px dashed rgba(255,255,255,0.18);
  border-radius: var(--radius-md);
}
.fy-empty i { font-size: 2.4rem; margin-bottom: .8rem; display: block; color: rgba(255,255,255,0.3); }

@media (max-width: 768px) {
  .foresight-v2 { padding: 2rem 1.2rem; }
  .timeline-years { gap: 8px; overflow-x: auto; justify-content: flex-start; }
  .timeline-years .t-year { flex-shrink: 0; min-width: 60px; }
  .timeline-years .timeline-line { display: none; }
  .fy-featured { min-height: 360px; }
  .fy-featured h3 { font-size: 1.2rem; }
  .fy-featured .fy-content { padding: 1.4rem; }
}

/* ============================================================
   v2 — Centers grid (index2.html)
   ============================================================ */
.centers-v2 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
@media (max-width: 1199.98px) { .centers-v2 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .centers-v2 { grid-template-columns: 1fr; } }

.cv2-card {
  background: #fff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: transform var(--t-normal), box-shadow var(--t-normal);
  border: 1px solid var(--color-neutral-200);
  position: relative;
}
.cv2-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}
.cv2-photo {
  position: relative;
  height: 200px;
  background-size: cover;
  background-position: center;
}
.cv2-photo::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(11,37,69,0.2) 0%, rgba(11,37,69,0.55) 100%);
  transition: background var(--t-normal);
}
.cv2-card:hover .cv2-photo::after {
  background: linear-gradient(180deg, rgba(11,37,69,0.18) 0%, rgba(15,123,91,0.65) 100%);
}
.cv2-tag {
  position: absolute;
  top: 16px; left: 16px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.4rem;
  color: rgba(255,255,255,0.85);
  z-index: 1;
  letter-spacing: -0.02em;
}
.cv2-icon {
  position: absolute;
  bottom: -22px; right: 20px;
  width: 56px; height: 56px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--color-accent-gold), var(--color-accent-gold-2));
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  z-index: 2;
  box-shadow: var(--shadow);
  transition: transform var(--t-normal);
}
.cv2-card:hover .cv2-icon {
  transform: rotate(-8deg) scale(1.08);
}
.cv2-body {
  padding: 2rem 1.4rem 1.4rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.cv2-body h3 {
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: .55rem;
  line-height: 1.3;
}
.cv2-body p {
  color: var(--color-neutral-500);
  font-size: .88rem;
  margin-bottom: 1rem;
  flex: 1;
}
.cv2-stats {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .78rem;
  color: var(--color-neutral-500);
  padding: .7rem 0;
  border-top: 1px solid var(--color-neutral-100);
  margin-bottom: .8rem;
}
.cv2-stats strong {
  color: var(--color-accent-emerald);
  font-family: var(--font-display);
  font-size: 1rem;
  margin-right: 2px;
}
.cv2-stats .sep {
  width: 1px; height: 12px;
  background: var(--color-neutral-300);
}
.cv2-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-primary);
  font-weight: 700;
  font-size: .85rem;
  letter-spacing: .01em;
  transition: gap var(--t-fast), color var(--t-fast);
}

.cv2-link i { color: var(--color-accent-gold); transition: transform var(--t-fast); }
.cv2-card:hover .cv2-link { color: var(--color-accent-emerald); gap: 12px; }
.cv2-card:hover .cv2-link i { transform: translateX(2px); }

/* ---------- Helpers ---------- */
.bg-soft { background: var(--color-neutral-50); }
.text-muted-2 { color: var(--color-neutral-500); }
.divider-soft { height: 1px; background: var(--color-neutral-200); margin: 2rem 0; }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
  .top-line .top-search { display: none !important; }
  .top-line { font-size: .8rem; padding: .4rem 0; text-align: center }
  .top-line .social-icons a { width: 28px; height: 28px; }
  .site-navbar .logos-wrap img.logo-main { height: 42px; }
  .site-navbar .logos-wrap img.logo-emblem { height: 40px; }
  .hero .hero-slide { min-height: 460px; }
  .news-detail-body, .block-text { padding: 1.4rem; }
  .foresight-section { padding: 2rem 1.2rem; }
  .coop-section { padding: 2rem 1.2rem; }
  .center-card { padding: 1.4rem; }
  .partner-logos { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 480px) {
  .partner-logos { grid-template-columns: repeat(2, 1fr); }
  .kpi-grid { grid-template-columns: 1fr; }
  .hero-actions .btn { width: 100%; justify-content: center; }
}

/* ============================================================
   News Page — стили секции «Все новости»
   ============================================================ */

.news-page {
    --np-radius: 16px;
    --np-radius-sm: 10px;
    --np-border: #E2E8F0;
    --np-muted: #64748B;
    background: var(--color-neutral-50, #F8FAFC);
    padding: 3rem 0 4rem;
}

.news-page .np-header {
    margin-bottom: 2rem;
}
.news-page .np-header h1 {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 700;
    margin-bottom: .5rem;
    position: relative;
    padding-bottom: .6rem;
}
.news-page .np-header h1::after {
    content: '';
    position: absolute;
    left: 0; bottom: 0;
    width: 64px; height: 3px;
    background: linear-gradient(90deg, var(--color-accent-gold, #C9A45C), var(--color-accent-emerald, #0F7B5B));
    border-radius: 2px;
}
.news-page .np-header p {
    color: var(--np-muted);
    max-width: 720px;
    margin: .6rem 0 0;
}

/* ----- Сайдбар фильтров ----- */
.news-page .filter-card {
    background: #fff;
    border-radius: var(--np-radius);
    border: 1px solid var(--np-border);
    box-shadow: 0 1px 2px rgba(11,37,69,0.04), 0 1px 4px rgba(11,37,69,0.03);
    padding: 1.5rem;
    position: sticky;
    top: 100px;
}
.news-page .filter-card .fc-title {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--np-border);
}
.news-page .filter-card .fc-title .fc-clear {
    font-family: var(--font-body, 'Manrope', sans-serif);
    font-size: .78rem;
    font-weight: 600;
    color: var(--color-accent-emerald, #0F7B5B);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: color .18s ease;
}
.news-page .filter-card .fc-title .fc-clear:hover {
    color: var(--color-primary, #0B2545);
}
.news-page .filter-card .fc-section {
    margin-bottom: 1.4rem;
}
.news-page .filter-card .fc-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--np-muted);
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: .65rem;
    display: block;
}
.news-page .filter-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.news-page .fc-check {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border-radius: var(--np-radius-sm);
    cursor: pointer;
    transition: background .18s ease;
    position: relative;
    user-select: none;
}
.news-page .fc-check:hover {
    background: var(--color-neutral-50, #F8FAFC);
}
.news-page .fc-check input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px; height: 18px;
    border: 2px solid #CBD5E1;
    border-radius: 5px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    transition: all .18s ease;
    margin: 0;
}
.news-page .fc-check input[type="checkbox"]:hover {
    border-color: var(--color-accent-emerald, #0F7B5B);
}
.news-page .fc-check input[type="checkbox"]:checked {
    background: var(--color-accent-emerald, #0F7B5B);
    border-color: var(--color-accent-emerald, #0F7B5B);
}
.news-page .fc-check input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 4px; top: 1px;
    width: 5px; height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.news-page .fc-check .fc-text {
    color: var(--color-primary, #0B2545);
    font-weight: 500;
    font-size: .93rem;
    flex: 1;
}
.news-page .fc-check .fc-count {
    font-size: .78rem;
    color: var(--np-muted);
    background: var(--color-neutral-50, #F8FAFC);
    padding: 2px 9px;
    border-radius: 999px;
    font-weight: 600;
}
.news-page .fc-check input[type="checkbox"]:checked ~ .fc-text {
    color: var(--color-accent-emerald, #0F7B5B);
    font-weight: 600;
}
.news-page .fc-check input[type="checkbox"]:checked ~ .fc-count {
    background: rgba(15,123,91,0.1);
    color: var(--color-accent-emerald, #0F7B5B);
}

/* Поиск внутри сайдбара */
.news-page .fc-search {
    position: relative;
    margin-bottom: 1.2rem;
}
.news-page .fc-search input {
    width: 100%;
    border: 1px solid var(--np-border);
    border-radius: 999px;
    padding: 9px 38px 9px 14px;
    font-size: .88rem;
    background: var(--color-neutral-50, #F8FAFC);
    transition: all .18s ease;
}
.news-page .fc-search input:focus {
    outline: none;
    border-color: var(--color-accent-gold, #C9A45C);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(201,164,92,0.18);
}
.news-page .fc-search i {
    position: absolute;
    right: 14px; top: 50%;
    transform: translateY(-50%);
    color: var(--np-muted);
    font-size: .82rem;
}

/* ----- Тулбар (сортировка + счётчик) ----- */
.news-page .np-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    background: #fff;
    border: 1px solid var(--np-border);
    border-radius: var(--np-radius);
    padding: .9rem 1.25rem;
    box-shadow: 0 1px 2px rgba(11,37,69,0.04);
}
.news-page .np-counter {
    color: var(--color-primary, #0B2545);
    font-weight: 600;
    font-size: .93rem;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.news-page .np-counter i {
    color: var(--color-accent-emerald, #0F7B5B);
}
.news-page .np-counter strong {
    font-family: var(--font-display, 'Spectral', serif);
    font-size: 1.1rem;
    color: var(--color-accent-emerald, #0F7B5B);
}
.news-page .np-toolbar-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.news-page .np-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.news-page .np-sort label {
    font-size: .82rem;
    color: var(--np-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.news-page .np-sort .np-select-wrap {
    position: relative;
}
.news-page .np-sort select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--color-neutral-50, #F8FAFC);
    border: 1px solid var(--np-border);
    border-radius: 999px;
    padding: 8px 36px 8px 16px;
    font-family: var(--font-body, 'Manrope', sans-serif);
    font-size: .88rem;
    font-weight: 600;
    color: var(--color-primary, #0B2545);
    cursor: pointer;
    transition: all .18s ease;
    min-width: 200px;
}
.news-page .np-sort select:focus {
    outline: none;
    border-color: var(--color-accent-gold, #C9A45C);
    box-shadow: 0 0 0 3px rgba(201,164,92,0.18);
}
.news-page .np-sort .np-select-wrap::after {
    content: '\f078';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    right: 14px; top: 50%;
    transform: translateY(-50%);
    color: var(--color-accent-emerald, #0F7B5B);
    font-size: .7rem;
    pointer-events: none;
}

/* Переключатель вида: сетка / список */
.news-page .np-view {
    display: inline-flex;
    background: var(--color-neutral-50, #F8FAFC);
    border: 1px solid var(--np-border);
    border-radius: 999px;
    padding: 3px;
    gap: 2px;
}
.news-page .np-view button {
    background: transparent;
    border: none;
    width: 34px; height: 34px;
    border-radius: 50%;
    color: var(--np-muted);
    transition: all .18s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
}
.news-page .np-view button.active {
    background: var(--color-primary, #0B2545);
    color: #fff;
}
.news-page .np-view button:hover:not(.active) {
    color: var(--color-primary, #0B2545);
}

/* ----- Активные фильтры (чипы) ----- */
.news-page .active-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}
.news-page .active-filters .chip {
    background: #fff;
    border: 1px solid var(--np-border);
    color: var(--color-primary, #0B2545);
    padding: 5px 12px 5px 14px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all .18s ease;
}
.news-page .active-filters .chip:hover {
    border-color: var(--color-accent-gold, #C9A45C);
}
.news-page .active-filters .chip button {
    background: var(--color-neutral-50, #F8FAFC);
    border: none;
    width: 18px; height: 18px;
    border-radius: 50%;
    color: var(--np-muted);
    font-size: .65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .18s ease;
}
.news-page .active-filters .chip button:hover {
    background: #C8442E;
    color: #fff;
}

/* ----- Карточка новости (повторяет .news-card главной) ----- */
.news-page .news-card {
    background: #fff;
    border-radius: var(--np-radius);
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(11,37,69,0.06), 0 1px 4px rgba(11,37,69,0.04);
    transition: transform .3s ease, box-shadow .3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    text-decoration: none;
}
.news-page .news-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 38px rgba(11,37,69,0.14), 0 8px 16px rgba(11,37,69,0.08);
}
.news-page .news-card .img-wrap {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #F1F5F9;
}
.news-page .news-card .img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
}
.news-page .news-card:hover .img-wrap img { transform: scale(1.06); }
.news-page .news-card .cat-badge {
    position: absolute;
    top: 14px; left: 14px;
    background: rgba(11,37,69,0.92);
    color: #fff;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .12em;
    padding: 5px 12px;
    border-radius: 999px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    font-weight: 600;
}
.news-page .news-card .card-body {
    padding: 1.1rem 1.25rem 1.35rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.news-page .news-card .news-date {
    font-size: .78rem;
    color: var(--np-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: .55rem;
    letter-spacing: .04em;
}
.news-page .news-card .news-title {
    font-family: var(--font-display, 'Spectral', serif);
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--color-primary, #0B2545);
    line-height: 1.35;
    margin-bottom: 1rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news-page .news-card .read-more {
    margin-top: auto;
    color: var(--color-accent-emerald, #0F7B5B);
    font-weight: 600;
    font-size: .85rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap .18s ease, color .18s ease;
}
.news-page .news-card:hover .read-more {
    gap: 12px;
    color: var(--color-primary, #0B2545);
}

/* ----- Пагинация ----- */
.news-page .np-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 2.5rem;
    flex-wrap: wrap;
}
.news-page .np-pagination a,
.news-page .np-pagination span {
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--np-border);
    background: #fff;
    color: var(--color-primary, #0B2545);
    font-weight: 600;
    font-size: .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all .18s ease;
}
.news-page .np-pagination a:hover {
    border-color: var(--color-accent-gold, #C9A45C);
    background: var(--color-neutral-50, #F8FAFC);
    transform: translateY(-1px);
}
.news-page .np-pagination .active {
    background: var(--color-primary, #0B2545);
    color: #fff;
    border-color: var(--color-primary, #0B2545);
}
.news-page .np-pagination .dots {
    border: none;
    background: transparent;
    color: var(--np-muted);
}
.news-page .np-pagination .nav-arrow {
    color: var(--color-accent-emerald, #0F7B5B);
}
.news-page .np-pagination .nav-arrow:hover {
    background: var(--color-accent-emerald, #0F7B5B);
    color: #fff;
    border-color: var(--color-accent-emerald, #0F7B5B);
}

/* ----- Mobile фильтр-кнопка ----- */
.news-page .mobile-filter-trigger {
    display: none;
    width: 100%;
    background: var(--color-primary, #0B2545);
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight: 700;
    margin-bottom: 1rem;
    justify-content: center;
    align-items: center;
    gap: 10px;
}
.news-page .mobile-filter-trigger .badge-count {
    background: var(--color-accent-gold, #C9A45C);
    color: var(--color-primary, #0B2545);
    padding: 2px 9px;
    border-radius: 999px;
    font-size: .78rem;
}

@media (max-width: 991.98px) {
    .news-page .filter-card { position: static; }
    .news-page .mobile-filter-trigger { display: inline-flex; }
    .news-page .np-toolbar { padding: .75rem 1rem; }
    .news-page .np-toolbar-right { width: 100%; justify-content: space-between; }
    .news-page .np-sort select { min-width: 170px; }
}
@media (max-width: 575.98px) {
    .news-page { padding: 2rem 0 3rem; }
    .news-page .np-counter { width: 100%; }
    .news-page .np-toolbar-right { flex-direction: column; align-items: stretch; }
    .news-page .np-sort { justify-content: space-between; }
    .news-page .np-sort select { flex: 1; }
}

/*Timeline*/

.v2-timeline-wrapper {
    position: relative;
    padding: 10px 0;
}

.v2-timeline-item {
    display: flex;
    position: relative;
    margin-bottom: 40px;
    gap: 30px;
}

.v2-timeline-item:last-child {
    margin-bottom: 0;
}

.v2-timeline-axis {
    position: relative;
    display: flex;
    justify-content: center;
    width: 30px;
    flex-shrink: 0;
}

.v2-timeline-axis::after {
    content: '';
    position: absolute;
    top: 24px;
    bottom: -50px;
    width: 2px;
    background-color: var(--color-accent-emerald, #10b981);
    opacity: 0.25;
}

.v2-timeline-item:last-child .v2-timeline-axis::after {
    display: none;
}

.v2-timeline-dot {
    position: absolute;
    top: 10px;
    width: 14px;
    height: 14px;
    background-color: var(--color-accent-emerald, #10b981);
    border-radius: 50%;
    z-index: 2;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.15);
    transition: transform 0.3s ease;
}

.v2-timeline-time {
    width: 130px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 2px;
}

.v2-full-date {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 500;
    margin-bottom: 2px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.v2-big-year {
    font-size: 2.2rem;
    font-weight: 800;
    color: var(--color-accent-emerald, #10b981);
    line-height: 1;
    font-family: var(--font-body, sans-serif);
}
.v2-timeline-content {
    flex-grow: 1;
    background: #ffffff;
    padding: 24px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
    transition: all 0.3s ease;
}

.v2-timeline-content h4 {
    font-family: var(--font-display, serif);
    font-size: 1.2rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 10px;
}

.v2-timeline-content p {
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

.v2-timeline-item:hover .v2-timeline-dot {
    transform: scale(1.3);
    box-shadow: 0 0 0 6px rgba(16, 185, 129, 0.3);
}
.v2-timeline-item:hover .v2-timeline-content {
    border-color: var(--color-accent-emerald, #10b981);
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.05);
}

@media (max-width: 767px) {
    .v2-timeline-item {
        flex-direction: column;
        gap: 10px;
        padding-left: 25px;
    }
    .v2-timeline-axis {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
    }
    .v2-timeline-axis::after {
        top: 15px;
        bottom: -30px;
    }
    .v2-timeline-dot {
        top: 4px;
    }
    .v2-timeline-time {
        width: 100%;
    }
    .v2-big-year {
        font-size: 1.8rem;
    }
}

/*Members block*/

.member-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.member-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
    border-color: var(--color-accent-emerald, #10b981);
}

.member-photo-wrapper {
    width: 100%;
    max-width: 240px;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 8px;
    background-color: #f8fafc;
}

.member-photo-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.member-card:hover .member-photo-wrapper img {
    transform: scale(1.04);
}

.member-photo-placeholder {
    width: 100%;
    height: 100%;
    background: #f1f5f9;
}

.member-name {
    font-family: var(--font-body, sans-serif);
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

.member-position {
    font-size: 0.85rem;
    color: #64748b;
    line-height: 1.4;
    margin-top: 6px;
}

.text-emerald {
    color: var(--color-accent-emerald, #10b981) !important;
}

a.member-card {
    cursor: pointer;
    display: block;
}

.member-card:hover .member-more-link i {
    transform: translateX(3px);
    transition: transform 0.2s ease;
}

.modal-body.HTML-content {
    font-size: 1rem;
    line-height: 1.6;
    color: #334155;
}


/* ==================== Карточка академика ==================== */
.academic-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
    transition: all 0.3s ease;
}

.academic-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
    border-color: var(--color-accent-emerald, #10b981);
}

.academic-photo-wrapper {
    position: relative;
    cursor: pointer;
    width: 90px;
    height: 120px;
    border-radius: 8px;
    overflow: hidden;
    background-color: #f8fafc;
}

.academic-photo-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photo-zoom-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(16, 185, 129, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    border-radius: 8px;
    transition: opacity 0.3s ease;
}

.photo-zoom-overlay i {
    font-size: 1.2rem;
    transform: scale(0.8);
    transition: transform 0.3s ease;
}

.academic-photo-wrapper:hover .photo-zoom-overlay {
    opacity: 1;
}

.academic-photo-wrapper:hover .photo-zoom-overlay i {
    transform: scale(1);
}

.academic-photo-placeholder {
    width: 100%;
    height: 100%;
    background: #f1f5f9;
}

.academic-name {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

.bg-emerald-light {
    background-color: rgba(16, 185, 129, 0.1);
}

.text-emerald {
    color: var(--color-accent-emerald, #10b981) !important;
}

.detail-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 2px;
}

.detail-value {
    line-height: 1.4;
}

.academic-details .border-top {
    border-top: 1px dashed #e2e8f0 !important;
}

.academic-country {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.academic-country .fi {
    width: 18px;
    height: 14px;
    display: inline-block;
    background-size: cover;
    background-position: center;
    vertical-align: middle;
}

.journal-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01);
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.journal-cover-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    border-radius: 6px;
    overflow: hidden;
    background-color: #f8fafc;
    border: 8px solid #f1f5f9;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.journal-cover-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.journal-cover-placeholder {
    width: 100%;
    height: 100%;
    background: #f8fafc;
}

.journal-title {
    font-family: var(--font-body, sans-serif);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
}

.journal-title-link {
    color: #0f172a;
    text-decoration: none;
    transition: color 0.2s ease;
}

.journal-publisher {
    line-height: 1.4;
    border-top: 1px dashed #e2e8f0;
    padding-top: 10px;
}

.journal-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
}

.journal-card:hover .journal-cover-wrapper {
    border-color: #e2e8f0;
}

.journal-card:hover .journal-cover-wrapper img {
    transform: scale(1.03);
}

.journal-title-link:hover {
    color: var(--color-accent-emerald, #10b981) !important;
    text-decoration: underline;
}

/*Loader*/

.position-relative {
    position: relative;
}

.loader-wrapper {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.6);
    z-index: 20;
    justify-content: center;
    align-items: flex-start;
    padding-top: 5rem;
}

.academy-loader {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(201, 162, 39, 0.1);
    border-radius: 50%;
    border-top-color: var(--color-primary);
    animation: spin 1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    position: sticky;
    top: 50%;
}

.academy-loader::after {
    content: '';
    position: absolute;
    top: -3px; left: -3px; right: -3px; bottom: -3px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: var(--color-accent-gold);
    opacity: 0.5;
    filter: blur(4px);
}

.news-grid-wrapper {
    transition: filter 0.2s ease, opacity 0.2s ease;
}
.news-grid-blur {
    filter: blur(3px);
    opacity: 0.5;
    pointer-events: none;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.fade-in {
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}


.centers-sidebar-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.cs-title {
    padding: 18px 20px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-primary, #0f172a);
    border-bottom: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
    background-color: #fafafa;
}

.centers-menu-list {
    padding: 10px;
}

.center-menu-item {
    display: flex;
    align-items: center;
    padding: 12px 14px;
    border-radius: 8px;
    color: #475569;
    text-decoration: none;
    transition: all 0.25s ease;
    margin-bottom: 4px;
}

.center-menu-item:last-child {
    margin-bottom: 0;
}

.cmi-icon {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background-color: #f1f5f9;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    flex-shrink: 0;
    transition: all 0.25s ease;
}

.cmi-icon i {
    font-size: 0.9rem;
}

.cmi-text {
    font-size: 0.925rem;
    font-weight: 500;
    line-height: 1.4;
    flex-grow: 1;
    padding-right: 10px;
}

.cmi-arrow {
    font-size: 0.75rem;
    color: #94a3b8;
    transition: transform 0.25s ease, color 0.25s ease;
}

.center-menu-item:hover {
    background-color: #f8fafc;
    color: var(--color-primary, #0f172a);
}

.center-menu-item:hover .cmi-icon {
    background-color: rgba(201, 162, 39, 0.1);
    color: var(--color-accent-gold, #c9a227);
}

.center-menu-item:hover .cmi-arrow {
    transform: translateX(3px);
    color: var(--color-primary);
}

.center-menu-item.active {
    background-color: var(--color-primary, #0f172a);
    color: #ffffff;
    pointer-events: none;
}

.center-menu-item.active .cmi-icon {
    background-color: rgba(255, 255, 255, 0.15);
    color: var(--color-accent-gold, #c9a227);
}

.center-menu-item.active .cmi-arrow {
    color: var(--color-accent-gold, #c9a227);
}

.mobile-filter-trigger {
    padding: 12px 20px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-weight: 600;
    color: #334155;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* ============================================================
     Coop Page — стили секции «Международное сотрудничество»
     ============================================================ */
.coop-page {
    --cp-radius: 16px;
    --cp-radius-sm: 10px;
    --cp-border: #E2E8F0;
    --cp-muted: #64748B;
    background: var(--color-neutral-50, #F8FAFC);
    padding: 3rem 0 4rem;
}

/* ----- Общая обёртка ----- */
.coop-page .cp-block {
    margin-bottom: 4rem;
}
.coop-page .cp-block:last-child { margin-bottom: 0; }

/* ----- Заголовок блока ----- */
.coop-page .cp-block-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.6rem;
    flex-wrap: wrap;
}
.coop-page .cp-block-head .cp-title {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: clamp(1.5rem, 2vw, 2rem);
    margin: 0;
    padding-bottom: .5rem;
    position: relative;
    line-height: 1.2;
}
.coop-page .cp-block-head .cp-title::after {
    content: '';
    position: absolute;
    left: 0; bottom: -2px;
    width: 56px; height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--color-accent-gold, #C9A45C), var(--color-accent-emerald, #0F7B5B));
}
.coop-page .cp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-accent-emerald, #0F7B5B);
    margin-bottom: .6rem;
}
.coop-page .cp-eyebrow::before {
    content: '';
    width: 28px; height: 2px;
    background: var(--color-accent-gold, #C9A45C);
}
.coop-page .cp-nav-arrows {
    display: inline-flex;
    gap: 8px;
}
.coop-page .cp-nav-arrows button {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--cp-border);
    color: var(--color-primary, #0B2545);
    transition: all .18s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.coop-page .cp-nav-arrows button:hover {
    background: var(--color-primary, #0B2545);
    color: #fff;
    border-color: var(--color-primary, #0B2545);
}
.coop-page .cp-nav-arrows button.swiper-button-disabled {
    opacity: .35;
    pointer-events: none;
}

/* ============================================================
   БЛОК 1 — Текст + KPI
   ============================================================ */
.coop-page .cp-intro {
    background: #fff;
    border-radius: var(--cp-radius);
    border: 1px solid var(--cp-border);
    box-shadow: 0 1px 2px rgba(11,37,69,0.04);
    padding: 2.4rem 2.6rem;
    overflow: hidden;
    position: relative;
}
.coop-page .cp-intro::after {
    content: '';
    position: absolute;
    right: -120px; bottom: -120px;
    width: 320px; height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(15,123,91,0.06), transparent 70%);
    pointer-events: none;
}
.coop-page .cp-intro h1 {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    margin: .3rem 0 1rem;
    line-height: 1.18;
}
.coop-page .cp-intro .lead {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-size: 1.16rem;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 1rem;
}
.coop-page .cp-intro p {
    color: #334155;
    font-size: 1rem;
    margin-bottom: 1rem;
}
.coop-page .cp-intro p:last-of-type { margin-bottom: 0; }

.coop-page .cp-kpi {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--cp-border);
    position: relative;
    z-index: 1;
}
.coop-page .cp-kpi .kpi {
    text-align: left;
}
.coop-page .cp-kpi .num {
    font-family: var(--font-display, 'Spectral', serif);
    font-size: clamp(1.8rem, 2.4vw, 2.4rem);
    font-weight: 700;
    color: var(--color-primary, #0B2545);
    line-height: 1;
}
.coop-page .cp-kpi .num span {
    color: var(--color-accent-gold, #C9A45C);
}
.coop-page .cp-kpi .lbl {
    margin-top: 6px;
    font-size: .88rem;
    color: var(--cp-muted);
}
@media (max-width: 768px) {
    .coop-page .cp-intro { padding: 1.6rem 1.4rem; }
    .coop-page .cp-kpi { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
}

/* ============================================================
   БЛОК 2 — Галерея фото (Swiper + Fancybox)
   ============================================================ */
.coop-page .cp-gallery .swiper { padding-bottom: 4px; }
.coop-page .cp-gallery .g-item {
    position: relative;
    display: block;
    border-radius: var(--cp-radius);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #F1F5F9;
    box-shadow: 0 1px 2px rgba(11,37,69,0.06);
    transition: transform .3s ease, box-shadow .3s ease;
}
.coop-page .cp-gallery .g-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(11,37,69,0.16);
}
.coop-page .cp-gallery .g-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
}
.coop-page .cp-gallery .g-item:hover img { transform: scale(1.07); }
.coop-page .cp-gallery .g-item::after {
    content: '\f00e';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11,37,69,0) 50%, rgba(11,37,69,0.55) 100%);
    color: #fff;
    font-size: 1.4rem;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 1rem;
    opacity: 0;
    transition: opacity .3s ease;
}
.coop-page .cp-gallery .g-item:hover::after { opacity: 1; }
.coop-page .cp-gallery .g-caption {
    position: absolute;
    left: 14px; bottom: 14px;
    background: rgba(11,37,69,0.78);
    color: #fff;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 1;
}

/* ============================================================
   БЛОК 3 — Страны-партнёры (Swiper, флаги, внешние ссылки)
   ============================================================ */
.coop-page .cp-countries .country-card {
    background: #fff;
    border-radius: var(--cp-radius);
    border: 1px solid var(--cp-border);
    padding: 1.6rem 1.4rem 1.4rem;
    height: 100%;
    text-decoration: none;
    transition: all .25s ease;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    position: relative;
    overflow: hidden;
}
.coop-page .cp-countries .country-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-accent-gold, #C9A45C), var(--color-accent-emerald, #0F7B5B));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s ease;
}
.coop-page .cp-countries .country-card:hover {
    border-color: var(--color-accent-gold, #C9A45C);
    /*transform: translateY(-4px);*/
    box-shadow: 0 14px 30px rgba(11,37,69,0.12);
}
.coop-page .cp-countries .country-card:hover::before {
    transform: scaleX(1);
}
.coop-page .cp-countries .flag {
    /*width: 64px;*/
    height: 44px;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.08), 0 4px 10px rgba(0,0,0,0.08);
}
.coop-page .cp-countries .country-card .country-name {
    font-size: 11px;
    color: var(--cp-muted);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 700;
    margin: 0;
}
.coop-page .cp-countries .country-card .org-name {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: 1.15rem;
    margin: 0;
    line-height: 1.3;
}
.coop-page .cp-countries .country-card .org-desc {
    color: var(--cp-muted);
    font-size: .85rem;
    margin: 0;
    flex: 1;
}
.coop-page .cp-countries .country-card .ext-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-accent-emerald, #0F7B5B);
    font-size: .82rem;
    font-weight: 600;
    margin-top: auto;
    transition: gap .18s ease;
}
.coop-page .cp-countries .country-card:hover .ext-link {
    gap: 12px;
    color: var(--color-primary, #0B2545);
}
.coop-page .cp-countries .country-card .ext-icon {
    position: absolute;
    top: 14px; right: 14px;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--color-neutral-50, #F8FAFC);
    color: var(--cp-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    transition: all .18s ease;
}
.coop-page .cp-countries .country-card:hover .ext-icon {
    background: var(--color-accent-gold, #C9A45C);
    color: var(--color-primary, #0B2545);
    transform: rotate(-12deg);
}

/* ============================================================
   БЛОК 4 — Организации-партнёры (круглые логотипы)
   ============================================================ */
.coop-page .cp-orgs .org-card {
    background: #fff;
    border-radius: var(--cp-radius);
    border: 1px solid var(--cp-border);
    padding: 1.8rem 1.4rem;
    height: 100%;
    text-align: center;
    text-decoration: none;
    transition: all .25s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.coop-page .cp-orgs .org-card:hover {
    /*transform: translateY(-4px);*/
    box-shadow: 0 14px 30px rgba(11,37,69,0.12);
    border-color: var(--color-accent-gold, #C9A45C);
}
.coop-page .cp-orgs .org-logo {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    background: linear-gradient(135deg, #F8FAFC, #fff);
    border: 1px solid var(--cp-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display, 'Spectral', serif);
    font-weight: 700;
    color: var(--color-primary, #0B2545);
    font-size: 1.1rem;
    letter-spacing: .02em;
    overflow: hidden;
    transition: all .35s ease;
    position: relative;
    flex-shrink: 0;
}
.coop-page .cp-orgs .org-card:hover .org-logo {
    background: linear-gradient(135deg, var(--color-primary, #0B2545), var(--color-primary-3, #1B3A6B));
    color: var(--color-accent-gold, #C9A45C);
    border-color: var(--color-primary, #0B2545);
    transform: rotate(-6deg) scale(1.05);
}
.coop-page .cp-orgs .org-logo img {
    width: 100%; height: 100%;
    object-fit: contain;
    padding: 14px;
}
.coop-page .cp-orgs .org-logo i {
    font-size: 2rem;
    color: var(--color-accent-emerald, #0F7B5B);
    transition: color .35s ease;
}
.coop-page .cp-orgs .org-card:hover .org-logo i {
    color: var(--color-accent-gold, #C9A45C);
}
.coop-page .cp-orgs .org-card h4 {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: 1.02rem;
    margin: 0;
    line-height: 1.3;
}
.coop-page .cp-orgs .org-card p {
    color: var(--cp-muted);
    font-size: .82rem;
    margin: 0;
    flex: 1;
}

/* ============================================================
   БЛОК 5 — Контакты
   ============================================================ */
.coop-page .cp-contacts .contact-card {
    background: #fff;
    border-radius: var(--cp-radius);
    border: 1px solid var(--cp-border);
    padding: 1.6rem;
    height: 100%;
    transition: all .25s ease;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    overflow: hidden;
}
.coop-page .cp-contacts .contact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(11,37,69,0.12);
    border-color: var(--color-accent-emerald, #0F7B5B);
}
.coop-page .cp-contacts .contact-top {
    display: flex;
    align-items: center;
    gap: 14px;
}
.coop-page .cp-contacts .avatar {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary, #0B2545), var(--color-primary-3, #1B3A6B));
    color: var(--color-accent-gold, #C9A45C);
    font-family: var(--font-display, 'Spectral', serif);
    font-weight: 700;
    font-size: 1.3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px var(--cp-border);
}
.coop-page .cp-contacts .avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.coop-page .cp-contacts .contact-name {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: 1.05rem;
    margin: 0 0 4px;
    line-height: 1.25;
}
.coop-page .cp-contacts .contact-position {
    font-size: .85rem;
    color: var(--color-accent-emerald, #0F7B5B);
    font-weight: 600;
    margin: 0;
}
.coop-page .cp-contacts .contact-meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px dashed var(--cp-border);
}
.coop-page .cp-contacts .contact-meta a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #334155;
    text-decoration: none;
    font-size: .9rem;
    transition: color .18s ease;
    word-break: break-all;
}
.coop-page .cp-contacts .contact-meta a i {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--color-neutral-50, #F8FAFC);
    color: var(--color-accent-emerald, #0F7B5B);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    flex-shrink: 0;
    transition: all .18s ease;
}
.coop-page .cp-contacts .contact-meta a:hover {
    color: var(--color-accent-emerald, #0F7B5B);
}
.coop-page .cp-contacts .contact-meta a:hover i {
    background: var(--color-accent-emerald, #0F7B5B);
    color: #fff;
}

/* ----- Swiper общие настройки ----- */
.coop-page .swiper { overflow: hidden; }
.coop-page .swiper-pagination {
    position: static;
    margin-top: 1.5rem;
    text-align: center;
}
.coop-page .swiper-pagination-bullet {
    width: 24px; height: 4px;
    border-radius: 4px;
    background: #CBD5E1;
    opacity: 1;
    transition: all .25s ease;
    margin: 0 4px !important;
}
.coop-page .swiper-pagination-bullet-active {
    background: var(--color-accent-gold, #C9A45C);
    width: 40px;
}

@media (max-width: 575.98px) {
    .coop-page { padding: 2rem 0 3rem; }
    .coop-page .cp-block { margin-bottom: 3rem; }
    .coop-page .cp-block-head { flex-direction: column; align-items: flex-start; }
    .coop-page .cp-orgs .org-logo { width: 78px; height: 78px; }
}

/* =====================================================
   SCROLL TO TOP BUTTON
   ===================================================== */
.scroll-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 46px;
    height: 46px;
    background-color: var(--color-primary);
    color: var(--color-neutral-0);
    border: none;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(11, 37, 69, 0.25); /* Тень в тон глубокого синего */
    z-index: 999; /* Выше контента, но ниже модалок */

    /* Эффекты скрытия/появления */
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition: all var(--t-fast, 0.3s) ease-in-out;
}

.scroll-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.scroll-to-top:hover {
    background-color: var(--color-accent-emerald);
    color: var(--color-neutral-0);
    box-shadow: 0 6px 16px rgba(15, 123, 91, 0.35);
    transform: translateY(-3px);
}

.scroll-to-top:active {
    transform: translateY(-1px);
}

@media (max-width: 767.98px) {
    .scroll-to-top {
        bottom: 20px;
        right: 20px;
        width: 40px;
        height: 40px;
        font-size: 0.95rem;
    }
}

.center-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.center-nav__link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    color: var(--color-neutral-700);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    border-radius: 8px;
    transition: all 0.25s ease-in-out;
    border-left: 3px solid transparent;
    cursor: pointer;
}
.center-nav__link i {
    font-size: 1.15rem;
    color: var(--color-neutral-500);
    width: 24px;
    text-align: center;
    transition: color 0.25s ease-in-out;
}
.center-nav__link:hover {
    background-color: var(--color-neutral-50);
    color: var(--color-primary);
    border-left-color: var(--color-accent-gold);
}
.center-nav__link:hover i {
    color: var(--color-accent-emerald);
}
.center-nav__link.active {
    background-color: var(--color-neutral-100);
    color: var(--color-primary);
    font-weight: 600;
    border-left-color: var(--color-primary);
}
.center-nav__link.active i {
    color: var(--color-primary);
}
     /* ============================================================
        Academic Page — стили профиля академика
        ============================================================ */
 .academic-page {
     --ap-radius: 16px;
     --ap-radius-sm: 10px;
     --ap-border: #E2E8F0;
     --ap-muted: #64748B;
     background: var(--color-neutral-50, #F8FAFC);
     padding: 2.5rem 0 4rem;
 }

/* Хлебные крошки */
.academic-page .breadcrumb {
    background: transparent;
    padding: 0;
    margin-bottom: 1.4rem;
    font-size: .85rem;
}
.academic-page .breadcrumb a {
    color: var(--color-primary, #0B2545);
    text-decoration: none;
    transition: color .18s ease;
}
.academic-page .breadcrumb a:hover {
    color: var(--color-accent-emerald, #0F7B5B);
}
.academic-page .breadcrumb-item.active {
    color: var(--ap-muted);
}

/* ============================================================
   БЛОК 1: ФОТО + ОСНОВНАЯ ИНФОРМАЦИЯ
   ============================================================ */
.academic-page .ap-hero {
    background: #fff;
    border-radius: var(--ap-radius);
    border: 1px solid var(--ap-border);
    box-shadow: 0 1px 2px rgba(11,37,69,0.04), 0 1px 4px rgba(11,37,69,0.03);
    padding: 2.2rem;
    overflow: hidden;
    position: relative;
    margin-bottom: 2rem;
}
.academic-page .ap-hero::after {
    content: '';
    position: absolute;
    right: -120px; top: -120px;
    width: 320px; height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201,164,92,0.08), transparent 70%);
    pointer-events: none;
}

/* ----- Фото-карточка ----- */
.academic-page .ap-photo-wrap {
    position: relative;
    border-radius: var(--ap-radius);
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: linear-gradient(135deg, var(--color-primary, #0B2545), var(--color-primary-3, #1B3A6B));
    box-shadow: 0 12px 32px rgba(11,37,69,0.18);
}
.academic-page .ap-photo-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.academic-page .ap-photo-wrap .ap-status {
    position: absolute;
    top: 16px; left: 16px;
    background: var(--color-accent-gold, #C9A45C);
    color: var(--color-primary, #0B2545);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 10px rgba(201,164,92,0.35);
}
.academic-page .ap-photo-wrap .ap-status i { font-size: .7rem; }
.academic-page .ap-photo-wrap .ap-photo-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: 1.2rem 1.4rem;
    background: linear-gradient(180deg, transparent 0%, rgba(11,37,69,0.92) 100%);
    color: #fff;
}
.academic-page .ap-photo-wrap .ap-photo-overlay .ap-id {
    font-family: var(--font-display, 'Spectral', serif);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-accent-gold, #C9A45C);
    line-height: 1;
}
.academic-page .ap-photo-wrap .ap-photo-overlay .ap-id-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: rgba(255,255,255,0.65);
    margin-top: 4px;
}

/* ----- Правая колонка hero ----- */
.academic-page .ap-meta {
    position: relative;
    z-index: 1;
}
.academic-page .ap-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 11px;
    font-weight: 700;
    color: var(--color-accent-emerald, #0F7B5B);
    margin-bottom: .8rem;
}
.academic-page .ap-eyebrow::before {
    content: '';
    width: 28px; height: 2px;
    background: var(--color-accent-gold, #C9A45C);
}
.academic-page .ap-name {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: clamp(1.7rem, 2.6vw, 2.4rem);
    line-height: 1.18;
    margin: 0 0 .55rem;
}
.academic-page .ap-position {
    color: var(--ap-muted);
    font-size: 1.02rem;
    margin: 0 0 1.5rem;
    line-height: 1.5;
}

/* Сетка полей */
.academic-page .ap-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-bottom: 1.6rem;
}
.academic-page .ap-info-grid .ap-field {
    background: var(--color-neutral-50, #F8FAFC);
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius-sm);
    padding: 14px 16px;
    transition: all .2s ease;
}
.academic-page .ap-info-grid .ap-field:hover {
    border-color: var(--color-accent-gold, #C9A45C);
    background: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(11,37,69,0.06);
}
.academic-page .ap-info-grid .ap-field.full {
    grid-column: 1 / -1;
}
.academic-page .ap-info-grid .ap-field .ap-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    font-weight: 700;
    color: var(--ap-muted);
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 6px;
}
.academic-page .ap-info-grid .ap-field .ap-label i {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: #fff;
    color: var(--color-accent-emerald, #0F7B5B);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .65rem;
    border: 1px solid var(--ap-border);
}
.academic-page .ap-info-grid .ap-field .ap-value {
    color: var(--color-primary, #0B2545);
    font-weight: 600;
    font-size: .95rem;
    line-height: 1.4;
    word-break: break-word;
}
.academic-page .ap-info-grid .ap-field .ap-value a {
    color: var(--color-primary, #0B2545);
    text-decoration: none;
    transition: color .18s ease;
}
.academic-page .ap-info-grid .ap-field .ap-value a:hover {
    color: var(--color-accent-emerald, #0F7B5B);
}
/* Флаг внутри поля Страна */
.academic-page .ap-info-grid .ap-field .fi {
    width: 20px;
    height: 15px;
    vertical-align: middle;
    border-radius: 3px;
}

/* Действия */
.academic-page .ap-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 1.2rem;
    border-top: 1px dashed var(--ap-border);
}
.academic-page .ap-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 999px;
    font-weight: 700;
    font-size: .88rem;
    text-decoration: none;
    transition: all .2s ease;
    border: 1px solid transparent;
}
.academic-page .ap-btn-primary {
    background: var(--color-primary, #0B2545);
    color: #fff;
}
.academic-page .ap-btn-primary:hover {
    background: var(--color-accent-emerald, #0F7B5B);
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15,123,91,0.25);
}
.academic-page .ap-btn-ghost {
    background: #fff;
    color: var(--color-primary, #0B2545);
    border-color: var(--ap-border);
}
.academic-page .ap-btn-ghost:hover {
    border-color: var(--color-accent-gold, #C9A45C);
    background: var(--color-neutral-50, #F8FAFC);
}

/* ============================================================
   БЛОК 2: БИОГРАФИЯ
   ============================================================ */
.academic-page .ap-bio {
    background: #fff;
    border-radius: var(--ap-radius);
    border: 1px solid var(--ap-border);
    box-shadow: 0 1px 2px rgba(11,37,69,0.04);
    padding: 2.2rem 2.4rem;
}
.academic-page .ap-bio-title {
    font-family: var(--font-display, 'Spectral', serif);
    color: var(--color-primary, #0B2545);
    font-weight: 700;
    font-size: 1.5rem;
    margin: 0 0 1.5rem;
    padding-bottom: .55rem;
    position: relative;
    display: inline-block;
}
.academic-page .ap-bio-title::after {
    content: '';
    position: absolute;
    left: 0; bottom: 0;
    width: 56px; height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--color-accent-gold, #C9A45C), var(--color-accent-emerald, #0F7B5B));
}
.academic-page .ap-bio p {
    color: #334155;
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 1rem;
}
.academic-page .ap-bio p:last-of-type { margin-bottom: 0; }
.academic-page .ap-bio p.lead {
    font-family: var(--font-display, 'Spectral', serif);
    font-size: 1.14rem;
    font-weight: 500;
    color: var(--color-primary, #0B2545);
    line-height: 1.5;
}
.academic-page .ap-bio ul {
    list-style: none;
    padding-left: 0;
    margin: 1rem 0;
}
.academic-page .ap-bio ul li {
    position: relative;
    padding: 4px 0 4px 28px;
    color: #334155;
}
.academic-page .ap-bio ul li::before {
    content: '';
    position: absolute;
    left: 0; top: 14px;
    width: 16px; height: 2px;
    background: var(--color-accent-gold, #C9A45C);
}
.academic-page .ap-bio blockquote {
    border-left: 4px solid var(--color-accent-gold, #C9A45C);
    background: var(--color-neutral-50, #F8FAFC);
    padding: 1.1rem 1.4rem;
    margin: 1.3rem 0;
    border-radius: 0 var(--ap-radius-sm) var(--ap-radius-sm) 0;
    font-family: var(--font-display, 'Spectral', serif);
    font-style: italic;
    font-size: 1.04rem;
    color: var(--color-primary, #0B2545);
}

/* Адаптив */
@media (max-width: 991.98px) {
    .academic-page .ap-hero { padding: 1.6rem; }
    .academic-page .ap-photo-wrap { aspect-ratio: 4 / 3; max-height: 420px; }
    .academic-page .ap-photo-wrap img { object-position: center top; }
    .academic-page .ap-meta { margin-top: 1.6rem; }
}
@media (max-width: 575.98px) {
    .academic-page { padding: 1.5rem 0 3rem; }
    .academic-page .ap-hero { padding: 1.2rem; }
    .academic-page .ap-bio { padding: 1.4rem; }
    .academic-page .ap-info-grid { grid-template-columns: 1fr; }
    .academic-page .ap-actions .ap-btn { width: 100%; justify-content: center; }
}

/* Контейнер плеера */
.hero-video-wrapper {
    position: relative;
    width: 100%;
    height: 70vh; /* Подгони под высоту твоего слайдера hero-slide */
    min-height: 500px;
    overflow: hidden;
    background-color: #000;
}

/* Нативное видео */
.hero-video-element {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    cursor: pointer;
    z-index: 1;
}

/* Затемняющая маска */
.hero-video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.6) 100%);
    z-index: 2;
    pointer-events: none;
}

/* Контейнер для текста поверх видео */
.video-content-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    z-index: 3;
    pointer-events: none;
}
.video-content-container .hero-content {
    pointer-events: auto; /* Чтобы ссылки или кнопки внутри были кликабельны */
}

/* Кнопка управления (Play/Pause) */
.video-control-btn {
    position: absolute;
    bottom: 40px;
    right: 40px;
    z-index: 4;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    outline: none;
}

.btn-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background-color: var(--color-gold, #cca353); /* Твой фирменный золотой или белый */
    color: #fff;
    font-size: 1.5rem;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

/* Анимация пульсации, когда видео НЕ запущено */
.video-control-btn:not(.is-playing) .btn-icon-wrap {
    animation: pulse-gold 2s infinite;
}

.video-control-btn:hover .btn-icon-wrap {
    transform: scale(1.1);
    background-color: #e0b665;
}

/* Сдвиг иконки play для идеальной центровки в круге */
.video-control-btn:not(.is-playing) .fa-play {
    margin-left: 4px;
}

@keyframes pulse-gold {
    0% {
        box-shadow: 0 0 0 0 rgba(204, 163, 83, 0.7);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(204, 163, 83, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(204, 163, 83, 0);
    }
}

/* Адаптив под мобилки */
@media (max-width: 991.98px) {
    .hero-video-wrapper {
        height: 55vh;
    }
    .btn-icon-wrap {
        width: 55px;
        height: 55px;
        font-size: 1.2rem;
    }
    .video-control-btn {
        bottom: 20px;
        right: 20px;
    }
}
