/* ============================================================
   Меню и подвал v2 (макет, октябрь 2026)
   Подключается после style.css. Правила привязаны к .header--v2
   и .footer--v2, чтобы не задеть страницы со старой шапкой.
   Схема: docs/seo/structure-registry-2026-10.md, §4.
   ============================================================ */

.header--v2 .nav { position: relative; gap: 1rem; }
.header--v2 .nav-links { flex: 1; justify-content: center; gap: .1rem; }
.header--v2 .nav-links > li { flex: 0 0 auto; display: block; position: relative; text-align: left; }

.header--v2 .nv-link {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .5rem .6rem;
  border: 0; background: none; cursor: pointer;
  font: inherit; font-size: .92rem; font-weight: 600;
  color: var(--gray-700);
  border-radius: var(--radius-sm);
  white-space: nowrap;
  transition: color var(--transition), background var(--transition);
}
.header--v2 .nv-link:hover,
.header--v2 .nv-item:focus-within > .nv-link,
.header--v2 .nv-item.is-open > .nv-link,
.header--v2 .nv-link.active { color: var(--accent); background: rgba(193,18,28,.06); }
.header--v2 .nv-caret {
  width: 0; height: 0;
  border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor;
  transition: transform var(--transition);
}
.header--v2 .nv-item:hover > .nv-link .nv-caret,
.header--v2 .nv-item.is-open > .nv-link .nv-caret { transform: rotate(180deg); }

/* ── Выпадающие панели ── */
.header--v2 .nv-panel {
  position: absolute; top: 100%; left: 0;
  min-width: 260px;
  padding: 1.25rem 1.25rem 1.1rem;
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  box-shadow: var(--shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
  z-index: 200;
}
.header--v2 .nv-item:hover > .nv-panel,
.header--v2 .nv-item:focus-within > .nv-panel,
.header--v2 .nv-item.is-open > .nv-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.header--v2 .nv-panel--right { left: auto; right: 0; }

/* «Продукция» привязана к ширине всей шапки */
.header--v2 .nav-links > .nv-item--mega { position: static; }
.header--v2 .nv-panel--mega {
  left: 0; right: 0; min-width: 0;
  padding: 1.5rem 1.75rem 1.25rem;
}
.header--v2 .nv-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.75rem; }
.header--v2 .nv-cols--2 { grid-template-columns: repeat(2, minmax(190px, 1fr)); gap: 1.5rem; }
.header--v2 .nv-col + .nv-col--stack,
.header--v2 .nv-sub { margin-top: 1.1rem; }

.header--v2 .nv-head {
  display: block;
  margin-bottom: .45rem;
  padding-bottom: .4rem;
  border-bottom: 2px solid var(--gray-100);
  font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  color: var(--primary);
}
a.nv-head:hover { color: var(--accent); border-color: var(--accent); }
.header--v2 .nv-list { list-style: none; margin: 0; padding: 0; }
.header--v2 .nv-list li { display: block; flex: none; text-align: left; }
.header--v2 .nv-list a {
  display: block;
  padding: .36rem .5rem; margin: 0 -.5rem;
  font-size: .9rem; line-height: 1.3; font-weight: 500;
  color: var(--gray-700);
  border-radius: var(--radius-sm);
  transition: color var(--transition), background var(--transition);
}
.header--v2 .nv-list a:hover { color: var(--accent); background: var(--gray-50); }
.header--v2 .nv-list small { display: block; margin-top: .1rem; font-size: .75rem; font-weight: 500; color: var(--gray-500); }

.header--v2 .nv-foot {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1.5rem;
  margin-top: 1.25rem; padding-top: .9rem;
  border-top: 1px solid var(--gray-100);
  font-size: .9rem;
}
.header--v2 .nv-foot a { font-weight: 600; color: var(--gray-700); }
.header--v2 .nv-foot a:hover { color: var(--accent); }
.header--v2 .nv-partner {
  display: inline-flex; align-items: center; gap: .55rem;
}
.header--v2 .nv-partner em {
  font-style: normal; font-weight: 600; font-size: .78rem; color: var(--gray-500);
  padding: .1rem .5rem; border: 1px solid var(--gray-100); border-radius: 999px;
}
.header--v2 .nv-all { color: var(--primary) !important; }

/* ── Правая часть шапки ── */
.header--v2 .nav-actions { gap: .6rem; flex-shrink: 0; }
.header--v2 .nav-cta { white-space: nowrap; }
.header--v2 .nav-logo { flex-shrink: 0; }

/* ширины: сначала уходят телефоны, потом полный логотип заменяется знаком (брендбук, с. 29),
   потом сжимаются отступы; на 1100 px и уже меню переходит в боковую панель */
@media (max-width: 1500px) and (min-width: 1101px) { .header--v2 .nav-phones { display: none; } }
@media (max-width: 1400px) and (min-width: 1101px) { .header--v2 .nav-logo-icon { display: none; } .header--v2 .nav-logo-sign { display: block; width: 34px; height: 34px; } }
@media (max-width: 1240px) and (min-width: 1101px) {
  .header--v2 .nv-link { padding: .5rem .45rem; font-size: .88rem; }
  .header--v2 .nav-actions { gap: .45rem; }
  .header--v2 .nav-cta { padding: .5rem .9rem; }
}

/* Планшет и телефон: меню в боковой панели */
@media (max-width: 1100px) {
  .header--v2 .nav-links, .header--v2 .nav-actions .btn, .header--v2 .lang-switcher, .header--v2 .nav-phones { display: none; }
  .header--v2 .hamburger { display: flex; }
}

/* ── Мобильная панель ── */
.mobile-nav--v2 { padding: 0 0 6.5rem; }
.mobile-nav--v2 details { border-bottom: 1px solid var(--gray-100); }
.mobile-nav--v2 summary,
.mobile-nav--v2 > .mn-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.25rem; min-height: 52px;
  font-size: 1.05rem; font-weight: 700; color: var(--gray-900);
  list-style: none; cursor: pointer;
}
.mobile-nav--v2 summary::-webkit-details-marker { display: none; }
.mobile-nav--v2 summary::after {
  content: ""; width: 8px; height: 8px; margin-left: .75rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px); transition: transform var(--transition);
}
.mobile-nav--v2 details[open] > summary { color: var(--accent); }
.mobile-nav--v2 details[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.mobile-nav--v2 > .mn-top { border-bottom: 1px solid var(--gray-100); }
.mobile-nav--v2 .mn-body { padding: .25rem 1.25rem 1rem; background: var(--gray-50); }
.mobile-nav--v2 .mn-group { padding: .5rem 0 .25rem; }
.mobile-nav--v2 .mn-title {
  display: block; margin: .6rem 0 .1rem;
  font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--primary);
}
.mobile-nav--v2 .mn-body a {
  display: block; padding: .62rem 0; min-height: 44px;
  font-size: .98rem; font-weight: 500; color: var(--gray-700);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mobile-nav--v2 .mn-body a:last-child { border-bottom: 0; }
.mobile-nav--v2 .mn-body a.mn-title {
  min-height: 0; margin: .6rem 0 .1rem; padding: 0;
  font-size: .72rem; font-weight: 800; color: var(--primary); border-bottom: 0;
}
.mobile-nav--v2 .mn-body a:hover { color: var(--accent); }
.mobile-nav--v2 .mn-partner span { font-size: .78rem; color: var(--gray-500); font-weight: 600; margin-left: .35rem; }
.mobile-nav--v2 .mn-bottom { padding: 1.25rem; }
.mobile-nav--v2 .mn-bottom .btn { width: 100%; justify-content: center; margin-bottom: .6rem; }
.mobile-nav--v2 .mn-lang { display: flex; gap: .5rem; padding: 1rem 1.25rem 0; }

/* ── Подвал ── */
.footer--v2 .footer-grid { grid-template-columns: 1.1fr 2.2fr 1fr 1fr; gap: 2.5rem; }
.footer--v2 .footer-products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.footer--v2 .footer-products h5 {
  margin: 1.1rem 0 .5rem;
  font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.9);
}
.footer--v2 .footer-products h5:first-child { margin-top: 0; }
.footer--v2 .footer-products .footer-links { gap: .4rem; }
.footer--v2 .footer-partner { font-size: .75rem; color: rgba(255,255,255,.4); margin-left: .25rem; }
.footer--v2 .footer-geo { columns: 2; column-gap: 1.25rem; }
.footer--v2 .footer-geo .footer-link { display: block; margin-bottom: .4rem; break-inside: avoid; }
@media (max-width: 1100px) {
  .footer--v2 .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer--v2 .footer-col--products { grid-column: 1 / -1; order: 3; }
}
@media (max-width: 640px) {
  .footer--v2 .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer--v2 .footer-products { grid-template-columns: 1fr; }
  .footer--v2 .footer-link { display: inline-block; padding: .4rem 0; }
}

/* ── Язык: текущий как кнопка, остальные списком при наведении или фокусе ── */
.header--v2 .lang-dd { position: relative; display: block; }
.header--v2 .lang-current {
  padding: .35rem .55rem; font-size: .8rem; font-weight: 700; letter-spacing: .02em;
  color: var(--white); background: var(--primary); border-radius: var(--radius-sm);
}
.header--v2 .lang-current:hover, .header--v2 .lang-dd:focus-within > .lang-current, .header--v2 .lang-dd.is-open > .lang-current { color: var(--white); background: var(--primary-dark, #000450); }
.header--v2 .lang-current .nv-caret { border-top-color: currentColor; margin-left: .35rem; }
.header--v2 .lang-list.nv-panel { left: auto; right: 0; min-width: 0; padding: .35rem; display: flex; flex-direction: column; gap: 2px; border-radius: var(--radius); }
.header--v2 .lang-list .lang-btn { display: block; padding: .45rem .8rem; font-size: .8rem; font-weight: 700; color: var(--gray-700); border-radius: var(--radius-sm); text-align: center; }
.header--v2 .lang-list .lang-btn:hover, .header--v2 .lang-list .lang-btn:focus { background: var(--gray-50); color: var(--primary); }

/* Строка пояснений макета (в боевую раскатку не идёт) */
.maket-note { background: #fff8e1; border: 1px solid #f0d98a; border-radius: var(--radius); padding: 1rem 1.25rem; font-size: .92rem; line-height: 1.55; color: var(--gray-900); }
.maket-note ol, .maket-note ul { margin: .5rem 0 0 1.25rem; }
.maket-note li { margin-bottom: .35rem; }
