/* ==========================================================================
   M4B - бренд-фиксы (Dark Cyber / Acid Green)
   Подключить ПОСЛЕ assets/css/style.css на всех страницах:
   <link rel="stylesheet" href="assets/css/brand-fixes.css">
   ========================================================================== */

/* ------------------------------------------------------------------
   1. ТЕМЫ. Убираем светлые Blueprint/Airy - весь сайт в тёмном бренде.
   Светлый фон по брендбуку - только для печати с чёрным монохромом.
   ------------------------------------------------------------------ */
body.theme-expo, .zone-expo,
body.theme-merch, .zone-merch {
  --bg: #0A0A0A;
  --ink: #FFFFFF;
  --muted: #888888;
  --muted2: #999999;
  --acc: #CCFF00;
  --acc-ink: #0A0A0A;
  --acc-glow: rgba(204,255,0,.15);
  --acc-brd-hov: rgba(204,255,0,.4);
  --card: rgba(17,17,17,.7);
  --brd: rgba(255,255,255,.08);
  --btn-bg: #CCFF00;
  --btn-ink: #0A0A0A;
  --badge-bg: rgba(204,255,0,.08);
  --badge-ink: #CCFF00;
  --tb-bg: rgba(10,10,10,.62);
  --input-bg: rgba(255,255,255,.05);
  --orb1: rgba(204,255,0,.12);
  --orb2: rgba(0,119,255,.10);
  --sel-bg: #CCFF00;
  --sel-ink: #0A0A0A;

  background-color: #0A0A0A;
  background-image: none;   /* убрана миллиметровка */
  color: #FFFFFF;
}

/* Все акценты снова кислотные (были чёрными/синими в светлых темах) */
body.theme-expo .acid, .zone-expo .acid,
body.theme-merch .acid, .zone-merch .acid { color: var(--acc); }

body.theme-expo .stat b, .zone-expo .stat b,
body.theme-expo .svc-num, .zone-expo .svc-num,
body.theme-expo .step::before, .zone-expo .step::before,
body.theme-expo .eyebrow b, .zone-expo .eyebrow b,
body.theme-expo .badge b, .zone-expo .badge b,
body.theme-expo .dir-num, .zone-expo .dir-num,
body.theme-expo .dir-arrow, .zone-expo .dir-arrow,
body.theme-expo .case-result, .zone-expo .case-result,
body.theme-expo .member span, .zone-expo .member span,
body.theme-expo .pc-expo, .zone-expo .pc-expo,
body.theme-merch .stat b, .zone-merch .stat b,
body.theme-merch .svc-num, .zone-merch .svc-num,
body.theme-merch .step::before, .zone-merch .step::before,
body.theme-merch .eyebrow b, .zone-merch .eyebrow b,
body.theme-merch .badge b, .zone-merch .badge b,
body.theme-merch .dir-num, .zone-merch .dir-num,
body.theme-merch .dir-arrow, .zone-merch .dir-arrow,
body.theme-merch .member span, .zone-merch .member span,
body.theme-merch .pc-expo, .zone-merch .pc-expo { color: var(--acc); }

/* Стрелки в кнопках - цвет текста кнопки (белый на синем запрещён) */
body.theme-merch .btn .arr, .zone-merch .btn .arr,
body.theme-expo .btn .arr, .zone-expo .btn .arr { color: var(--btn-ink); }

/* ------------------------------------------------------------------
   2. ДЕКОР. Сетки-чертежи запрещены брендбуком - только орбы.
   ------------------------------------------------------------------ */
.hero-grid-bg { display: none; }

/* Футер - фирменный тёмный, заголовки кислотные (не #7EC8FF) */
body.theme-expo footer, body.theme-merch footer { background: #0A0A0A; }
body.theme-merch footer h4, body.theme-expo footer h4 { color: #CCFF00; }
body.theme-merch footer a:hover, body.theme-expo footer a:hover { color: #CCFF00; }
body.theme-merch footer .legal a:hover,
body.theme-expo footer .legal a:hover { color: #CCFF00; }

/* ------------------------------------------------------------------
   3. ПАЛИТРА. Чужие серо-синие возвращаем в токены #888/#999.
   ------------------------------------------------------------------ */
.nda-item span, .nda-disclaimer { color: #999999; }
.contacts-title { color: #888888; }

/* ------------------------------------------------------------------
   4. ТИПОГРАФИКА.
   - только начертания 500/700/800 (600 убран)
   - .case-result становится белым; кислотой - только <b> внутри
     (короткие блоки: цифры, ключевые слова)
   ------------------------------------------------------------------ */
.case-result small { font-weight: 500; }
.case-result { color: var(--ink); }
.case-result b, .case-result strong { color: var(--acc); font-weight: 800; }

/* Цифры счётчиков не переносятся по разрядам */
.stat b { white-space: nowrap; }

/* ------------------------------------------------------------------
   5. ЛОГОТИП. В таскбаре ширина ~80px (минимум брендбука для веб).
   ------------------------------------------------------------------ */
.tb-logo img { height: 33px; width: auto; }

/* ------------------------------------------------------------------
   6. НАВИГАЦИЯ. Активный пункт - не кислотная плашка, а контур,
   чтобы единственной кислотной CTA оставался "ОБСУДИТЬ ПРОЕКТ".
   ------------------------------------------------------------------ */
.tb-link.active {
  color: var(--acc);
  background: rgba(204,255,0,.08);
  box-shadow: inset 0 0 0 1px rgba(204,255,0,.25);
}

/* ------------------------------------------------------------------
   7. ГЕРОЙ. Молния - фоновый декор: не перекрывает заголовок,
   приглушена (знак не должен конкурировать с контентом).
   ------------------------------------------------------------------ */
.hero-bolt { right: 1vw; opacity: .5; }
.hero-bolt svg { width: clamp(180px, 24vw, 380px); }
@media (max-width: 1100px) { .hero-bolt { opacity: .25; } }

/* ------------------------------------------------------------------
   8. ФОРМЫ. Чекбокс согласия - в бренде, а не системный белый.
   ------------------------------------------------------------------ */
input[type="checkbox"] { accent-color: #CCFF00; width: 16px; height: 16px; }
.cta form, form#lead-form { color: var(--muted); }

/* ------------------------------------------------------------------
   9. ОРБЫ ПОД СТЕКЛОМ. Без них карточки плоские (нарушена анатомия
   "4 слоя"). Добавить в разметку секций:
     <section class="section" id="...">
       <div class="orb-field"></div>
       ...
   (секции .section уже имеют position: relative)
   ------------------------------------------------------------------ */
.orb-field { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.orb-field::before, .orb-field::after { content: ""; position: absolute; width: 500px; height: 500px; border-radius: 50%; filter: blur(150px); }
.orb-field::before { background: #CCFF00; opacity: .12; top: -140px; left: -120px; }
.orb-field::after  { background: #0077FF; opacity: .10; bottom: -160px; right: -120px; }
.section > .wrap, .section > .cta, .section > div { position: relative; z-index: 1; }

/* ------------------------------------------------------------------
   10. NDA. Цвет тега - по палитре (inline-стиль убрать в HTML,
   см. правку №3 в инструкции).
   ------------------------------------------------------------------ */
.nda-note .chip { color: #999999 !important; border-color: rgba(255,255,255,.2) !important; }

/* ------------------------------------------------------------------
   11. ФОТО. Быстрая цветовая правка мерч-пакшотов (белые подложки
   убираются заменой фото, см. правку №5 в инструкции).
   ------------------------------------------------------------------ */
.case-imgs img, .zone-photos img, .arch-card img {
  filter: brightness(.92) contrast(1.02) saturate(.95);
}

/* ------------------------------------------------------------------
   12. ГЕОГРАФИЯ. Левое выравнивание (центр - только цифры и обложки).
   ------------------------------------------------------------------ */
.geo-bento-cell { text-align: left; }
.geo-list { justify-content: flex-start; }

/* ------------------------------------------------------------------
   13. КЛИЕНТСКАЯ СТЕНА. Воздух вместо плотной таблицы.
   ------------------------------------------------------------------ */
.client-wall { gap: 12px; }
.client-cell { border: 1px solid rgba(255,255,255,.08); border-radius: 16px; }

/* ------------------------------------------------------------------
   14. МОБИЛЬНАЯ ВЕРСИЯ (<=480px). Проверено на 390px.
   ------------------------------------------------------------------ */
@media (max-width: 480px) {

  /* Таскбар: EN и все пункты доступны - лента со скрытым скроллом,
     а не обрезанный край */
  .taskbar { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .taskbar::-webkit-scrollbar { display: none; }
  .tb-link { padding: 10px 8px; font-size: 11px; white-space: nowrap; flex: 0 0 auto; }

  /* Куки-баннер: компактный, кнопка не на всю ширину,
     не заливает контент и CTA */
  .cookies { padding: 14px 16px; gap: 10px; font-size: 12.5px; max-height: 40vh; overflow-y: auto; }
  .cookies .btn { width: auto; padding: 10px 22px; }

  /* Клиентская стена: 2 колонки вместо 3 - стена не съедает 3 экрана */
  .client-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .client-cell { padding: 12px 10px; font-size: 12.5px; }

  /* Герой: длинный бейдж не распадается на число и хвост */
  .badge { font-size: 10.5px; line-height: 1.3; }

  /* Тень таскбара на маленьких экранах слабее - не сливает контент */
  .taskbar { box-shadow: 0 12px 34px rgba(0,0,0,.45); }
}

/* ------------------------------------------------------------------
   15. КНОПКИ. Межстрочный интервал 1, иначе uppercase-текст
   визуально "всплывает" вверх пилюли (наследовался line-height 1.6).
   ------------------------------------------------------------------ */
.btn, .tb-link { line-height: 1; }
.btn, .tb-link, .cookies .btn { justify-content: center; text-align: center; }

/* Десктоп: нижний отступ страницы, чтобы контент не слипался
   с нижним fixed-таскбаром (на мобильных отступ уже есть, 78px) */
@media (min-width: 861px) {
  body { padding-bottom: 110px; }
}

/* ------------------------------------------------------------------
 17. ТАСКБАР. Пункты не сжимаются (flex-shrink по умолчанию ужимал
 кнопку "Обсудить проект" меньше текста: overflow-wrap:break-word
 из style.css разрешал "аварийный" перенос, текст с nowrap-ом
 выпирал, и надпись визуально уходила вправо/влево от центра).
 white-space:nowrap у пунктов и так запрещает перенос, поэтому
 overflow-wrap здесь не нужен. Мобильные медиа задают свои правила
 (лента с flex: 0 0 auto) - им это не мешает.
 ------------------------------------------------------------------ */
.tb-link { flex: 0 0 auto; overflow-wrap: normal; }
