/* =========================================================
   ПЕРЕГРУЗКА ШАПКИ CASSIOPEIA
   Финальная безопасная версия
   ---------------------------------------------------------
   • Шапка и логотип оформлены как в вашей версии
   • Меню только стилизуется
   • Логика открытия/закрытия не переопределяется
   • Подменю не принуждается к позиции поверх/влево/вправо
   ========================================================= */


/* =========================================================
   1. Корневой контейнер шапки
   ========================================================= */
header.header.container-header.full-width{
  --hd-h: clamp(4rem, 6vw, 5rem);
  --hd-bg: var(--paper, #f4f1ea);
  --hd-line: var(--line, #d9d2c2);
  --hd-accent: var(--accent, #2b46e0);
  --hd-ink: var(--ink, #141821);

  position: sticky;
  top: 0;
  z-index: 100;

  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 3vw, 2.5rem);

  min-height: var(--hd-h);
  padding-block: 0;
  padding-inline: clamp(1.2rem, 4vw, 3rem);

  background: color-mix(in srgb, var(--hd-bg) 92%, transparent);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);

  border-bottom: 1px solid var(--hd-line);
  isolation: isolate;
}

header.header > .grid-child{
  display: contents;
}

header.header a:focus-visible,
header.header button:focus-visible{
  outline: 2px solid var(--hd-accent);
  outline-offset: 2px;
}


/* =========================================================
   2. Логотип
   ========================================================= */
header.header .navbar-brand{
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin: 0;
}

header.header .brand-logo{
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  text-decoration: none;
  color: var(--hd-ink);
  padding-block: .5rem;
  max-width: 150px;
  //transition: opacity .25s;
}

header.header .brand-logo:hover{
  opacity: .72;
}

header.header .brand-logo img.logo{
  max-width: 150px;
  width: auto;
  height: auto;
  max-height: 44px;
  display: block;
}

header.header .brand-logo .site-title,
header.header .brand-logo .site-slogan{
  display: none;
}


/* =========================================================
   3. Контейнер навигации
   ========================================================= */
header.header .container-nav{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}

header.header .navbar{
  width: 100%;
  padding: 0;
  background: transparent;
  border: 0;
}

header.header .navbar-collapse{
  width: 100%;
  background: transparent;
}


/* =========================================================
   4. Корневое меню, 1-й уровень
   ---------------------------------------------------------
   Важно:
   • первый уровень делаем горизонтальным;
   • но не делаем сам <li> flex-контейнером, чтобы подменю
     оставалось в нормальном потоке под родительским пунктом.
   ========================================================= */
header.header .metismenu.mod-list{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .2rem .35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

header.header .metismenu-item.level-1{
  position: relative;
}

header.header .metismenu-item.level-1 > a{
  --pad-y: clamp(.6rem, 1vw, .85rem);
  --pad-x: clamp(.65rem, 1.1vw, .95rem);

  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: var(--pad-y) var(--pad-x);

  font: 500 .78rem/1 var(--font-mono, 'JetBrains Mono', monospace);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--hd-ink);
  text-decoration: none;
  white-space: nowrap;
  vertical-align: middle;

  //transition: color .2s;
}

/* Подчёркивание первого уровня */
header.header .metismenu-item.level-1 > a::after{
  content: "";
  position: absolute;
  left: var(--pad-x);
  right: var(--pad-x);
  bottom: calc(var(--pad-y) * .35);
  height: 2px;
  background: var(--hd-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s cubic-bezier(.22,.65,.25,1);
}

/* Текущий пункт и клавиатурный фокус */
header.header .metismenu-item.level-1 > a:focus-visible,
header.header .metismenu-item.level-1.current > a{
  color: var(--hd-accent);
}

header.header .metismenu-item.level-1 > a:focus-visible::after,
header.header .metismenu-item.level-1.current > a::after{
  transform: scaleX(1);
}

/* Hover только для устройств с курсором */
@media (hover: hover) and (pointer: fine){
  header.header .metismenu-item.level-1 > a:hover{
    color: var(--hd-accent);
  }

  header.header .metismenu-item.level-1 > a:hover::after{
    transform: scaleX(1);
  }

  header.header .metismenu-item.level-1:hover > .mm-toggler{
    color: var(--hd-accent);
  }
}


/* =========================================================
   5. Кнопки раскрытия и значки
   ---------------------------------------------------------
   Только визуальное оформление.
   Не трогаем обработчики и классы состояния.
   ========================================================= */
header.header .metismenu .mm-toggler{
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;

  min-width: 18px;
  min-height: 18px;

  padding: 0;
  border: 0;
  background: transparent;

  cursor: pointer;
  color: currentColor;

  appearance: none;
  -webkit-appearance: none;

  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;

  transition: color .2s;
}

/* Глушим возможные лишние служебные иконки */
header.header .metismenu .mm-toggler::after,
header.header .metismenu .mm-toggler-link::after,
header.header .metismenu .mm-toggler > .icon-angle-down,
header.header .metismenu .mm-toggler > .icon-caret-down,
header.header .metismenu .mm-toggler > .caret,
header.header .metismenu .mm-toggler > i{
  content: none !important;
  display: none !important;
}

header.header .metismenu .mm-toggler::before{
  pointer-events: none;
}

/* Кнопка 1-го уровня */
header.header .metismenu-item.level-1 > .mm-toggler{
  width: 18px;
  height: 18px;
  margin-left: 2px;
  color: var(--hd-ink);
}

/* Стрелка 1-го уровня */
header.header .metismenu-item.level-1 > .mm-toggler::before{
  content: "" !important;
  display: flex;
  align-items: center;
  justify-content: center;
  position: unset;
  width: 7px;
  height: 7px;
  background-color: transparent;

  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;

  transform: rotate(45deg) translateY(-1px);
  transition: transform .25s ease;
}

header.header .metismenu-item.level-1 > .mm-toggler[aria-expanded="true"]::before{
  transform: rotate(-135deg) translateY(-1px);
}

header.header .metismenu-item.level-1.current > .mm-toggler{
  color: var(--hd-accent);
}


/* =========================================================
   6. Подменю
   ---------------------------------------------------------
   Только фон, рамка, тень и внутренние отступы.

   ВАЖНО:
   • здесь нет position: absolute;
   • нет top / left / right;
   • нет принудительного вывода поверх других элементов;
   • логика показа/скрытия остаётся за шаблоном/metismenu.
   ========================================================= */
header.header .metismenu .mm-collapse{
  margin: 0;
  padding: .35rem;
  list-style: none;

  background: var(--hd-bg);
  border: 1px solid var(--hd-line);
  border-radius: .45rem;
  box-shadow:
    0 22px 40px -24px rgba(20, 24, 33, .35),
    0 8px 18px -10px rgba(20, 24, 33, .15);
}

/* Вложенные подменю визуально делаем легче,
   но не меняем их позицию */
header.header .metismenu .mm-collapse .mm-collapse{
  background: transparent;
  border: 0;
  box-shadow: none;
}


/* =========================================================
   7. Пункты внутри подменю
   ========================================================= */
header.header .metismenu .mm-collapse .metismenu-item{
  justify-content: space-between;
}

header.header .metismenu .mm-collapse .metismenu-item > a{
  display: flex;
  padding: .68rem 2.5rem .68rem .95rem;

  font: 400 .88rem/1.4 var(--font-body, 'Golos Text', sans-serif);
  color: var(--hd-ink);
  text-decoration: none;

  border-radius: .35rem;

  transition:
    color .18s ease,
    background-color .18s ease;
}

/* Текущий пункт внутри подменю */
header.header .metismenu .mm-collapse .metismenu-item.current > a{
  color: var(--hd-accent);
  background: color-mix(in srgb, var(--hd-accent) 8%, transparent);
}

/* Клавиатурный фокус внутри подменю */
header.header .metismenu .mm-collapse .metismenu-item > a:focus-visible{
  color: var(--hd-accent);
  background: color-mix(in srgb, var(--hd-accent) 8%, transparent);
}

/* Hover внутри подменю только для мыши */
@media (hover: hover) and (pointer: fine){
  header.header .metismenu .mm-collapse .metismenu-item > a:hover{
    color: var(--hd-accent);
    background: color-mix(in srgb, var(--hd-accent) 8%, transparent);
  }

  header.header .metismenu .mm-collapse .metismenu-item:hover > .mm-toggler{
    color: var(--hd-accent);
  }
}


/* =========================================================
   8. Кнопка раскрытия внутри подменю
   ---------------------------------------------------------
   Кнопка оформляется справа от пункта, но это не влияет
   на позицию самого вложенного подменю.
   ========================================================= */
header.header .metismenu .mm-collapse .metismenu-item > .mm-toggler{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  position: absolute;
  top: 22px;
  right: 16px;

  border: 0;
  background: transparent;

  cursor: pointer;
  color: var(--hd-ink);

  transition: color .18s ease;
}

/* Стрелка внутри подменю */
header.header .metismenu .mm-collapse .metismenu-item > .mm-toggler::before{
  content: "" !important;
  width: 6px;
  height: 6px;

  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;

  transform: rotate(-45deg);
  transition: transform .25s ease;
}

header.header .metismenu .mm-collapse .metismenu-item > .mm-toggler[aria-expanded="true"]::before{
  transform: rotate(45deg);
}


/* =========================================================
   9. Бургер
   ========================================================= */
header.header .navbar-toggler{
  --sz: 42px;

  width: var(--sz);
  height: var(--sz);

  display: none;
  align-items: center;
  justify-content: center;

  border: 1px solid var(--hd-line);
  background: var(--hd-bg);
  padding: 0;

  cursor: pointer;
  color: var(--hd-ink);

  transition:
    border-color .25s,
    color .25s;

  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

header.header .navbar-toggler:hover,
header.header .navbar-toggler:focus-visible{
  border-color: var(--hd-accent);
  color: var(--hd-accent);
}

header.header .navbar-toggler .icon-menu,
header.header .navbar-toggler .icon-menu::before,
header.header .navbar-toggler .icon-menu::after{
  content: "";
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  transition:
    transform .3s ease,
    top .3s ease,
    opacity .2s;
}

header.header .navbar-toggler .icon-menu{
  position: relative;
}

header.header .navbar-toggler .icon-menu::before{
  position: absolute;
  top: -6px;
  left: 0;
}

header.header .navbar-toggler .icon-menu::after{
  position: absolute;
  top: 6px;
  left: 0;
}

header.header .navbar-toggler[aria-expanded="true"] .icon-menu{
  background: transparent;
}

header.header .navbar-toggler[aria-expanded="true"] .icon-menu::before{
  top: 0;
  transform: rotate(45deg);
}

header.header .navbar-toggler[aria-expanded="true"] .icon-menu::after{
  top: 0;
  transform: rotate(-45deg);
}


/* =========================================================
   10. Мобильная версия
   ---------------------------------------------------------
   Здесь допускается position: static для .mm-collapse,
   чтобы на мобильных подменю оставалось в нормальном потоке
   под родительским пунктом.
   ========================================================= */
@media (max-width: 991.98px){

  header.header .navbar-toggler{
    display: inline-flex;
    order: 2;
    margin-left: auto;
  }

  header.header .navbar-brand{
    order: 1;
  }

  header.header .container-nav{
    order: 3;
  }

  header.header .navbar{
    margin: 0 !important;
  }

  /* Меню колонкой */
  header.header .metismenu.mod-list{
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-block: .25rem;
  }

  /* Первый уровень */
  header.header .metismenu-item.level-1{
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
  }

  header.header .metismenu-item.level-1 > a{
    flex: 1 1 auto;
    padding: .9rem 1rem;
    //border-bottom: 1px solid color-mix(in srgb, var(--hd-line) 60%, transparent);
    font-size: .82rem;
    white-space: normal;
  }

  header.header .metismenu-item.level-1 > a::after{
    display: none;
  }

  header.header .metismenu-item.level-1.current > a{
    background: color-mix(in srgb, var(--hd-accent) 8%, transparent);
    //border-left: 2px solid var(--hd-accent);
  }

  /* Кнопка первого уровня справа */
  header.header .metismenu-item.level-1 > .mm-toggler{
    flex: 0 0 54px;
    width: 54px;
    height: auto;
    align-self: stretch;
    margin-left: 0;

    //border-left: 1px solid color-mix(in srgb, var(--hd-line) 60%, transparent);
    //border-bottom: 1px solid color-mix(in srgb, var(--hd-line) 60%, transparent);

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--hd-ink);
  }

  header.header .metismenu-item.level-1 > .mm-toggler::before{
    transform: rotate(45deg) translateY(-1px);
  }

  header.header .metismenu-item.level-1 > .mm-toggler[aria-expanded="true"]::before{
    transform: rotate(-135deg) translateY(-1px);
  }

  /* Подменю на мобайле в потоке под родителем */
  header.header .metismenu .mm-collapse{
    position: static;
    width: 100%;
    flex-basis: 100%;

    margin: 0;
    padding: .25rem .5rem;

    border: 0;
    border-radius: 0;
    box-shadow: none;

    background: color-mix(in srgb, var(--hd-ink) 4%, transparent);
  }

  header.header .metismenu .mm-collapse .mm-collapse{
    padding-left: 0;
    padding-right: 0;
  }

  /* Пункты внутри мобильного подменю */
  header.header .metismenu .mm-collapse .metismenu-item > a{
    padding: .75rem 2.6rem .75rem 1.8rem;
    //border-bottom: 1px solid color-mix(in srgb, var(--hd-line) 40%, transparent);
    border-radius: 0;
  }

  header.header .metismenu .mm-collapse .metismenu-item > .mm-toggler::before{
    transform: rotate(45deg);
  }

  header.header .metismenu .mm-collapse .metismenu-item > .mm-toggler[aria-expanded="true"]::before{
    transform: rotate(-135deg);
  }
}


/* =========================================================
   11. Уменьшение анимаций
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  header.header *,
  header.header *::before,
  header.header *::after{
    animation-duration: .01s !important;
    transition-duration: .01s !important;
    scroll-behavior: auto !important;
  }
}

/* ============ Reset ============ */
button {
  outline: unset !important;
}

/* ============ 0. Токены ============ */
:root{
  --paper:#f4f1ea;
  --card:#fbf9f3;
  --ink:#141821;
  --ink-soft:#202634;
  --line:#d9d2c2;
  --line-dark:rgba(244,241,234,.13);
  --accent:#2b46e0;
  --accent-dark:#93a4ff;
  --muted:rgba(20,24,33,.64);
  --muted-dark:rgba(244,241,234,.68);
  --font-display:'Unbounded',system-ui,sans-serif;
  --font-body:'Golos Text',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --wrap:74rem;
}

/* ============ 1. База ============ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 1rem/1.65 var(--font-body);
  -webkit-font-smoothing:antialiased;
}
/* зерно поверх страницы */
body::before{
  content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
svg{display:block}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.wrap{width:min(var(--wrap),100% - clamp(2.2rem,8vw,4.8rem));margin-inline:auto}
.mono{font-family:var(--font-mono)}

/* Служебный ярлык секции: 01 / 02 */
.tag{
  display:flex;align-items:center;gap:.6rem;
  font:500 .74rem/1 var(--font-mono);
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.tag::before{content:"";width:.5em;height:.5em;background:var(--accent);transform:rotate(45deg)}
.tag--light{color:var(--muted-dark)}

/* Появление при скролле (класс .js ставит скрипт — без JS всё видно сразу) */
.js .reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .6s ease,transform .6s cubic-bezier(.22,.65,.25,1);
  transition-delay:calc(var(--i,0)*90ms);
}
.js .reveal.in{opacity:1;transform:none}

/* ============ 2. Бегущая строка ============ */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-group{display:flex;gap:2.75rem;padding:.8rem 2.75rem .8rem 0}
.tk{
  display:flex;align-items:center;gap:.7rem;white-space:nowrap;
  font:500 .72rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;
}
.tk i{font-style:normal;color:var(--accent-dark)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ============ 3. Первый экран ============ */
.intro{padding-block:clamp(3rem,6vw,5rem) clamp(7rem,12vw,10.5rem)}
.eyebrow{
  font:500 .78rem/1.5 var(--font-mono);
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
}
.intro-grid{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(2rem,5vw,4.5rem);margin-top:1.6rem}
.intro-copy{flex:1 1 32rem;min-width:0}

.intro-title{
  font:700 clamp(2.5rem,1.4rem + 5.8vw,4.9rem)/1.04 var(--font-display);
  text-transform:uppercase;letter-spacing:.01em;
}
.intro-title .mask{display:block;overflow:hidden;padding-bottom:.06em}
.intro-title .mask-in{display:inline-block;transform:translateY(112%);animation:rise .9s cubic-bezier(.19,1,.22,1) forwards;animation-delay:calc(.15s + var(--i)*.1s)}
.title-accent{color:var(--accent)}
@supports ((-webkit-text-stroke:2px #000)){
  .title-accent{color:transparent;-webkit-text-stroke:2px var(--accent)}
}
@keyframes rise{to{transform:none}}

.lead{
  margin-top:1.4rem;max-width:36ch;
  font-size:clamp(1.05rem,.95rem + .7vw,1.3rem);font-weight:500;
  animation:fadeUp .8s ease .55s backwards;
}
.lead .dot{color:var(--accent)}

/* веха: год → факт */
.timeline{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));
  gap:1.4rem;margin-top:clamp(2rem,4vw,3rem);padding-top:1.4rem;
  border-top:1px solid var(--line);
  animation:fadeUp .8s ease .75s backwards;
}
.timeline b{display:block;font:500 clamp(1.05rem,1rem + .5vw,1.35rem)/1.2 var(--font-mono)}
.timeline span{font-size:.8rem;color:var(--muted)}
.timeline .big b{color:var(--accent)}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}}

/* Печать */
.stamp{flex:0 1 240px;min-width:11rem;rotate:-6deg}
.stamp-svg{width:100%;max-width:240px;margin-inline:auto;mix-blend-mode:multiply;color:var(--accent);animation:stampIn .6s cubic-bezier(.2,.9,.25,1.35) .45s both}
.stamp-svg circle,.stamp-svg path{fill:none;stroke:currentColor}
.s-outer{stroke-width:3}
.s-inner{stroke-width:1.5}
.s-check{stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.s-spin{transform-origin:100px 100px;animation:spin 55s linear infinite}
.s-spin text{font:500 12px var(--font-mono);letter-spacing:2px;fill:currentColor}
@keyframes stampIn{from{opacity:0;transform:scale(1.65)}to{opacity:1;transform:scale(1)}}
@keyframes spin{to{transform:rotate(1turn)}}

/* ============ 4. Направления (карточки поверх первого экрана) ============ */
.directions{position:relative;z-index:2;margin-top:calc(clamp(3rem,6vw,5.5rem)*-1);padding-bottom:clamp(4rem,7vw,6.5rem)}
.section-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 2rem;margin-bottom:1.4rem}
.section-count{font:500 .78rem/1 var(--font-mono);letter-spacing:.14em;color:var(--muted)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:clamp(1rem,2vw,1.5rem)}
.card{
  position:relative;height:100%;overflow:hidden;
  display:grid;grid-template-columns:1fr auto;gap:1.4rem;align-content:start;
  padding:clamp(1.3rem,2.4vw,1.9rem);
  background:var(--card);border:1px solid var(--line);
  box-shadow:0 26px 50px -30px rgba(20,24,33,.45);
  transition:transform .35s,border-color .35s,box-shadow .35s;
}
.card::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.22,.65,.25,1)}
.card:hover{transform:translateY(-5px);border-color:var(--ink);box-shadow:0 34px 60px -30px rgba(20,24,33,.5)}
.card:hover::after{transform:scaleX(1)}
.card-index{font:500 .78rem/1 var(--font-mono);letter-spacing:.14em;color:var(--muted)}
.card-icon{
  width:3rem;height:3rem;flex-shrink:0;display:grid;place-items:center;
  border:1px solid var(--line);color:var(--accent);
  transition:background .3s,color .3s,transform .35s;
}
.card-icon svg{width:22px;height:22px}
.card:hover .card-icon{background:var(--accent);color:#fff;transform:translateY(-3px)}
.card h3{grid-column:1/-1;font-size:1rem;line-height:1.55;font-weight:600}

/* ============ 5. Преимущества (тёмная секция) ============ */
.benefits{background:var(--ink);color:var(--paper);padding-block:clamp(4rem,8vw,6.5rem)}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem clamp(1.5rem,4vw,3rem);margin-bottom:clamp(2rem,4vw,3rem)}
.sec-title{flex:1 1 20rem;font:700 clamp(1.7rem,1.2rem + 2.6vw,2.9rem)/1.12 var(--font-display);text-transform:uppercase;text-align: center}
.sec-note{font:400 .8rem/1.5 var(--font-mono);color:var(--muted-dark);padding-bottom:.4rem}

.benefit-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));
  gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);
}
.benefit{
  position:relative;background:var(--ink);height:100%;
  padding:clamp(1.4rem,2.6vw,2rem);
  display:grid;gap:.8rem;align-content:start;transition:background .3s;
}
.benefit::before{content:"";position:absolute;top:0;left:0;bottom:0;width:2px;background:var(--accent-dark);transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(.22,.65,.25,1)}
.benefit:hover{background:var(--ink-soft)}
.benefit:hover::before{transform:scaleY(1)}
.benefit-title{display:flex;align-items:center;gap:.7rem;font:500 .92rem/1.35 var(--font-display);letter-spacing:.02em}
.benefit-title svg{width:20px;height:20px;flex-shrink:0;color:var(--accent-dark);transition:transform .35s}
.benefit:hover .benefit-title svg{transform:rotate(-8deg) scale(1.12)}
.benefit p{font-size:.95rem;line-height:1.6;color:var(--muted-dark)}

/* ============ 6. Подвал ============ */
.foot{background:var(--ink);border-top:1px solid var(--line-dark);color:var(--muted-dark)}
.foot-row{display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;padding-block:1.3rem;font-size:.78rem}
.foot-row .mono{letter-spacing:.06em}

/* ============ 7. Доступность: единственная медиа ============ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .mask-in{transform:none}
  .ticker-track{width:auto;flex-wrap:wrap}
}

/* ============ ПОДВАЛ (mega footer) ============ */
.main-footer{
  position:relative;z-index:3;
  background:var(--ink);color:var(--paper);
  padding-block:clamp(4rem,7vw,6rem) 0;
  overflow:hidden;
}
/* декоративная "перфорация" сверху */
.main-footer::before{
  content:"";position:absolute;inset:0 auto auto 0;right:0;height:1px;
  background:repeating-linear-gradient(90deg,
    var(--line-dark) 0 10px,transparent 10px 18px);
  opacity:.55;
}

/* Сетка виджетов */
.mf-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));
  gap:clamp(1.2rem,2.2vw,1.8rem);
  padding-top:clamp(1.5rem,3vw,2.25rem);
}
.mf-widget{
  position:relative;display:grid;gap:1rem;align-content:start;height:100%;
  padding:clamp(1.4rem,2.4vw,1.8rem);
  background:var(--ink-soft);
  border:1px solid var(--line-dark);
}
.mf-widget::after{
  content:"";position:absolute;inset:0 0 auto 0;height:2px;
  background:var(--accent-dark);transform:scaleX(0);transform-origin:left;
  transition:transform .45s cubic-bezier(.22,.65,.25,1);
}
.mf-widget:hover::after{transform:scaleX(1)}
.mf-widget h3{
  display:flex;align-items:center;gap:.7rem;
  font:500 .8rem/1 var(--font-mono);
  letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dark);
}
.mf-widget h3::before{
  content:"";width:.55em;height:.55em;background:var(--accent-dark);
  transform:rotate(45deg);flex-shrink:0;
}

/* "О нас" + мини-таймлайн */
.mf-about p{color:var(--muted-dark);font-size:.95rem;line-height:1.65}
.mf-about p strong{color:var(--paper);font-weight:600}
.mf-mini-tl{
  display:flex;flex-wrap:wrap;gap:1rem;margin-top:.35rem;
  padding-top:1rem;border-top:1px solid var(--line-dark);
}
.mf-mini-tl li{list-style:none;min-width:9rem;flex:1 1 9rem}
.mf-mini-tl b{
  display:block;font:500 .8rem/1 var(--font-mono);
  color:var(--accent-dark);letter-spacing:.14em;margin-bottom:.3rem;
}
.mf-mini-tl span{font-size:.82rem;color:var(--muted-dark);line-height:1.5}
.mf-link{
  display:inline-flex;align-items:center;gap:.55rem;
  font:500 .78rem/1 var(--font-mono);
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper);text-decoration:none;
  padding-bottom:4px;border-bottom:1px solid var(--accent-dark);
  transition:color .25s,gap .25s;
  margin-top:auto;align-self:start;
}
.mf-link:hover{color:var(--accent-dark);gap:.85rem}
.mf-link svg{width:14px;height:14px}

/* Важные ссылки — двухколоночный список */
.mf-links-list{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));
  gap:.2rem 1.2rem;list-style:none;padding:0;margin:0;
}
.mf-links-list a{
  display:flex;align-items:center;gap:.55rem;
  padding:.55rem 0;color:var(--paper);text-decoration:none;
  font-size:.92rem;border-bottom:1px solid transparent;
  transition:color .2s,border-color .2s,padding-left .25s;
}
.mf-links-list a svg{width:14px;height:14px;color:var(--muted-dark);transition:color .2s,transform .25s;flex-shrink:0}
.mf-links-list a:hover{color:var(--accent-dark);border-bottom-color:var(--accent-dark);padding-left:.3rem}
.mf-links-list a:hover svg{color:var(--accent-dark);transform:translateX(2px)}

/* Контакты */
.mf-contacts{list-style:none;padding:0;margin:0;display:grid;gap:.85rem}
.mf-contacts li{
  display:flex;gap:.9rem;align-items:flex-start;
  font-size:.95rem;line-height:1.5;color:var(--paper);
}
.mf-contacts .ico{
  flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;
  border:1px solid var(--line-dark);color:var(--accent-dark);
  transition:background .3s,color .3s;
}
.mf-contacts .ico svg{width:17px;height:17px}
.mf-contacts li:hover .ico{background:var(--accent-dark);color:var(--ink)}
.mf-contacts small{display:block;font-size:.78rem;color:var(--muted-dark);margin-top:.15rem}
.mf-contacts a{color:inherit;text-decoration:none;transition:color .2s}
.mf-contacts a:hover{color:var(--accent-dark)}

/* Аккредитация — бейджи */
.mf-accred{
  margin-top:clamp(1.8rem,3.5vw,2.6rem);
  padding:clamp(1.4rem,2.4vw,1.8rem) 0 clamp(1.4rem,2.4vw,1.8rem);
  border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);
}
.mf-accred-head{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 2rem;
  margin-bottom:1.2rem;
}
.mf-accred-head p{font:500 .78rem/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted-dark)}
.mf-accred-head small{color:var(--muted-dark);font-size:.8rem}
.mf-badges{
  display:flex;flex-wrap:wrap;gap:1rem;
}
.mf-badge{
  flex:1 1 13rem;min-width:0;
  display:flex;gap:.9rem;align-items:center;
  padding:1rem 1.15rem;background:var(--ink-soft);
  border:1px solid var(--line-dark);
  transition:border-color .3s,transform .3s;
}
.mf-badge:hover{border-color:var(--accent-dark);transform:translateY(-2px)}
.mf-badge-ico{
  flex-shrink:0;width:44px;height:44px;display:grid;place-items:center;
  color:var(--accent-dark);
}
.mf-badge-ico svg{width:26px;height:26px}
.mf-badge b{display:block;font:500 .82rem/1.25 var(--font-mono);color:var(--paper);letter-spacing:.08em}
.mf-badge span{font-size:.8rem;color:var(--muted-dark);line-height:1.45;margin-top:.2rem;display:block}

/* CTA-баннер */
.mf-cta{
  position:relative;overflow:hidden;
  margin-top:clamp(1.8rem,3.5vw,2.6rem);
  padding:clamp(1.8rem,3.6vw,2.8rem) clamp(1.5rem,3vw,2.25rem);
  background:linear-gradient(110deg,#1a2030 0%,#25304a 55%,#2b46e0 130%);
  border:1px solid var(--line-dark);
  display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem clamp(1.5rem,4vw,3rem);
  justify-content:space-between;
}
.mf-cta::before{
  content:"";position:absolute;inset:-40% -10% auto auto;width:55%;height:180%;
  background:radial-gradient(closest-side,rgba(147,164,255,.22),transparent 70%);
  pointer-events:none;
}
.mf-cta-body{position:relative;flex:1 1 22rem;min-width:0}
.mf-cta h2{
  font:700 clamp(1.5rem,1.1rem + 1.6vw,2.1rem)/1.15 var(--font-display);
  text-transform:uppercase;letter-spacing:.01em;color:var(--paper);
}
.mf-cta p{margin-top:.7rem;color:var(--muted-dark);max-width:46ch;font-size:.95rem}
.mf-cta-actions{position:relative;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.95rem 1.4rem;
  font:500 .82rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:background .25s,color .25s,border-color .25s,transform .25s;
}
.btn svg{width:15px;height:15px}
.btn-primary{background:var(--paper);color:var(--ink)}
.btn-primary:hover{background:var(--accent-dark);color:var(--ink);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--paper);border-color:var(--line-dark)}
.btn-ghost:hover{border-color:var(--paper);transform:translateY(-2px)}

/* Нижний ряд */
.mf-bottom{
  margin-top:clamp(2rem,4vw,3rem);
  padding-block:1.4rem;
  border-top:1px solid var(--line-dark);
  display:flex;flex-wrap:wrap;gap:.6rem 2rem;align-items:center;justify-content:space-between;
  font-size:.8rem;color:var(--muted-dark);
}
.mf-bottom-copy{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;align-items:center}
.mf-bottom-copy b{color:var(--paper);font-weight:600;letter-spacing:.02em}
.mf-bottom-links{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem}
.mf-bottom-links a{color:inherit;text-decoration:none;transition:color .2s}
.mf-bottom-links a:hover{color:var(--accent-dark)}
.mf-social{display:flex;gap:.5rem}
.mf-social a{
  width:34px;height:34px;display:grid;place-items:center;
  border:1px solid var(--line-dark);color:var(--paper);
  transition:background .25s,color .25s,border-color .25s,transform .25s;
}
.mf-social a:hover{background:var(--accent-dark);color:var(--ink);border-color:var(--accent-dark);transform:translateY(-2px)}
.mf-social svg{width:15px;height:15px}

/* единственная медиа для подвала — та же, что и для всей страницы */
@media (prefers-reduced-motion:reduce){
  .main-footer *{transition:none!important;animation:none!important}
}

.site-grid:has(.item-pagelanding-page) {
  gap: unset !important;
}

main:has(.item-pagelanding-page) {
  margin: 0 !important;
}
