/* ═══════════════════════════════════════════════════════════════════════════
   v2-signal.css — концепт «Сигнал»: видео-hero, liquid-glass, живые акценты.
   Единственный гейт-класс — html.v2 (ставится инлайн-скриптом в head до CSS).
   Раскатывается на все страницы через <link>. Секции HOME-ONLY инертны без
   hero-разметки (реально живут только на index-v2). Деградация — html.v2-lite.
   Перф: backdrop-filter снят с кнопок; зерно без mix-blend; анимации через
   transform/opacity, не layout/box-shadow.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ══════════════════════════ HOME-ONLY: hero-видео ═══════════════════════════ */

.hero-video { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: #05070d; }
.hero-video video { width: 100%; height: 100%; object-fit: cover; }
.hero-scrim { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
html.v2 .hero-image-bg { display: none; }

html.v2 .hero {
  margin: 0;
  min-height: 100svh;
  border-radius: 0 0 32px 32px;
  overflow: hidden;
  border: none;
  padding-top: 140px;
}
html.v2 .hero-video video { filter: brightness(0.68) saturate(1.05); }
html.v2 .hero-scrim {
  background:
    radial-gradient(ellipse 82% 56% at 50% 42%, rgba(0,0,0,0.40) 0%, transparent 100%),
    linear-gradient(180deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.28) 38%, rgba(0,0,0,0.52) 74%, rgba(0,0,0,0.78) 100%);
}
html.v2 .hero::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -44%;
  transform: translateX(-50%);
  width: 150%;
  height: 82%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 100%, rgba(58,130,255,0.34) 0%, rgba(167,139,250,0.18) 42%, transparent 70%);
  animation: v2-arc 7s ease-in-out infinite alternate;
}
@keyframes v2-arc { from { opacity: 0.7; } to { opacity: 1; } }

/* HOME-ONLY: статы → три стеклянные карточки */
html.v2 .stats-inner {
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: visible;
  gap: 14px;
}
html.v2 .stat-item {
  border-radius: 20px;
  overflow: hidden;
  background: rgba(15,17,27,0.62);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.08), 0 14px 40px rgba(0,0,0,0.42);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s ease;
}
html.v2 .stat-item::after { display: none; }
html.v2 .stat-item::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.2px;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.30) 0%,
    rgba(255,255,255,0.07) 30%,
    rgba(58,130,255,0.10) 60%,
    rgba(167,139,250,0.30) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .stat-item:hover {
  transform: translateY(-5px);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.10), 0 0 34px rgba(58,130,255,0.20), 0 20px 50px rgba(0,0,0,0.5);
}
html.v2 .stat-number {
  white-space: nowrap;
  background: linear-gradient(135deg, #8DB7FF 0%, #C7B7FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
@media (max-width: 700px) {
  html.v2 .stats-inner { grid-template-columns: 1fr; gap: 10px; }
}

/* ══════════════════════════ UNIVERSAL: кнопки ══════════════════════════════ */

/* мягкие переходы всех кнопок (вместо резких 0.15s) */
html.v2 .btn {
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s ease, background 0.5s ease, border-color 0.3s ease, color 0.3s ease;
}

/* HOME-ONLY: пайплайн «Находим → Демо за 24 ч → Запуск» с бегущим импульсом */
.v2-pipeline { display: none; }
html.v2 .v2-pipeline {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  margin: 38px auto 0;
  max-width: 780px;
}
html.v2 .hero-trust { margin-top: 34px; }
.v2-node { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 0 6px; }
.v2-node span { font-size: 0.8125rem; font-weight: 500; color: var(--text-2); white-space: nowrap; }
.v2-node-ic {
  width: 52px; height: 52px;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  color: var(--accent);
  background: rgba(58,130,255,0.08);
  border: 1px solid rgba(58,130,255,0.28);
  box-shadow: 0 0 24px rgba(58,130,255,0.22), inset 0 1px 1px rgba(255,255,255,0.09);
  animation: v2-node-pulse 2.6s ease-in-out infinite;
}
.v2-node-ic svg { width: 22px; height: 22px; }
.v2-node:nth-child(3) .v2-node-ic { animation-delay: 0.85s; }
.v2-node:nth-child(5) .v2-node-ic {
  animation-delay: 1.7s;
  color: var(--accent-purple);
  background: rgba(167,139,250,0.09);
  border-color: rgba(167,139,250,0.3);
  box-shadow: 0 0 24px rgba(167,139,250,0.22), inset 0 1px 1px rgba(255,255,255,0.09);
}
@keyframes v2-node-pulse { 0%, 100% { filter: brightness(0.85); } 50% { filter: brightness(1.4); } }
.v2-wire {
  flex: 1 1 70px;
  min-width: 50px;
  max-width: 140px;
  height: 2px;
  margin-top: 25px;
  position: relative;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(58,130,255,0.14), rgba(167,139,250,0.3));
}
.v2-wire::after {
  content: '';
  position: absolute;
  top: 50%; left: 0;
  width: 22px; height: 4px;
  margin-top: -2px;
  border-radius: 4px;
  background: linear-gradient(90deg, transparent, #7FB0FF 55%, #fff);
  box-shadow: 0 0 12px 2px rgba(90,154,255,0.8);
  animation: v2-signal 2.4s linear infinite;
}
.v2-wire + .v2-node + .v2-wire::after { animation-delay: 1.2s; }
/* сигнал идёт строго по проводу: left в % от его ширины, без перелёта */
@keyframes v2-signal {
  0% { left: 0; opacity: 0; }
  18% { opacity: 1; }
  80% { opacity: 1; }
  100% { left: calc(100% - 22px); opacity: 0; }
}
@media (max-width: 700px) {
  html.v2 .v2-pipeline { flex-wrap: wrap; gap: 14px; }
  .v2-wire { display: none; }
  .v2-node { flex-direction: row; }
}

/* живые акценты hero-заголовка и primary-кнопки */
html.v2 .hero-title .gradient-text {
  background-size: 220% 220%;
  animation: v2-grad 6s ease-in-out infinite alternate;
}
@keyframes v2-grad { from { background-position: 0% 30%; } to { background-position: 100% 70%; } }
html.v2 .hero-actions .btn-primary { position: relative; overflow: hidden; }
html.v2 .hero-actions .btn-primary::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 45%; left: -70%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,0.4), transparent);
  transform: skewX(-20deg);
  animation: v2-shine 4.5s ease-in-out infinite;
}
@keyframes v2-shine { 0%, 55% { transform: translateX(0) skewX(-20deg); } 80%, 100% { transform: translateX(480%) skewX(-20deg); } }

/* «дыхание» популярного тарифа: анимируем opacity готовой тени на псевдослое,
   не box-shadow самого элемента (иначе repaint каждый кадр) */
html.v2 .pricing-popular { position: relative; }
html.v2 .pricing-popular::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 46px rgba(58,130,255,0.17);
  opacity: 0;
  animation: v2-breath 5s ease-in-out infinite;
}
@keyframes v2-breath { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }

/* ── liquid glass кнопки (backdrop-filter снят — perf; вид держат рамка+фон+тень) ── */
html.v2 .btn-secondary,
html.v2 .btn-ghost {
  position: relative;
  overflow: hidden;
  border: none;
  background: rgba(255,255,255,0.07);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.10), 0 8px 24px rgba(0,0,0,0.30);
}
html.v2 .btn-secondary::before,
html.v2 .btn-ghost::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.3px;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.42) 0%,
    rgba(255,255,255,0.10) 28%,
    rgba(58,130,255,0.10) 55%,
    rgba(167,139,250,0.32) 82%,
    rgba(58,130,255,0.50) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .btn-secondary:hover,
html.v2 .btn-ghost:hover {
  background:
    radial-gradient(150px circle at var(--mx, 50%) var(--my, 50%),
      rgba(58,130,255,0.30), rgba(124,92,255,0.13) 55%, transparent 100%),
    rgba(255,255,255,0.07);
  transform: translateY(-1px) scale(1.03);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.16), 0 0 30px rgba(58,130,255,0.22), 0 10px 30px rgba(0,0,0,0.35);
}
html.v2 .btn-primary {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.20);
  background: linear-gradient(135deg, rgba(58,130,255,0.94) 0%, rgba(124,92,255,0.94) 100%);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.30), 0 0 26px rgba(58,130,255,0.35), 0 6px 18px rgba(58,130,255,0.22);
}
html.v2 .btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.2px;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.52) 0%,
    rgba(255,255,255,0.16) 28%,
    rgba(58,130,255,0.16) 55%,
    rgba(167,139,250,0.38) 82%,
    rgba(58,130,255,0.58) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .btn-primary:hover {
  background:
    radial-gradient(150px circle at var(--mx, 50%) var(--my, 50%),
      rgba(255,255,255,0.34), rgba(124,92,255,0.18) 55%, transparent 100%),
    linear-gradient(135deg, rgba(90,154,255,0.95) 0%, rgba(147,120,255,0.95) 100%);
  transform: translateY(-1px) scale(1.03);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.35), 0 0 42px rgba(58,130,255,0.55), 0 10px 30px rgba(124,92,255,0.30);
}

/* ══════════════════════ HOME-ONLY: бегущий код + терминал ═══════════════════ */
.v2-code { display: none; }
html.v2 .v2-code {
  display: flex;
  position: absolute;
  inset: 0;
  z-index: 0;
  justify-content: space-between;
  padding: 0 3vw;
  pointer-events: none;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 20%, #000 75%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 20%, #000 75%, transparent 100%);
}
.v2-code-col {
  font: 400 12px/2 Consolas, 'Cascadia Code', 'SF Mono', monospace;
  white-space: pre;
  color: rgba(122,168,255,0.15);
  text-shadow: 0 0 8px rgba(58,130,255,0.25);
  animation: v2-code-scroll 46s linear infinite;
}
.v2-code-col:last-child {
  color: rgba(167,139,250,0.13);
  text-shadow: 0 0 8px rgba(167,139,250,0.22);
  animation-duration: 64s;
}
@keyframes v2-code-scroll { from { transform: translateY(0); } to { transform: translateY(-50%); } }
@media (max-width: 1100px) { html.v2 .v2-code { display: none; } }

.v2-term { display: none; }
html.v2 .v2-term {
  display: block;
  position: absolute;
  right: 42px;
  bottom: 150px;
  z-index: 1;
  width: 342px;
  border-radius: 22px;
  background:
    radial-gradient(260px circle at 18% 0%, rgba(58,130,255,0.20), transparent 56%),
    radial-gradient(220px circle at 92% 10%, rgba(167,139,250,0.18), transparent 54%),
    rgba(8,11,19,0.84);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.13);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.10), 0 24px 64px rgba(0,0,0,0.48);
  text-align: left;
  overflow: hidden;
}
html.v2 .v2-term::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(140deg, rgba(141,183,255,0.48), rgba(255,255,255,0.08) 42%, rgba(167,139,250,0.42) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .v2-term::after {
  content: '';
  position: absolute;
  inset: 42px 0 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: 0.22;
  pointer-events: none;
}
.v2-term-head {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  font: 600 10.5px/1 Consolas, 'Cascadia Code', monospace;
  color: rgba(255,255,255,0.48);
  letter-spacing: 0.04em;
}
.v2-term-head i {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: rgba(255,255,255,0.14);
}
.v2-term-head i:first-child { background: rgba(58,130,255,0.55); }
.v2-term-head span { margin-left: 6px; }
.v2-term-head::after {
  content: 'LIVE';
  margin-left: auto;
  padding: 4px 8px;
  border-radius: 999px;
  color: #92FFC0;
  background: rgba(126,226,168,0.10);
  border: 1px solid rgba(126,226,168,0.22);
  box-shadow: 0 0 18px rgba(126,226,168,0.16);
}
.v2-term-body {
  position: relative;
  z-index: 1;
  padding: 14px;
  min-height: 198px;
  font: 500 12px/1.4 Consolas, 'Cascadia Code', monospace;
  color: #9FB6DE;
}
.v2-term-command {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 11px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06);
  color: #DCE8FF;
}
.v2-term-prompt { color: #7EE2A8; }
.v2-term-command b {
  margin-left: auto;
  font-weight: 700;
  color: #9BC1FF;
  text-shadow: 0 0 12px rgba(58,130,255,0.34);
}
.v2-term-progress {
  position: relative;
  height: 5px;
  margin: 12px 2px 13px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,0.08);
}
.v2-term-progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3A82FF, #7EE2A8, #A78BFA);
  transform-origin: left;
  transform: scaleX(0);
  animation: v2-term-progress 5.8s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}
@keyframes v2-term-progress {
  0%, 9% { transform: scaleX(0.06); opacity: 0.65; }
  72% { transform: scaleX(1); opacity: 1; }
  88%, 100% { transform: scaleX(1); opacity: 0.35; }
}
.v2-term-steps { display: grid; gap: 7px; }
.v2-term-step {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  align-items: center;
  gap: 9px;
  padding: 7px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  color: rgba(220,232,255,0.74);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.36s ease, transform 0.36s cubic-bezier(0.22, 1, 0.36, 1), background 0.36s ease, border-color 0.36s ease;
}
.v2-term-step.on {
  opacity: 1;
  transform: translateY(0);
  background: rgba(255,255,255,0.065);
  border-color: rgba(141,183,255,0.16);
}
.v2-term-step i {
  width: 18px;
  height: 18px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-style: normal;
  font-size: 11px;
  color: #07111F;
  background: linear-gradient(135deg, #7EE2A8, #7FA8FF);
  box-shadow: 0 0 14px rgba(126,226,168,0.22);
}
.v2-term-step strong {
  font-weight: 700;
  color: #EAF1FF;
}
.v2-term-step em {
  font-style: normal;
  font-size: 10px;
  color: rgba(155,193,255,0.84);
}
.v2-term-launch {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
  min-height: 38px;
  padding: 9px 12px;
  border-radius: 14px;
  color: #EAF1FF;
  background:
    radial-gradient(120px circle at 12% 50%, rgba(126,226,168,0.15), transparent 66%),
    linear-gradient(120deg, rgba(58,130,255,0.34), rgba(167,139,250,0.26));
  border: 1px solid rgba(141,183,255,0.22);
  box-shadow: 0 0 26px rgba(58,130,255,0.14), inset 0 1px 1px rgba(255,255,255,0.08);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.36s ease, transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
}
.v2-term-launch.on { opacity: 1; transform: translateY(0); }
.v2-term-launch span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7EE2A8;
  box-shadow: 0 0 14px 2px rgba(126,226,168,0.45);
}
.v2-term-launch strong { font-weight: 700; }
.v2-term-launch strong,
.v2-term-launch em { white-space: nowrap; }
.v2-term-launch em {
  margin-left: auto;
  font-style: normal;
  color: #9BC1FF;
}
.v2-term-cursor {
  display: inline-block;
  width: 7px; height: 13px;
  margin-left: 2px;
  background: #7FA8FF;
  vertical-align: -2px;
  animation: v2-cursor 1s steps(1) infinite;
}
@keyframes v2-cursor { 50% { opacity: 0; } }
html.v2[data-theme="light"] .v2-term {
  background:
    radial-gradient(260px circle at 18% 0%, rgba(0,113,227,0.18), transparent 56%),
    radial-gradient(220px circle at 92% 10%, rgba(124,58,237,0.14), transparent 54%),
    rgba(31,39,55,0.74);
  border-color: rgba(255,255,255,0.32);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.18), 0 24px 58px rgba(20,30,60,0.22);
}
@media (max-width: 1250px) { html.v2 .v2-term { display: none; } }

/* HOME-ONLY: прогресс-бар скролла (создаётся из JS) */
.v2-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 100%;
  transform-origin: left;
  transform: scaleX(0);
  z-index: 10002;
  background: linear-gradient(90deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 12px rgba(58,130,255,0.65);
  pointer-events: none;
}
html.v2 .hero-container { will-change: transform, opacity; }

/* ══════════════════════ UNIVERSAL: заголовки, разделители ═══════════════════ */

/* светящаяся черта под заголовками секций (растёт при появлении) */
html.v2 .section-title { position: relative; padding-bottom: 18px; }
html.v2 .section-title::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 64px; height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 14px rgba(58,130,255,0.5);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}
html.v2 .section-title.visible::after { transform: scaleX(1); }
/* заголовки без .reveal (common.js не навесит .visible) — черта видна сразу */
html.v2 .section-title:not(.reveal)::after { transform: scaleX(1); }
/* центрированная черта: класс .v2-tc вешает JS по computed text-align — надёжнее
   атрибут-селектора (setProperty ресериализует inline-style; center бывает от
   предка / класса .contact-container / самого h2) */
html.v2 .section-title.v2-tc::after { left: 50%; transform: translateX(-50%) scaleX(0); }
html.v2 .section-title.v2-tc.visible::after,
html.v2 .section-title.v2-tc:not(.reveal)::after { transform: translateX(-50%) scaleX(1); }

/* живые разделители секций */
html.v2 .section-divider {
  background: linear-gradient(90deg, transparent, rgba(58,130,255,0.35) 35%, rgba(167,139,250,0.35) 65%, transparent);
  background-size: 220% 100%;
  animation: v2-divider 9s linear infinite;
}
@keyframes v2-divider { from { background-position: 220% 0; } to { background-position: -220% 0; } }

/* ══════════════════════ UNIVERSAL: карточки ════════════════════════════════ */
html.v2 .portfolio-card, html.v2 .pricing-card, html.v2 .service-item,
html.v2 .marketing-card, html.v2 .svc-inc-card, html.v2 .support-card,
html.v2 .seo-metric-card, html.v2 .seo-segment-card, html.v2 .svc-card,
html.v2 .blog-card, html.v2 .seo-price-card, html.v2 .pain-card,
html.v2 .methodology-item, html.v2 .vs-card, html.v2 .geo-platform-card,
html.v2 .team-card-mini, html.v2 .team-card, html.v2 .how-we-work-card,
html.v2 .steps-equal .step, html.v2 .client-step {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.55s ease, border-color 0.45s ease, background 0.5s ease;
}
html.v2 .portfolio-card:hover, html.v2 .pricing-card:hover, html.v2 .service-item:hover,
html.v2 .marketing-card:hover, html.v2 .svc-inc-card:hover, html.v2 .support-card:hover,
html.v2 .seo-metric-card:hover, html.v2 .seo-segment-card:hover, html.v2 .svc-card:hover,
html.v2 .blog-card:hover, html.v2 .seo-price-card:hover, html.v2 .pain-card:hover,
html.v2 .methodology-item:hover, html.v2 .vs-card:hover, html.v2 .geo-platform-card:hover,
html.v2 .team-card-mini:hover, html.v2 .team-card:hover, html.v2 .how-we-work-card:hover,
html.v2 .steps-equal .step:hover, html.v2 .client-step:hover {
  transform: translateY(-6px);
  border-color: rgba(58,130,255,0.38);
  box-shadow: 0 0 0 1px rgba(58,130,255,0.10), 0 0 38px rgba(58,130,255,0.13), 0 24px 60px rgba(0,0,0,0.5);
}
html.v2 .portfolio-img { transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1); }
html.v2 .portfolio-card:hover .portfolio-img { transform: scale(1.05); }

/* иконки внутри карточек оживают вместе с hover */
html.v2 .img-3d-icon, html.v2 .marketing-card-icon, html.v2 .guarantees-bar-item svg,
html.v2 .svc-inc-badge, html.v2 .seo-metric-icon {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s ease;
}
html.v2 .service-item:hover .img-3d-icon { transform: translateY(-4px) scale(1.07); }
html.v2 .marketing-card:hover .marketing-card-icon { transform: scale(1.1) rotate(-4deg); box-shadow: 0 0 24px rgba(58,130,255,0.28); }
html.v2 .svc-inc-card:hover .svc-inc-badge { transform: scale(1.12); }
html.v2 .guarantees-bar-item:hover svg { transform: translateY(-3px) scale(1.12); }

/* номера шагов — светящиеся узлы в такт пайплайну hero */
html.v2 .svc-step-num {
  background: rgba(58,130,255,0.08);
  border: 1px solid rgba(58,130,255,0.30);
  color: #8DB7FF;
  box-shadow: 0 0 20px rgba(58,130,255,0.18), inset 0 1px 1px rgba(255,255,255,0.08);
  animation: v2-node-pulse 2.8s ease-in-out infinite;
}
html.v2 .svc-step:nth-child(3) .svc-step-num { animation-delay: 0.9s; }
html.v2 .svc-step:nth-child(5) .svc-step-num { animation-delay: 1.8s; }

/* стеклянная полоса гарантий */
html.v2 .guarantees-bar {
  background: rgba(15,17,27,0.5);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-color: rgba(255,255,255,0.10);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06);
}

/* SEO-метрики мягко «дышат» */
html.v2 .seo-metrics-stack .seo-metric-card { animation: v2-float 7s ease-in-out infinite; }
html.v2 .seo-metrics-stack .seo-metric-card:nth-child(2) { animation-delay: 1.4s; }
html.v2 .seo-metrics-stack .seo-metric-card:nth-child(3) { animation-delay: 2.8s; }
@keyframes v2-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* ambient-свечение за тарифами и SEO */
html.v2 .pricing::after, html.v2 #seo::after {
  content: '';
  position: absolute;
  left: 50%; top: -140px;
  width: 760px; height: 540px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(58,130,255,0.07) 0%, rgba(167,139,250,0.05) 45%, transparent 72%);
  pointer-events: none;
  animation: v2-ambient 12s ease-in-out infinite alternate;
}
@keyframes v2-ambient { from { opacity: 0.55; transform: translateX(-56%); } to { opacity: 1; transform: translateX(-44%); } }

/* FAQ */
html.v2 .faq-question { transition: color 0.3s ease; }
html.v2 .faq-question:hover { color: #8DB7FF; }
html.v2 .faq-icon { transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease; }
html.v2 .faq-question.open .faq-icon { color: #A78BFA; }
html.v2 .faq-answer { transition: max-height 0.55s cubic-bezier(0.22, 1, 0.36, 1); }

/* форма заявки: стекло + мягкий фокус */
html.v2 .contact-form {
  background: rgba(15,17,27,0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-color: rgba(255,255,255,0.10);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06), 0 24px 70px rgba(0,0,0,0.45);
}
html.v2 .form-group input, html.v2 .form-group select {
  transition: border-color 0.35s ease, box-shadow 0.45s ease, background 0.35s ease;
}
html.v2 .form-group input:focus, html.v2 .form-group select:focus {
  border-color: rgba(58,130,255,0.6);
  box-shadow: 0 0 0 3px rgba(58,130,255,0.14), 0 0 24px rgba(58,130,255,0.14);
}

/* ══════════════════════ UNIVERSAL: глитч-заголовки ═════════════════════════ */
html.v2 .v2-glitch { position: relative; }
html.v2 .v2-glitch::before,
html.v2 .v2-glitch::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: #fff;
  opacity: 0;
  pointer-events: none;
}
html.v2 .v2-glitch-on::before {
  text-shadow: 2px 0 rgba(58,130,255,0.9), -1px 0 rgba(167,139,250,0.7);
  animation: v2-glitch-a 3.2s infinite steps(1);
}
html.v2 .v2-glitch-on::after {
  text-shadow: -2px 0 rgba(167,139,250,0.9), 1px 0 rgba(58,130,255,0.6);
  animation: v2-glitch-b 3.2s infinite steps(1);
}
html.v2 .v2-glitch-on { animation: v2-glitch-base 3.2s infinite steps(1); }
@keyframes v2-glitch-base {
  0%, 85% { transform: none; }
  87% { transform: translateX(2px) skewX(-1.5deg); }
  90% { transform: translateX(-2px) skewX(1deg); }
  93%, 100% { transform: none; }
}
@keyframes v2-glitch-a {
  0%, 84% { opacity: 0; clip-path: inset(0 0 100% 0); }
  86% { opacity: 0.85; clip-path: polygon(0 10%, 100% 10%, 100% 28%, 0 28%); transform: translate(-7px, 0); }
  88.5% { opacity: 0.85; clip-path: polygon(0 55%, 100% 55%, 100% 70%, 0 70%); transform: translate(6px, 0); }
  91% { opacity: 0.85; clip-path: polygon(0 30%, 100% 30%, 100% 46%, 0 46%); transform: translate(-4px, 1px); }
  93.5%, 100% { opacity: 0; clip-path: inset(0 0 100% 0); }
}
@keyframes v2-glitch-b {
  0%, 85% { opacity: 0; clip-path: inset(0 0 100% 0); }
  87% { opacity: 0.8; clip-path: polygon(0 66%, 100% 66%, 100% 84%, 0 84%); transform: translate(7px, 0); }
  89.5% { opacity: 0.8; clip-path: polygon(0 4%, 100% 4%, 100% 20%, 0 20%); transform: translate(-6px, -1px); }
  92% { opacity: 0.8; clip-path: polygon(0 40%, 100% 40%, 100% 54%, 0 54%); transform: translate(4px, 0); }
  94.5%, 100% { opacity: 0; clip-path: inset(0 0 100% 0); }
}

html.v2 .v2-glitch-h2 { position: relative; }
html.v2 .v2-glitch-h2::before {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: #fff;
  opacity: 0;
  pointer-events: none;
  text-shadow: 2px 0 rgba(58,130,255,0.85), -2px 0 rgba(167,139,250,0.85);
  animation: v2-glitch-h2 4.6s infinite steps(1);
  animation-delay: var(--gd, 0s);
}
@keyframes v2-glitch-h2 {
  0%, 88% { opacity: 0; clip-path: inset(0 0 100% 0); transform: none; }
  89.5% { opacity: 0.75; clip-path: polygon(0 15%, 100% 15%, 100% 42%, 0 42%); transform: translateX(-5px); }
  91.5% { opacity: 0.75; clip-path: polygon(0 55%, 100% 55%, 100% 82%, 0 82%); transform: translateX(4px); }
  93%, 100% { opacity: 0; clip-path: inset(0 0 100% 0); transform: none; }
}

/* ══════════════════════ HOME-ONLY: marquee ══════════════════════════════════ */
.v2-marquee {
  position: relative;
  width: 100%;
  height: 1.6em;
  font-size: clamp(2rem, 4.6vw, 3.6rem);
  overflow: hidden;
  margin: 72px 0 4px;
}
.v2-marquee-track {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #fff;
  animation: v2-marquee 36s linear infinite;
  will-change: transform;
}
@keyframes v2-marquee { to { transform: translateY(-50%) translateX(-50%); } }
.v2-marquee:hover .v2-marquee-track { animation-play-state: paused; }
.v2-marquee-blur, .v2-marquee-clear { position: absolute; inset: 0; }
.v2-marquee-blur {
  background-color: #000;
  background-image:
    linear-gradient(to right, rgba(58,130,255,0.85), 1rem, transparent 50%),
    linear-gradient(to left, rgba(167,139,250,0.85), 1rem, transparent 50%);
  filter: contrast(15);
  pointer-events: none;
}
.v2-marquee-blur .v2-marquee-track { filter: blur(0.07em); }
.v2-marquee i { font-style: normal; opacity: 0.5; margin: 0 0.45em; }
.v2-marquee a { color: inherit; text-decoration: none; transition: color 0.3s ease, text-shadow 0.4s ease; }
.v2-marquee a:hover { color: #8DB7FF; text-shadow: 0 0 26px rgba(58,130,255,0.65); }

/* ══════════════════════ HOME-ONLY: киношное зерно ═══════════════════════════ */
/* без mix-blend-mode: полноэкранный blend поверх играющего видео — дорого */
.v2-grain {
  position: absolute;
  inset: -60px;
  z-index: 0;
  pointer-events: none;
  opacity: 0.05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: v2-grain 0.9s steps(4) infinite;
}
@keyframes v2-grain {
  0% { transform: translate(0, 0); }
  25% { transform: translate(-18px, 12px); }
  50% { transform: translate(14px, -16px); }
  75% { transform: translate(-10px, -8px); }
  100% { transform: translate(0, 0); }
}

html.v2 .hero-title { text-shadow: 0 0 46px rgba(58,130,255,0.22), 0 0 90px rgba(167,139,250,0.14); }

/* ══════════════════════ UNIVERSAL: trust-пилюли, блики, детали ══════════════ */
html.v2 .hero-trust { gap: 12px; font-size: 0.875rem; color: #C9D3E4; }
html.v2 .trust-item {
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(20,24,38,0.55);
  border: 1px solid rgba(255,255,255,0.16);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.10), 0 6px 22px rgba(0,0,0,0.35);
  font-weight: 600;
  transition: border-color 0.4s ease, box-shadow 0.5s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease;
}
html.v2 .trust-item:hover {
  border-color: rgba(58,130,255,0.45);
  color: #fff;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.12), 0 0 24px rgba(58,130,255,0.22);
  transform: translateY(-2px);
}
html.v2 .trust-item svg { width: 15px; height: 15px; }

/* блик по превью работ при hover */
html.v2 .portfolio-preview::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 45%;
  left: 0;
  z-index: 1;
  transform: translateX(-256%) skewX(-18deg);
  background: linear-gradient(105deg, transparent, rgba(255,255,255,0.16), transparent);
  pointer-events: none;
}
html.v2 .portfolio-card:hover .portfolio-preview::after { animation: v2-sweep 0.85s ease; }
@keyframes v2-sweep { from { transform: translateX(-256%) skewX(-18deg); } to { transform: translateX(478%) skewX(-18deg); } }

/* градиентное тире у лейблов секций */
html.v2 .section-label { display: inline-flex; align-items: center; gap: 10px; }
html.v2 .section-label::before {
  content: '';
  width: 26px; height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, #3A82FF, #A78BFA);
}

html.v2 ::selection { background: rgba(58,130,255,0.45); color: #fff; }

/* скругление при 3D-tilt превью работ */
html.v2 .portfolio-preview {
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  overflow: hidden;
  transform: translateZ(0);
}

/* ══ услуги на главной: центрируем неполный ряд ══ */
html.v2 #services .services-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}
html.v2 #services .services-grid > .service-item {
  flex: 1 1 calc((100% - 32px) / 3);
  max-width: calc((100% - 32px) / 3);
}
@media (max-width: 900px) {
  html.v2 #services .services-grid > .service-item {
    flex-basis: calc((100% - 16px) / 2);
    max-width: calc((100% - 16px) / 2);
  }
}
@media (max-width: 560px) {
  html.v2 #services .services-grid > .service-item {
    flex-basis: 100%;
    max-width: 100%;
  }
}

/* ══════════════════════ UNIVERSAL: хедер ═══════════════════════════════════ */
html.v2 .header {
  background: linear-gradient(180deg, rgba(6,8,14,0.82) 0%, rgba(6,8,14,0.60) 100%);
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, rgba(58,130,255,0.35), rgba(167,139,250,0.35), transparent) 1;
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
}
html.v2 .header.scrolled {
  background: linear-gradient(180deg, rgba(6,8,14,0.94) 0%, rgba(6,8,14,0.82) 100%);
  box-shadow: 0 8px 30px rgba(0,0,0,0.35);
}
html.v2 .nav a:not(.btn) { position: relative; }
html.v2 .nav a:not(.btn)::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -5px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, #3A82FF, #A78BFA);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
html.v2 .nav a:not(.btn):hover::after { transform: scaleX(1); }
html.v2 .header-contact-email { transition: color 0.25s ease; }
/* backdrop-filter снят с toggle — каскадный blur внутри блюр-хедера дорог */
html.v2 .nav-dropdown-toggle {
  position: relative;
  padding: 9px 14px;
  border-radius: 999px;
  color: #EAF1FF;
  background:
    radial-gradient(90px circle at 22% 0%, rgba(255,255,255,0.16), transparent 62%),
    linear-gradient(135deg, rgba(58,130,255,0.13), rgba(167,139,250,0.09));
  border: 1px solid rgba(141,183,255,0.24);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.10), 0 0 20px rgba(58,130,255,0.12);
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), color 0.25s ease, background 0.32s ease, border-color 0.32s ease, box-shadow 0.32s ease;
}
html.v2 .nav-dropdown-toggle:hover,
html.v2 .nav-dropdown.open > .nav-dropdown-toggle {
  color: #fff;
  transform: translateY(-1px);
  border-color: rgba(141,183,255,0.48);
  background:
    radial-gradient(110px circle at var(--mx, 50%) var(--my, 50%), rgba(58,130,255,0.26), rgba(167,139,250,0.12) 58%, transparent 100%),
    linear-gradient(135deg, rgba(58,130,255,0.20), rgba(167,139,250,0.16));
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.14), 0 0 28px rgba(58,130,255,0.22), 0 8px 22px rgba(0,0,0,0.18);
}
html.v2 .nav-dropdown-chevron { transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1); }
html.v2 .nav-dropdown-toggle:hover .nav-dropdown-chevron { transform: translateY(1px); }
html.v2 .nav-dropdown.open .nav-dropdown-chevron { transform: rotate(180deg) translateY(-1px); }

/* ══════════════════════ UNIVERSAL: футер ═══════════════════════════════════ */
html.v2 .footer {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(12,16,28,0) 0%, rgba(12,16,28,0.55) 100%), var(--bg-raised);
}
html.v2 .footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(58,130,255,0.5), rgba(167,139,250,0.5), transparent);
}
html.v2 .footer::after {
  content: '';
  position: absolute;
  left: 8%; bottom: -140px;
  width: 540px; height: 340px;
  background: radial-gradient(ellipse, rgba(58,130,255,0.10) 0%, transparent 70%);
  pointer-events: none;
}
html.v2 .footer-inner, html.v2 .footer-bottom { position: relative; z-index: 1; }
html.v2 .footer-col a {
  display: inline-block;
  transition: color 0.25s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
html.v2 .footer-col a:hover { color: #8DB7FF; transform: translateX(4px); }
html.v2 .footer-bottom a { transition: color 0.25s ease; }
html.v2 .footer-bottom a:hover { color: #8DB7FF; }

/* ══════════════════════ UNIVERSAL: дропдаун «Услуги» ═══════════════════════ */
html.v2 .nav-dropdown-menu {
  background: rgba(13,16,26,0.90);
  backdrop-filter: saturate(180%) blur(30px);
  -webkit-backdrop-filter: saturate(180%) blur(30px);
  border: 1px solid transparent;
  border-radius: 20px;
  padding: 12px;
  box-shadow: 0 28px 80px rgba(0,0,0,0.6), inset 0 1px 1px rgba(255,255,255,0.06);
}
html.v2 .nav-dropdown-menu::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(155deg,
    rgba(58,130,255,0.55) 0%, rgba(167,139,250,0.42) 38%,
    rgba(255,255,255,0.06) 66%, rgba(58,130,255,0.30) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .nav-dropdown-item {
  position: relative;
  border-radius: 12px;
  padding-left: 18px;
  transition: background 0.28s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
html.v2 .nav-dropdown-item:not(.nav-dropdown-item-all)::before {
  content: '';
  position: absolute;
  left: 7px; top: 50%;
  transform: translateY(-50%);
  width: 3px; height: 0;
  border-radius: 3px;
  background: linear-gradient(180deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 10px rgba(58,130,255,0.55);
  transition: height 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
html.v2 .nav-dropdown-item:not(.nav-dropdown-item-all):hover {
  background: linear-gradient(90deg, rgba(58,130,255,0.15), rgba(167,139,250,0.05) 70%, transparent);
  transform: translateX(4px);
}
html.v2 .nav-dropdown-item:not(.nav-dropdown-item-all):hover::before { height: 62%; }
html.v2 .nav-dropdown-title { transition: color 0.25s ease; }
html.v2 .nav-dropdown-item:hover .nav-dropdown-title { color: #8DB7FF; }
html.v2 .nav-dropdown-desc { transition: color 0.25s ease; }

html.v2 .nav-dropdown-item-all {
  position: relative;
  overflow: hidden;
  background: linear-gradient(120deg, rgba(58,130,255,0.18), rgba(167,139,250,0.15));
  border: 1px solid rgba(58,130,255,0.32);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.08);
}
html.v2 .nav-dropdown-item-all::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 45%;
  transform: translateX(-178%) skewX(-18deg);
  background: linear-gradient(105deg, transparent, rgba(255,255,255,0.18), transparent);
  pointer-events: none;
}
html.v2 .nav-dropdown-item-all:hover {
  background: linear-gradient(120deg, rgba(58,130,255,0.26), rgba(167,139,250,0.22));
  transform: translateX(3px);
}
html.v2 .nav-dropdown-item-all:hover::after { animation: v2-dd-shine 0.85s ease; }
@keyframes v2-dd-shine { from { transform: translateX(-178%) skewX(-18deg); } to { transform: translateX(311%) skewX(-18deg); } }
html.v2 .nav-dropdown-item-all:hover .nav-dropdown-arrow { transform: translateX(4px); }

html.v2 .nav-dropdown-tag {
  background: linear-gradient(135deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 14px rgba(58,130,255,0.45);
}

/* ══════════════════════ UNIVERSAL: исключение модалки заявки ════════════════ */
/* dialog над сплошным фоном: blur бессмыслен, а v2-рамка/блик рвут кнопку сабмита */
html.v2 .svc-lead-dialog .btn {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
html.v2 .svc-lead-dialog .btn::before,
html.v2 .svc-lead-dialog .btn::after { content: none; }
html.v2 .svc-lead-dialog .btn-primary {
  border: none;
  background: linear-gradient(180deg, #4D8FFF 0%, #2563EB 100%);
  box-shadow: 0 0 20px rgba(58,130,255,0.30), 0 4px 12px rgba(58,130,255,0.20);
}
html.v2 .svc-lead-dialog .btn-primary:hover {
  background: linear-gradient(180deg, #5A9AFF 0%, #3A82FF 100%);
  box-shadow: 0 0 30px rgba(58,130,255,0.45), 0 8px 30px rgba(58,130,255,0.25);
}

/* ══════════════════════════════════════════════════════════════════════════
   СВЕТЛАЯ ТЕМА: светлый hero-ролик, тёмная типографика
   ══════════════════════════════════════════════════════════════════════════ */

html.v2[data-theme="light"] .hero {
  background: linear-gradient(180deg, #F7FBFF 0%, #EEF5FF 62%, #FFFFFF 100%);
  border-radius: 0;
}
html.v2[data-theme="light"] .hero-video { background: #F6FAFF; }
html.v2[data-theme="light"] .hero-video video {
  filter: brightness(1.06) contrast(1.02) saturate(1.10);
}
html.v2[data-theme="light"] .hero-scrim {
  background:
    radial-gradient(ellipse 72% 54% at 50% 43%, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.60) 70%, rgba(255,255,255,0.78) 100%),
    linear-gradient(180deg, rgba(247,251,255,0.46) 0%, rgba(255,255,255,0.14) 38%, rgba(255,255,255,0.56) 74%, rgba(255,255,255,0.92) 100%);
}
html.v2[data-theme="light"] .hero::after {
  background: radial-gradient(ellipse at 50% 100%, rgba(0,113,227,0.20) 0%, rgba(124,58,237,0.10) 44%, transparent 72%);
}
html.v2[data-theme="light"] .hero-title {
  color: #061322;
  text-shadow: 0 12px 34px rgba(255,255,255,0.72), 0 2px 10px rgba(0,113,227,0.10);
}
html.v2[data-theme="light"] .hero-sub { color: rgba(6,19,34,0.74); }
html.v2[data-theme="light"] .hero-badge {
  color: #005FCE;
  padding: 8px 14px;
  border-radius: 999px;
  background:
    radial-gradient(80px circle at 18% 0%, rgba(255,255,255,0.84), transparent 64%),
    rgba(255,255,255,0.42);
  border: 1px solid rgba(0,113,227,0.14);
  backdrop-filter: blur(14px) saturate(145%);
  -webkit-backdrop-filter: blur(14px) saturate(145%);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.86), 0 10px 26px rgba(20,30,60,0.08);
}
html.v2[data-theme="light"] .hero-badge-dot { box-shadow: 0 0 14px rgba(0,113,227,0.50); }
html.v2[data-theme="light"] .v2-node span { color: rgba(6,19,34,0.70); }
html.v2[data-theme="light"] .v2-node-ic {
  color: #0071E3;
  background: rgba(255,255,255,0.58);
  border-color: rgba(0,113,227,0.22);
  box-shadow: 0 0 24px rgba(0,113,227,0.14), inset 0 1px 1px rgba(255,255,255,0.74);
}
html.v2[data-theme="light"] .v2-node:nth-child(5) .v2-node-ic {
  color: #7C3AED;
  background: rgba(255,255,255,0.60);
  border-color: rgba(124,58,237,0.22);
  box-shadow: 0 0 24px rgba(124,58,237,0.14), inset 0 1px 1px rgba(255,255,255,0.74);
}
html.v2[data-theme="light"] .v2-wire {
  background: linear-gradient(90deg, rgba(0,113,227,0.18), rgba(124,58,237,0.24));
}
html.v2[data-theme="light"] .v2-wire::after {
  background: linear-gradient(90deg, transparent, #0071E3 55%, #7C3AED);
  box-shadow: 0 0 12px 2px rgba(0,113,227,0.38);
}
html.v2[data-theme="light"] .hero-actions .btn-ghost,
html.v2[data-theme="light"] .hero-actions .btn-secondary {
  background: rgba(255,255,255,0.56);
  color: #061322;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.82), 0 8px 24px rgba(20,30,60,0.10);
}
html.v2[data-theme="light"] .hero-actions .btn-ghost::before,
html.v2[data-theme="light"] .hero-actions .btn-secondary::before {
  background: linear-gradient(180deg,
    rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.04) 28%,
    rgba(0,113,227,0.12) 55%, rgba(124,58,237,0.24) 82%, rgba(0,113,227,0.34) 100%);
}

/* хедер / футер в светлой теме */
html.v2[data-theme="light"] .header {
  background: linear-gradient(180deg, rgba(255,255,255,0.90) 0%, rgba(255,255,255,0.74) 100%);
}
html.v2[data-theme="light"] .header.scrolled {
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.88) 100%);
  box-shadow: 0 8px 30px rgba(20,30,60,0.08);
}
html.v2[data-theme="light"] .nav-dropdown-toggle {
  color: #063463;
  background:
    radial-gradient(90px circle at 22% 0%, rgba(255,255,255,0.78), transparent 62%),
    linear-gradient(135deg, rgba(0,113,227,0.10), rgba(124,58,237,0.08));
  border-color: rgba(0,113,227,0.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.78), 0 8px 22px rgba(20,30,60,0.08), 0 0 20px rgba(0,113,227,0.08);
}
html.v2[data-theme="light"] .nav-dropdown-toggle:hover,
html.v2[data-theme="light"] .nav-dropdown.open > .nav-dropdown-toggle {
  color: #003E8F;
  border-color: rgba(0,113,227,0.38);
  background:
    radial-gradient(110px circle at var(--mx, 50%) var(--my, 50%), rgba(0,113,227,0.18), rgba(124,58,237,0.08) 58%, transparent 100%),
    linear-gradient(135deg, rgba(255,255,255,0.72), rgba(231,241,255,0.78));
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.90), 0 0 28px rgba(0,113,227,0.16), 0 10px 26px rgba(20,30,60,0.10);
}
html.v2[data-theme="light"] .btn-primary,
html.v2[data-theme="light"] .nav a.btn-primary,
html.v2[data-theme="light"] a.btn-primary {
  color: #fff !important;
  background:
    radial-gradient(150px circle at var(--mx, 50%) var(--my, 50%),
      rgba(255,255,255,0.28), rgba(124,58,237,0.10) 56%, transparent 100%),
    linear-gradient(135deg, rgba(0,113,227,0.90) 0%, rgba(124,58,237,0.86) 100%);
  border: 1px solid rgba(255,255,255,0.34);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.36), 0 0 24px rgba(0,113,227,0.26), 0 8px 22px rgba(20,30,60,0.12);
  text-shadow: 0 1px 2px rgba(0,0,0,0.12);
}
html.v2[data-theme="light"] .btn-primary::before,
html.v2[data-theme="light"] .nav a.btn-primary::before,
html.v2[data-theme="light"] a.btn-primary::before {
  background: linear-gradient(180deg,
    rgba(255,255,255,0.64) 0%, rgba(255,255,255,0.18) 30%,
    rgba(0,113,227,0.12) 58%, rgba(124,58,237,0.30) 100%);
}
html.v2[data-theme="light"] .btn-primary:hover,
html.v2[data-theme="light"] .nav a.btn-primary:hover,
html.v2[data-theme="light"] a.btn-primary:hover {
  background:
    radial-gradient(160px circle at var(--mx, 50%) var(--my, 50%),
      rgba(255,255,255,0.42), rgba(124,58,237,0.16) 56%, transparent 100%),
    linear-gradient(135deg, rgba(0,125,255,0.90) 0%, rgba(139,82,255,0.86) 100%);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.42), 0 0 34px rgba(0,113,227,0.32), 0 12px 30px rgba(20,30,60,0.16);
}
html.v2[data-theme="light"] .footer {
  background: linear-gradient(180deg, rgba(0,113,227,0) 0%, rgba(0,113,227,0.035) 100%), var(--bg-raised);
}
html.v2[data-theme="light"] .footer::after { background: radial-gradient(ellipse, rgba(0,113,227,0.08) 0%, transparent 70%); }
html.v2[data-theme="light"] .footer-col a:hover { color: #0071E3; }
html.v2[data-theme="light"] .footer-bottom a:hover { color: #0071E3; }

html.v2[data-theme="light"] .stat-item {
  background: rgba(255,255,255,0.78);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 10px 30px rgba(20,30,60,0.10);
}
html.v2[data-theme="light"] .stat-item::before {
  background: linear-gradient(180deg,
    rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.04) 30%,
    rgba(0,113,227,0.14) 60%, rgba(124,58,237,0.30) 100%);
}
html.v2[data-theme="light"] .stat-item:hover {
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.8), 0 0 30px rgba(0,113,227,0.14), 0 18px 44px rgba(20,30,60,0.14);
}
html.v2[data-theme="light"] .stat-number {
  background: linear-gradient(135deg, #0071E3 0%, #7C3AED 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

html.v2[data-theme="light"] .btn-secondary,
html.v2[data-theme="light"] .btn-ghost {
  background: rgba(0,0,0,0.028);
  color: var(--text);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 6px 18px rgba(20,30,60,0.06);
}
html.v2[data-theme="light"] .btn-secondary::before,
html.v2[data-theme="light"] .btn-ghost::before {
  background: linear-gradient(180deg,
    rgba(0,0,0,0.16) 0%, rgba(0,0,0,0.05) 28%,
    rgba(0,113,227,0.12) 55%, rgba(124,58,237,0.30) 82%, rgba(0,113,227,0.40) 100%);
}
html.v2[data-theme="light"] .btn-secondary:hover,
html.v2[data-theme="light"] .btn-ghost:hover {
  background:
    radial-gradient(150px circle at var(--mx, 50%) var(--my, 50%),
      rgba(0,113,227,0.20), rgba(124,58,237,0.10) 55%, transparent 100%),
    rgba(0,0,0,0.028);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.8), 0 0 26px rgba(0,113,227,0.16), 0 10px 26px rgba(20,30,60,0.10);
}

html.v2[data-theme="light"] .guarantees-bar {
  background: rgba(255,255,255,0.7);
  border-color: rgba(0,0,0,0.08);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .contact-form {
  background: rgba(255,255,255,0.78);
  border-color: rgba(0,0,0,0.08);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 24px 60px rgba(20,30,60,0.10);
}
html.v2[data-theme="light"] .form-group input:focus,
html.v2[data-theme="light"] .form-group select:focus {
  border-color: rgba(0,113,227,0.6);
  box-shadow: 0 0 0 3px rgba(0,113,227,0.14), 0 0 22px rgba(0,113,227,0.12);
}
html.v2[data-theme="light"] .svc-step-num {
  background: rgba(0,113,227,0.08);
  border-color: rgba(0,113,227,0.28);
  color: #0071E3;
  box-shadow: 0 0 18px rgba(0,113,227,0.14), inset 0 1px 1px rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .portfolio-card:hover,
html.v2[data-theme="light"] .pricing-card:hover,
html.v2[data-theme="light"] .service-item:hover,
html.v2[data-theme="light"] .marketing-card:hover,
html.v2[data-theme="light"] .svc-inc-card:hover,
html.v2[data-theme="light"] .support-card:hover,
html.v2[data-theme="light"] .seo-metric-card:hover {
  border-color: rgba(0,113,227,0.30);
  box-shadow: 0 0 0 1px rgba(0,113,227,0.08), 0 0 30px rgba(0,113,227,0.10), 0 18px 44px rgba(20,30,60,0.12);
}

/* бегущая строка: белая «бумага», тёмные «чернила» */
html.v2[data-theme="light"] .v2-marquee-blur { background-color: #fff; }
html.v2[data-theme="light"] .v2-marquee-blur .v2-marquee-track { color: #000; }
html.v2[data-theme="light"] .v2-marquee-clear .v2-marquee-track { color: #1D1D1F; }
html.v2[data-theme="light"] .v2-marquee a:hover { color: #0071E3; text-shadow: 0 0 22px rgba(0,113,227,0.45); }

html.v2[data-theme="light"] .v2-glitch-h2::before {
  color: #1D1D1F;
  text-shadow: 2px 0 rgba(0,113,227,0.8), -2px 0 rgba(124,58,237,0.8);
}

html.v2[data-theme="light"] .stat-item { --v2-shadow: rgba(20,30,60,0.1); }

/* светлая тема для меню */
html.v2[data-theme="light"] .nav-dropdown-menu {
  background: rgba(255,255,255,0.96);
  box-shadow: 0 26px 64px rgba(20,30,60,0.16), inset 0 1px 1px rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .nav-dropdown-menu::before {
  background: linear-gradient(155deg,
    rgba(0,113,227,0.42) 0%, rgba(124,58,237,0.32) 38%,
    rgba(0,0,0,0.05) 66%, rgba(0,113,227,0.26) 100%);
}
html.v2[data-theme="light"] .nav-dropdown-item:not(.nav-dropdown-item-all):hover {
  background: linear-gradient(90deg, rgba(0,113,227,0.10), rgba(124,58,237,0.04) 70%, transparent);
}
html.v2[data-theme="light"] .nav-dropdown-item:hover .nav-dropdown-title { color: #0071E3; }
html.v2[data-theme="light"] .nav-dropdown-item-all {
  background: linear-gradient(120deg, rgba(0,113,227,0.12), rgba(124,58,237,0.10));
  border-color: rgba(0,113,227,0.28);
}
html.v2[data-theme="light"] .nav-dropdown-item-all:hover {
  background: linear-gradient(120deg, rgba(0,113,227,0.18), rgba(124,58,237,0.15));
}

/* ══════════════════════ ДЕГРАДАЦИЯ: html.v2-lite (слабые ПК) ════════════════ */
/* снимаем всё дорогое: зерно, код-фон, contrast-marquee, все backdrop-filter,
   непрерывные анимации в покое. Включается инлайн-эвристикой + FPS-пробником. */
html.v2-lite .v2-grain,
html.v2-lite .v2-code,
html.v2-lite .v2-marquee-blur { display: none; }

html.v2-lite .header,
html.v2-lite .nav-dropdown-menu,
html.v2-lite .v2-term,
html.v2-lite .stat-item,
html.v2-lite .trust-item,
html.v2-lite .guarantees-bar,
html.v2-lite .contact-form,
html.v2-lite .hero-badge {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.v2-lite .header { background: linear-gradient(180deg, rgba(6,8,14,0.96) 0%, rgba(6,8,14,0.90) 100%); }
html.v2-lite[data-theme="light"] .header { background: linear-gradient(180deg, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.92) 100%); }
html.v2-lite .nav-dropdown-menu { background: rgba(13,16,26,0.98); }
html.v2-lite[data-theme="light"] .nav-dropdown-menu { background: rgba(255,255,255,0.99); }
html.v2-lite .v2-term { background: rgba(8,11,19,0.96); }
html.v2-lite[data-theme="light"] .v2-term { background: rgba(31,39,55,0.94); }

html.v2-lite .section-divider,
html.v2-lite .hero-title .gradient-text,
html.v2-lite .pricing-popular::after,
html.v2-lite .v2-node-ic,
html.v2-lite .svc-step-num,
html.v2-lite .seo-metrics-stack .seo-metric-card,
html.v2-lite .pricing::after,
html.v2-lite #seo::after,
html.v2-lite .hero-actions .btn-primary::after,
html.v2-lite .hero::after,
html.v2-lite .v2-wire::after,
html.v2-lite .v2-marquee-track,
html.v2-lite .v2-glitch-h2::before,
html.v2-lite .v2-glitch-on,
html.v2-lite .v2-glitch-on::before,
html.v2-lite .v2-glitch-on::after,
html.v2-lite .v2-term-cursor,
html.v2-lite .v2-term-progress span { animation: none !important; }
html.v2-lite .v2-term-progress span { transform: scaleX(1); opacity: 0.6; }
html.v2-lite .seo-metrics-stack .seo-metric-card { transform: none; }

/* ══════════════════════ reduced-motion: гасим всё живое ═════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .v2-wire::after, .v2-node-ic, html.v2 .svc-step-num,
  html.v2 .hero-actions .btn-primary::after,
  html.v2 .hero-title .gradient-text, html.v2 .pricing-popular::after, html.v2 .hero::after,
  html.v2 .section-divider, html.v2 .seo-metrics-stack .seo-metric-card,
  html.v2 .pricing::after, html.v2 #seo::after,
  .v2-code-col, .v2-term-cursor, .v2-term-progress span { animation: none; }
  .v2-term-progress span { transform: scaleX(1); opacity: 0.6; }
  .v2-marquee-track, .v2-grain, html.v2 .v2-glitch-h2::before,
  html.v2 .v2-glitch-on::before, html.v2 .v2-glitch-on::after, html.v2 .v2-glitch-on { animation: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   КОНТЕНТ СТРАНИЦ ХЕДЕРА/ФУТЕРА — единый язык стекла/свечения «Сигнала».
   Плоские базовые компоненты (каталог, тарифы, шаги, стат-бары, плашки, блог,
   команда, сравнения) получают ту же стеклянную подложку + сигнальную рамку,
   что и каркас. БЕЗ backdrop-filter (в каталоге ~64 карточки) — вид держат
   rgba-фон + градиентное кольцо ::before(mask-exclude) + inset-блик + тень.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── стеклянная подложка нейтральных карточек ── */
html.v2 .seo-segment-card, html.v2 .pain-card, html.v2 .methodology-item,
html.v2 .geo-platform-card, html.v2 .team-card, html.v2 .team-card-mini,
html.v2 .how-we-work-card, html.v2 .blog-card, html.v2 .page-content .highlight {
  position: relative;
  /* в покое: верхний sheen + чуть светлее навигационной заливки → кромка читается
     на чёрном и без hover (плоский rgba(19,23,36) сливался с фоном) */
  background:
    linear-gradient(180deg, rgba(255,255,255,0.045), transparent 30%),
    linear-gradient(158deg, rgba(30,37,58,0.6) 0%, rgba(21,25,40,0.62) 70%);
  border-color: transparent;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.08), 0 12px 34px rgba(0,0,0,0.32);
}
/* ── сигнальное градиентное кольцо-рамка (общий приём .stat-item::before) ── */
html.v2 .seo-segment-card::before, html.v2 .pain-card::before,
html.v2 .methodology-item::before, html.v2 .geo-platform-card::before,
html.v2 .team-card::before, html.v2 .team-card-mini::before,
html.v2 .how-we-work-card::before, html.v2 .blog-card::before,
html.v2 .page-content .highlight::before, html.v2 .vs-card::before,
html.v2 .cross-sell::before, html.v2 .media-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.1px;
  background: linear-gradient(170deg,
    rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.05) 28%,
    rgba(58,130,255,0.10) 60%, rgba(167,139,250,0.26) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* ── VS-карточки (сравнение): «мы» — акцентное свечение, «они» — приглушены ── */
html.v2 .vs-card { position: relative; border-color: transparent; }
html.v2 .vs-card.them { background: rgba(19,23,36,0.45); }
html.v2 .vs-card.us {
  background: linear-gradient(135deg, rgba(58,130,255,0.10), rgba(167,139,250,0.14));
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06), 0 0 40px rgba(124,92,255,0.14), 0 14px 40px rgba(0,0,0,0.30);
}
html.v2 .vs-card.us::before {
  background: linear-gradient(160deg, rgba(167,139,250,0.55), rgba(58,130,255,0.30) 55%, rgba(167,139,250,0.40));
}

/* ── cross-sell: акцентная стеклянная плашка ── */
html.v2 .cross-sell {
  position: relative;
  background: linear-gradient(135deg, rgba(58,130,255,0.10), rgba(167,139,250,0.12));
  border-color: transparent;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06), 0 0 30px rgba(58,130,255,0.10), 0 14px 40px rgba(0,0,0,0.30);
}

/* ── media-hero: сигнальная рамка + мягкое ambient-свечение (картинку не трогаем) ── */
html.v2 .media-hero {
  position: relative;
  border-color: transparent;
  box-shadow: 0 24px 60px rgba(0,0,0,0.40), 0 0 46px rgba(58,130,255,0.10);
}

/* ── honest-block: светящаяся градиентная кромка вместо плоской ── */
html.v2 .honest-block {
  position: relative;
  /* «нарисованный» frost: над чёрным aurora не достаёт → присутствие держит
     верхний sheen + цветной тинт (плоский rgba(19,23,36) сливался с фоном) */
  background:
    linear-gradient(180deg, rgba(255,255,255,0.055), transparent 24%),
    linear-gradient(150deg, rgba(48,60,96,0.5) 0%, rgba(28,34,56,0.56) 62%);
  border-left-color: transparent;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06), 0 12px 34px rgba(0,0,0,0.30);
}
html.v2 .honest-block::before {
  content: '';
  position: absolute;
  left: 0; top: 12px; bottom: 12px;
  width: 4px;
  border-radius: 4px;
  background: linear-gradient(180deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 16px rgba(58,130,255,0.40);
  pointer-events: none;
}

/* ── ai-stack-block: усиливаем акцент, ::before занят базовым свечением ── */
html.v2 .ai-stack-block {
  border-color: rgba(167,139,250,0.40);
  box-shadow: 0 0 40px rgba(124,92,255,0.12), inset 0 1px 1px rgba(255,255,255,0.05);
}

/* ── тарифы SEO: стекло + акценты (::before занят бейджами popular/ai-pro) ── */
html.v2 .seo-price-card {
  position: relative;
  background: rgba(19,23,36,0.58);
  border-color: rgba(141,183,255,0.18);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.06), 0 12px 34px rgba(0,0,0,0.30);
}
html.v2 .seo-price-card.popular {
  border-color: rgba(58,130,255,0.55);
  box-shadow: 0 0 0 1px rgba(58,130,255,0.25), inset 0 1px 1px rgba(255,255,255,0.08), 0 16px 44px rgba(0,0,0,0.34);
}
html.v2 .seo-price-card.popular::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 46px rgba(58,130,255,0.18);
  opacity: 0;
  animation: v2-breath 5s ease-in-out infinite;
}
html.v2 .seo-price-card.ai-pro {
  background: linear-gradient(160deg, rgba(124,92,255,0.12), rgba(19,23,36,0.60) 62%);
  border-color: rgba(167,139,250,0.50);
  box-shadow: 0 0 0 1px rgba(167,139,250,0.22), inset 0 1px 1px rgba(255,255,255,0.08), 0 16px 44px rgba(0,0,0,0.34);
}
html.v2 .seo-price-amount {
  background: linear-gradient(135deg, #8DB7FF 0%, #C7B7FF 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ── номера-узлы шагов: светящийся пульс (клон .svc-step-num) ── */
html.v2 .client-step-num, html.v2 .methodology-num {
  box-shadow: 0 0 20px rgba(58,130,255,0.20), inset 0 1px 1px rgba(255,255,255,0.10);
  animation: v2-node-pulse 2.8s ease-in-out infinite;
}
html.v2 .methodology-num { box-shadow: 0 0 24px rgba(124,92,255,0.28), inset 0 1px 1px rgba(255,255,255,0.14); }
html.v2 .methodology-list .methodology-item:nth-child(even) .methodology-num { animation-delay: 0.9s; }

/* ── иконки внутри карточек оживают на hover ── */
html.v2 .geo-platform-icon, html.v2 .step-icon, html.v2 .pain-card-icon,
html.v2 .team-card-mini h3 svg, html.v2 .founder-photo {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.6s ease;
}
html.v2 .geo-platform-card:hover .geo-platform-icon { transform: translateY(-3px) scale(1.08); box-shadow: 0 0 26px rgba(124,92,255,0.34); }
html.v2 .steps-equal .step:hover .step-icon { transform: translateY(-3px) scale(1.08); box-shadow: 0 0 24px rgba(58,130,255,0.30); }
html.v2 .pain-card:hover .pain-card-icon { transform: scale(1.12); }
html.v2 .team-card-mini:hover h3 svg { transform: scale(1.14); }
html.v2 .founder-photo:hover {
  box-shadow: 0 0 0 1px rgba(58,130,255,0.30), 0 30px 70px rgba(0,0,0,0.40), 0 0 50px rgba(58,130,255,0.18);
}

/* ── каталог услуг: стеклянный поиск + чипы ── */
html.v2 .catalog-search-input {
  background: rgba(19,23,36,0.60);
  border-color: rgba(141,183,255,0.20);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05);
  transition: border-color 0.35s ease, box-shadow 0.45s ease, background 0.35s ease;
}
html.v2 .catalog-search-input:focus {
  border-color: rgba(58,130,255,0.60);
  box-shadow: 0 0 0 3px rgba(58,130,255,0.14), 0 0 26px rgba(58,130,255,0.16);
}
html.v2 .catalog-search-icon { transition: color 0.3s ease; }
html.v2 .catalog-search:focus-within .catalog-search-icon { color: #8DB7FF; }
html.v2 .cat-chip {
  background: rgba(19,23,36,0.50);
  border-color: rgba(141,183,255,0.18);
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.4s ease, color 0.25s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
html.v2 .cat-chip:not(.active):hover {
  border-color: rgba(58,130,255,0.40);
  background: rgba(58,130,255,0.10);
  box-shadow: 0 0 18px rgba(58,130,255,0.14);
  transform: translateY(-1px);
}
html.v2 .cat-chip.active {
  border-color: transparent;
  box-shadow: 0 0 22px rgba(58,130,255,0.30), inset 0 1px 1px rgba(255,255,255,0.14);
}

/* ── SEO: кластер-навигация (пилюли) ── */
html.v2 .seo-cluster-nav {
  position: relative;
  background: rgba(19,23,36,0.60);
  border-color: transparent;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05), 0 10px 30px rgba(0,0,0,0.28);
}
html.v2 .seo-cluster-nav::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(120deg, rgba(58,130,255,0.40), rgba(255,255,255,0.05) 50%, rgba(167,139,250,0.35));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .seo-cluster-nav a { position: relative; transition: background 0.3s ease, color 0.25s ease, box-shadow 0.4s ease; }
html.v2 .seo-cluster-nav a:not(.active):hover { background: rgba(58,130,255,0.12); box-shadow: 0 0 16px rgba(58,130,255,0.14); }
html.v2 .seo-cluster-nav a.active { box-shadow: 0 0 22px rgba(58,130,255,0.30); }

/* ── SEO: стат-бар (стеклянные ячейки + градиентные числа) ── */
html.v2 .seo-stat-bar {
  position: relative;
  background: rgba(19,23,36,0.55);
  border-color: transparent;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05), 0 14px 40px rgba(0,0,0,0.30);
}
html.v2 .seo-stat-bar::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(170deg, rgba(255,255,255,0.20), rgba(255,255,255,0.04) 30%, rgba(58,130,255,0.10) 60%, rgba(167,139,250,0.24));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
html.v2 .seo-stat-cell-num {
  background: linear-gradient(135deg, #8DB7FF 0%, #C7B7FF 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ── блог: светящийся тег + подсветка кольца на hover ── */
html.v2 .blog-card-tag {
  align-self: flex-start;  /* не растягиваться на всю ширину flex-column карточки */
  background: linear-gradient(135deg, rgba(58,130,255,0.20), rgba(167,139,250,0.16));
  color: #A9C7FF;
  box-shadow: 0 0 16px rgba(58,130,255,0.16);
  transition: box-shadow 0.4s ease;
}
html.v2 .blog-card:hover .blog-card-tag { box-shadow: 0 0 22px rgba(58,130,255,0.30); }

/* ── сквозное: шиммер градиентных заголовков (h1–h3) оживает везде ── */
html.v2 :is(h1, h2, h3) .gradient-text {
  background-size: 220% 220%;
  animation: v2-grad 6s ease-in-out infinite alternate;
}

/* ── голые секц-заголовки (clients/blog) → светящаяся черта (класс от JS) ── */
html.v2 .v2-h-accent { position: relative; padding-bottom: 16px; }
html.v2 .v2-h-accent::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 60px; height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 14px rgba(58,130,255,0.50);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}
html.v2 .v2-h-accent.visible::after,
html.v2 .v2-h-accent:not(.reveal)::after { transform: scaleX(1); }

/* ══════════════════════ МЕНЮ «УСЛУГИ»: иконки + богатый hover ═══════════════ */
html.v2 .nav-dropdown-menu { min-width: 316px; }
html.v2 .nav-dropdown-item {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  align-items: center;
  padding-left: 12px;
}
/* вертикальный маркер заменён иконкой */
html.v2 .nav-dropdown-item:not(.nav-dropdown-item-all)::before { content: none; }
html.v2 .nav-dropdown-item .nav-dropdown-title,
html.v2 .nav-dropdown-item .nav-dropdown-desc { grid-column: 2; }
html.v2 .m-sub-item {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  align-items: center;
  padding-left: 14px;
}
html.v2 .m-sub-item .m-sub-title,
html.v2 .m-sub-item .m-sub-desc { grid-column: 2; }
html.v2 .v2-dd-icon {
  grid-row: 1 / 3;
  align-self: center;
  width: 34px; height: 34px;
  flex: none;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8DB7FF;
  background: rgba(58,130,255,0.10);
  border: 1px solid rgba(58,130,255,0.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.08);
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}
html.v2 .v2-dd-icon svg { width: 17px; height: 17px; }
html.v2 .nav-dropdown-item:hover .v2-dd-icon,
html.v2 .m-sub-item:hover .v2-dd-icon {
  transform: translateY(-1px) scale(1.06);
  background: linear-gradient(135deg, rgba(58,130,255,0.28), rgba(167,139,250,0.20));
  color: #EAF1FF;
  box-shadow: 0 0 18px rgba(58,130,255,0.32), inset 0 1px 1px rgba(255,255,255,0.14);
}
/* «Все услуги» — иконка на фиолетовом акценте */
html.v2 .nav-dropdown-item-all .v2-dd-icon,
html.v2 .m-sub-item-all .v2-dd-icon {
  color: #C7B7FF;
  background: rgba(167,139,250,0.14);
  border-color: rgba(167,139,250,0.30);
}

/* ── мобильное меню: сигнальная кромка панели + акценты пунктов ── */
html.v2 .m-menu-panel {
  border-left: 1px solid transparent;
  border-image: linear-gradient(180deg, rgba(58,130,255,0.50), rgba(167,139,250,0.40)) 1;
}
html.v2 .m-item { border-radius: 12px; transition: background 0.28s ease, color 0.25s ease; }
html.v2 .m-item:hover, html.v2 .m-item:active {
  background: linear-gradient(90deg, rgba(58,130,255,0.14), rgba(167,139,250,0.05) 70%, transparent);
  color: #8DB7FF;
}
html.v2 .m-sub-item { transition: background 0.28s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); }
html.v2 .m-sub-item:hover {
  background: linear-gradient(90deg, rgba(58,130,255,0.14), transparent 80%);
  transform: translateX(3px);
}
html.v2 .m-cta {
  background: linear-gradient(135deg, rgba(58,130,255,0.96), rgba(124,92,255,0.96));
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.30), 0 0 26px rgba(58,130,255,0.30), 0 8px 24px rgba(124,58,237,0.30);
}
html.v2 .m-cta:hover {
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.35), 0 0 40px rgba(58,130,255,0.42), 0 12px 32px rgba(124,58,237,0.36);
}

/* ══════════════════════════════════════════════════════════════════════════
   КОНТЕНТ — СВЕТЛАЯ ТЕМА: белое стекло, синие/фиолетовые акценты
   ══════════════════════════════════════════════════════════════════════════ */
html.v2[data-theme="light"] .seo-segment-card,
html.v2[data-theme="light"] .pain-card,
html.v2[data-theme="light"] .methodology-item,
html.v2[data-theme="light"] .geo-platform-card,
html.v2[data-theme="light"] .team-card,
html.v2[data-theme="light"] .team-card-mini,
html.v2[data-theme="light"] .how-we-work-card,
html.v2[data-theme="light"] .blog-card,
html.v2[data-theme="light"] .page-content .highlight,
html.v2[data-theme="light"] .seo-price-card,
html.v2[data-theme="light"] .honest-block,
html.v2[data-theme="light"] .vs-card.them {
  background: rgba(255,255,255,0.74);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 10px 30px rgba(20,30,60,0.08);
}
html.v2[data-theme="light"] .seo-segment-card::before,
html.v2[data-theme="light"] .pain-card::before,
html.v2[data-theme="light"] .methodology-item::before,
html.v2[data-theme="light"] .geo-platform-card::before,
html.v2[data-theme="light"] .team-card::before,
html.v2[data-theme="light"] .team-card-mini::before,
html.v2[data-theme="light"] .how-we-work-card::before,
html.v2[data-theme="light"] .blog-card::before,
html.v2[data-theme="light"] .page-content .highlight::before,
html.v2[data-theme="light"] .vs-card::before,
html.v2[data-theme="light"] .cross-sell::before,
html.v2[data-theme="light"] .media-hero::before,
html.v2[data-theme="light"] .seo-cluster-nav::before,
html.v2[data-theme="light"] .seo-stat-bar::before {
  background: linear-gradient(170deg,
    rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.04) 30%,
    rgba(0,113,227,0.14) 60%, rgba(124,58,237,0.30) 100%);
}
html.v2[data-theme="light"] .vs-card.us {
  background: linear-gradient(135deg, rgba(0,113,227,0.08), rgba(124,58,237,0.10));
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 0 34px rgba(124,58,237,0.10), 0 12px 34px rgba(20,30,60,0.10);
}
html.v2[data-theme="light"] .vs-card.us::before {
  background: linear-gradient(160deg, rgba(124,58,237,0.40), rgba(0,113,227,0.22) 55%, rgba(124,58,237,0.30));
}
html.v2[data-theme="light"] .cross-sell {
  background: linear-gradient(135deg, rgba(0,113,227,0.07), rgba(124,58,237,0.09));
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 0 26px rgba(0,113,227,0.08), 0 12px 34px rgba(20,30,60,0.08);
}
html.v2[data-theme="light"] .media-hero { box-shadow: 0 24px 60px rgba(20,30,60,0.20), 0 0 40px rgba(0,113,227,0.08); }
html.v2[data-theme="light"] .honest-block::before {
  background: linear-gradient(180deg, #0071E3, #7C3AED);
  box-shadow: 0 0 14px rgba(0,113,227,0.30);
}
html.v2[data-theme="light"] .ai-stack-block {
  border-color: rgba(124,58,237,0.28);
  box-shadow: 0 0 30px rgba(124,58,237,0.08), inset 0 1px 1px rgba(255,255,255,0.6);
}
html.v2[data-theme="light"] .seo-price-card { border-color: rgba(0,113,227,0.16); }
html.v2[data-theme="light"] .seo-price-card.popular {
  border-color: rgba(0,113,227,0.45);
  box-shadow: 0 0 0 1px rgba(0,113,227,0.22), inset 0 1px 1px rgba(255,255,255,0.7), 0 16px 44px rgba(20,30,60,0.12);
}
html.v2[data-theme="light"] .seo-price-card.popular::after { box-shadow: 0 0 46px rgba(0,113,227,0.16); }
html.v2[data-theme="light"] .seo-price-card.ai-pro {
  background: linear-gradient(160deg, rgba(124,58,237,0.10), rgba(255,255,255,0.78) 62%);
  border-color: rgba(124,58,237,0.40);
  box-shadow: 0 0 0 1px rgba(124,58,237,0.18), inset 0 1px 1px rgba(255,255,255,0.7), 0 16px 44px rgba(20,30,60,0.12);
}
html.v2[data-theme="light"] .seo-price-amount,
html.v2[data-theme="light"] .seo-stat-cell-num {
  background: linear-gradient(135deg, #0071E3 0%, #7C3AED 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
}
html.v2[data-theme="light"] .client-step-num, html.v2[data-theme="light"] .methodology-num {
  box-shadow: 0 0 18px rgba(0,113,227,0.16), inset 0 1px 1px rgba(255,255,255,0.6);
}
html.v2[data-theme="light"] .methodology-num { box-shadow: 0 0 22px rgba(124,58,237,0.22), inset 0 1px 1px rgba(255,255,255,0.7); }
html.v2[data-theme="light"] .catalog-search-input {
  background: rgba(255,255,255,0.82);
  border-color: rgba(0,113,227,0.20);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .catalog-search-input:focus {
  border-color: rgba(0,113,227,0.55);
  box-shadow: 0 0 0 3px rgba(0,113,227,0.14), 0 0 24px rgba(0,113,227,0.14);
}
html.v2[data-theme="light"] .catalog-search:focus-within .catalog-search-icon { color: #0071E3; }
html.v2[data-theme="light"] .cat-chip {
  background: rgba(255,255,255,0.7);
  border-color: rgba(0,113,227,0.16);
}
html.v2[data-theme="light"] .cat-chip:not(.active):hover {
  border-color: rgba(0,113,227,0.38);
  background: rgba(0,113,227,0.08);
  box-shadow: 0 0 16px rgba(0,113,227,0.12);
}
html.v2[data-theme="light"] .cat-chip.active {
  /* light .cat-chip даёт белый фон (спец. выше базового градиента) → белый текст
     активного чипа сливался. Возвращаем акцентный градиент под белый текст. */
  background: linear-gradient(135deg, #0071E3, #7C3AED);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 0 22px rgba(0,113,227,0.26), inset 0 1px 1px rgba(255,255,255,0.4);
}
html.v2[data-theme="light"] .seo-cluster-nav {
  background: rgba(255,255,255,0.8);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 10px 30px rgba(20,30,60,0.08);
}
html.v2[data-theme="light"] .seo-cluster-nav a:not(.active):hover { background: rgba(0,113,227,0.10); box-shadow: 0 0 14px rgba(0,113,227,0.12); }
html.v2[data-theme="light"] .seo-cluster-nav a.active { box-shadow: 0 0 20px rgba(0,113,227,0.26); }
html.v2[data-theme="light"] .seo-stat-bar {
  background: rgba(255,255,255,0.74);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 14px 40px rgba(20,30,60,0.10);
}
html.v2[data-theme="light"] .blog-card-tag {
  background: linear-gradient(135deg, rgba(0,113,227,0.14), rgba(124,58,237,0.12));
  color: #0060C4;
  box-shadow: 0 0 14px rgba(0,113,227,0.12);
}
html.v2[data-theme="light"] .v2-h-accent::after { box-shadow: 0 0 14px rgba(0,113,227,0.40); }
html.v2[data-theme="light"] .v2-dd-icon {
  color: #0071E3;
  background: rgba(0,113,227,0.10);
  border-color: rgba(0,113,227,0.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.6);
}
html.v2[data-theme="light"] .nav-dropdown-item:hover .v2-dd-icon,
html.v2[data-theme="light"] .m-sub-item:hover .v2-dd-icon {
  background: linear-gradient(135deg, rgba(0,113,227,0.20), rgba(124,58,237,0.16));
  color: #003E8F;
  box-shadow: 0 0 16px rgba(0,113,227,0.24), inset 0 1px 1px rgba(255,255,255,0.6);
}
html.v2[data-theme="light"] .nav-dropdown-item-all .v2-dd-icon,
html.v2[data-theme="light"] .m-sub-item-all .v2-dd-icon {
  color: #7C3AED;
  background: rgba(124,58,237,0.10);
  border-color: rgba(124,58,237,0.24);
}
html.v2[data-theme="light"] .m-item:hover, html.v2[data-theme="light"] .m-item:active {
  background: linear-gradient(90deg, rgba(0,113,227,0.10), rgba(124,58,237,0.04) 70%, transparent);
  color: #0071E3;
}
html.v2[data-theme="light"] .m-sub-item:hover { background: linear-gradient(90deg, rgba(0,113,227,0.10), transparent 80%); }

/* ══════════════════════ КОНТЕНТ — ДЕГРАДАЦИЯ v2-lite ═══════════════════════ */
html.v2-lite .m-menu-panel {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: rgba(15,15,18,0.99);
}
html.v2-lite .seo-price-card.popular::after,
html.v2-lite .client-step-num,
html.v2-lite .methodology-num,
html.v2-lite :is(h1, h2, h3) .gradient-text { animation: none !important; }

/* ══════════════════════ КОНТЕНТ — reduced-motion ═══════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  html.v2 .seo-price-card.popular::after,
  html.v2 .client-step-num,
  html.v2 .methodology-num,
  html.v2 :is(h1, h2, h3) .gradient-text { animation: none; }
}

/* ════════════════════════════════════════════════════════════════════════════
   ПРЕМИУМ LIQUID GLASS — смелый слой для внутренних страниц (не главная).
   Гейт: body.v2-inner (JS ставит только там, где есть main.page-content).
   Фон сайта сплошной чёрный → backdrop-filter «читается» лишь над aurora; всё
   остальное держат яркое иридесцентное кольцо + свечение + specular, без блюра.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Aurora: дрейфующие пятна за hero, глубина как в референсах ──────────── */
html.v2 body.v2-inner .page-content { position: relative; z-index: 0; }
html.v2 .v2-aurora {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: min(1150px, 135vh);
  z-index: -1;                       /* за контентом, над чёрным фоном body */
  overflow: hidden;                  /* клип пятен → без горизонт. скролла */
  pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 66%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 66%, transparent 100%);
}
html.v2 body.page-service .v2-aurora { opacity: 0.6; }  /* svc-hero-glow уже светит по центру */
html.v2 .v2-aurora i {
  position: absolute;
  display: block;
  border-radius: 50%;
  filter: blur(52px);
  will-change: transform;
}
html.v2 .v2-aurora .a1 {
  top: -140px; left: -90px;
  width: 640px; height: 640px;
  background: radial-gradient(circle, rgba(58,130,255,0.46), transparent 66%);
  animation: v2-aurora-a 21s ease-in-out infinite alternate;
}
html.v2 .v2-aurora .a2 {
  top: -70px; right: -110px;
  width: 580px; height: 580px;
  background: radial-gradient(circle, rgba(167,139,250,0.44), transparent 66%);
  animation: v2-aurora-b 25s ease-in-out infinite alternate;
}
html.v2 .v2-aurora .a3 {
  top: 180px; left: 40%;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(72,190,255,0.30), transparent 68%);
  animation: v2-aurora-c 28s ease-in-out infinite alternate;
}
@keyframes v2-aurora-a { from { transform: translate(0,0); } to { transform: translate(90px, 64px); } }
@keyframes v2-aurora-b { from { transform: translate(0,0); } to { transform: translate(-84px, 52px); } }
@keyframes v2-aurora-c { from { transform: translate(0,0) scale(1); } to { transform: translate(46px,-44px) scale(1.14); } }

/* ── 2. Дисплейная типографика hero: свечение-ореол + эйброу-пилюли ─────────── */
html.v2 body.v2-inner .page-content h1 { letter-spacing: -0.03em; }
/* контраст: приглушённый tertiary-текст (--text-3 0.44 ≈ 4.1:1 на чёрном) не
   дотягивал до AA у мелких подписей → поднимаем ТОЛЬКО в тёмной теме (в светлой
   --text-3 другого цвета). ~5.2:1, всё ещё явно тише --text-2. */
html.v2:not([data-theme="light"]) body.v2-inner { --text-3: rgba(255,255,255,0.56); }
html.v2 body.v2-inner .page-content h1 .gradient-text {
  filter: drop-shadow(0 0 24px rgba(90,150,255,0.45)) drop-shadow(0 0 44px rgba(167,139,250,0.30));
}
/* эйброу-лейбл секций → светящаяся стеклянная пилюля (rgba-стекло, без блюра) */
html.v2 body.v2-inner .section-label,
html.v2 body.v2-inner .svc-eyebrow {
  padding: 7px 15px 7px 13px;
  border-radius: 999px;
  background:
    radial-gradient(60px circle at 20% 0%, rgba(255,255,255,0.10), transparent 60%),
    rgba(58,130,255,0.09);
  border: 1px solid rgba(141,183,255,0.26);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.10), 0 0 22px rgba(58,130,255,0.14);
}
html.v2 body.v2-inner .section-label::before {
  width: 7px; height: 7px;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(58,130,255,0.75);
}
/* svc-eyebrow: базовые дефис-бары «— … —» лишние внутри пилюли → одна светящаяся точка */
html.v2 body.v2-inner .svc-eyebrow::before {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: linear-gradient(135deg, #3A82FF, #A78BFA);
  box-shadow: 0 0 10px rgba(58,130,255,0.75);
  flex: none;
}
html.v2 body.v2-inner .svc-eyebrow::after { display: none; }

/* ── 3. Реальное матовое стекло над aurora (точечно, seo-stat-bar в hero) ───── */
html.v2 .seo-stat-bar {
  backdrop-filter: blur(18px) saturate(155%);
  -webkit-backdrop-filter: blur(18px) saturate(155%);
  background: rgba(15,19,32,0.46);   /* прозрачнее → видно размытую aurora */
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), inset 0 1px 1px rgba(255,255,255,0.05), 0 18px 50px rgba(0,0,0,0.34);
}

/* ── 3б. Смелые панели: ярче кромка, крупнее свечение, верхний specular ─────── */
html.v2 .media-hero,
html.v2 .cross-sell,
html.v2 .honest-block,
html.v2 .ai-stack-block {
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 60px rgba(58,130,255,0.14), 0 26px 66px rgba(0,0,0,0.5);
}
html.v2 .ai-stack-block { border-color: rgba(167,139,250,0.50); box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 60px rgba(124,92,255,0.20), 0 26px 66px rgba(0,0,0,0.5); }
html.v2 .cross-sell { box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 54px rgba(58,130,255,0.20), 0 26px 66px rgba(0,0,0,0.46); }
html.v2 .seo-price-card.popular {
  box-shadow: 0 0 0 1px rgba(58,130,255,0.34), inset 0 1px 0 rgba(255,255,255,0.18), 0 0 50px rgba(58,130,255,0.14), 0 22px 56px rgba(0,0,0,0.4);
}

/* ── 4. Иридесцентные смелые карточки: ярче кольцо, крупнее hover-glow ──────── */
html.v2 .seo-segment-card::before, html.v2 .pain-card::before,
html.v2 .methodology-item::before, html.v2 .geo-platform-card::before,
html.v2 .team-card::before, html.v2 .team-card-mini::before,
html.v2 .how-we-work-card::before, html.v2 .blog-card::before,
html.v2 .page-content .highlight::before,
html.v2 .cross-sell::before, html.v2 .media-hero::before {
  padding: 1.3px;
  background: linear-gradient(158deg,
    rgba(122,172,255,0.60) 0%,
    rgba(255,255,255,0.14) 20%,
    rgba(58,130,255,0.20) 46%,
    rgba(167,139,250,0.54) 72%,
    rgba(96,204,255,0.44) 100%);
}
html.v2 .seo-segment-card:hover, html.v2 .pain-card:hover,
html.v2 .methodology-item:hover, html.v2 .geo-platform-card:hover,
html.v2 .team-card:hover, html.v2 .team-card-mini:hover,
html.v2 .how-we-work-card:hover, html.v2 .blog-card:hover,
html.v2 .vs-card:hover, html.v2 .seo-price-card:hover {
  border-color: rgba(90,150,255,0.5);
  box-shadow: 0 0 0 1px rgba(58,130,255,0.20), 0 0 56px rgba(58,130,255,0.24), 0 30px 72px rgba(0,0,0,0.56);
}
/* курсорный specular: радиальный блик за курсором (--mx/--my из JS) */
html.v2 .seo-segment-card:hover, html.v2 .pain-card:hover,
html.v2 .methodology-item:hover, html.v2 .geo-platform-card:hover,
html.v2 .team-card:hover, html.v2 .team-card-mini:hover,
html.v2 .how-we-work-card:hover, html.v2 .blog-card:hover,
html.v2 .page-content .highlight:hover {
  background:
    radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(96,156,255,0.16), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,0.045), transparent 30%),
    linear-gradient(158deg, rgba(30,37,58,0.6) 0%, rgba(21,25,40,0.62) 70%);
}

/* ── 5. Aurora / стекло — СВЕТЛАЯ ТЕМА ──────────────────────────────────────── */
html.v2[data-theme="light"] .v2-aurora .a1 { background: radial-gradient(circle, rgba(0,113,227,0.20), transparent 66%); }
html.v2[data-theme="light"] .v2-aurora .a2 { background: radial-gradient(circle, rgba(124,58,237,0.17), transparent 66%); }
html.v2[data-theme="light"] .v2-aurora .a3 { background: radial-gradient(circle, rgba(0,150,255,0.12), transparent 68%); }
html.v2[data-theme="light"] body.v2-inner .page-content h1 .gradient-text {
  filter: drop-shadow(0 0 20px rgba(0,113,227,0.28)) drop-shadow(0 0 40px rgba(124,58,237,0.18));
}
html.v2[data-theme="light"] body.v2-inner .section-label,
html.v2[data-theme="light"] body.v2-inner .svc-eyebrow {
  background:
    radial-gradient(60px circle at 20% 0%, rgba(255,255,255,0.7), transparent 60%),
    rgba(0,113,227,0.07);
  border-color: rgba(0,113,227,0.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 0 20px rgba(0,113,227,0.10);
}
html.v2[data-theme="light"] body.v2-inner .svc-eyebrow::before {
  background: linear-gradient(135deg, #0071E3, #7C3AED);
  box-shadow: 0 0 8px rgba(0,113,227,0.5);
}
html.v2[data-theme="light"] .seo-stat-bar {
  background: rgba(255,255,255,0.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), 0 18px 50px rgba(20,30,60,0.12);
}
html.v2[data-theme="light"] .seo-segment-card::before,
html.v2[data-theme="light"] .pain-card::before,
html.v2[data-theme="light"] .methodology-item::before,
html.v2[data-theme="light"] .geo-platform-card::before,
html.v2[data-theme="light"] .team-card::before,
html.v2[data-theme="light"] .team-card-mini::before,
html.v2[data-theme="light"] .how-we-work-card::before,
html.v2[data-theme="light"] .blog-card::before,
html.v2[data-theme="light"] .page-content .highlight::before,
html.v2[data-theme="light"] .cross-sell::before,
html.v2[data-theme="light"] .media-hero::before {
  background: linear-gradient(158deg,
    rgba(0,113,227,0.34) 0%, rgba(0,0,0,0.05) 24%,
    rgba(0,113,227,0.18) 50%, rgba(124,58,237,0.40) 76%, rgba(0,150,255,0.30) 100%);
}
html.v2[data-theme="light"] .seo-segment-card:hover, html.v2[data-theme="light"] .pain-card:hover,
html.v2[data-theme="light"] .methodology-item:hover, html.v2[data-theme="light"] .geo-platform-card:hover,
html.v2[data-theme="light"] .team-card:hover, html.v2[data-theme="light"] .team-card-mini:hover,
html.v2[data-theme="light"] .how-we-work-card:hover, html.v2[data-theme="light"] .blog-card:hover,
html.v2[data-theme="light"] .vs-card:hover, html.v2[data-theme="light"] .seo-price-card:hover {
  border-color: rgba(0,113,227,0.38);
  box-shadow: 0 0 0 1px rgba(0,113,227,0.12), 0 0 40px rgba(0,113,227,0.14), 0 26px 60px rgba(20,30,60,0.16);
}
html.v2[data-theme="light"] .seo-segment-card:hover, html.v2[data-theme="light"] .pain-card:hover,
html.v2[data-theme="light"] .methodology-item:hover, html.v2[data-theme="light"] .geo-platform-card:hover,
html.v2[data-theme="light"] .team-card:hover, html.v2[data-theme="light"] .team-card-mini:hover,
html.v2[data-theme="light"] .how-we-work-card:hover, html.v2[data-theme="light"] .blog-card:hover,
html.v2[data-theme="light"] .page-content .highlight:hover {
  background:
    radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(0,113,227,0.12), transparent 62%),
    rgba(255,255,255,0.74);
}

/* ── 6. Деградация v2-lite: снять aurora + весь новый blur ──────────────────── */
html.v2-lite .v2-aurora { display: none; }
html.v2-lite .seo-stat-bar {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: rgba(19,23,36,0.9);
}
html.v2-lite[data-theme="light"] .seo-stat-bar { background: rgba(255,255,255,0.92); }

/* ── 7. reduced-motion: aurora замирает (пятна остаются статичными) ─────────── */
@media (prefers-reduced-motion: reduce) {
  html.v2 .v2-aurora i { animation: none !important; }
}

/* ════════════════════════════════════════════════════════════════════════════
   ПАСХАЛКА в духе Mr. Robot на «О нас» — только html.v2 body.page-about.
   Тонкий терминальный стиль реквизитов + скрытый триггер (набрать «fsociety»).
   Полная читабельность ИНН/ОГРН/счетов сохраняется.
   ════════════════════════════════════════════════════════════════════════════ */
html.v2 body.page-about .v2-req-terminal {
  position: relative;
  margin-top: 30px !important;
  padding: 48px 22px 20px !important;
  border-radius: 16px;
  background: rgba(6,11,9,0.72);
  border: 1px solid rgba(126,226,168,0.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05), 0 22px 60px rgba(0,0,0,0.5), 0 0 40px rgba(0,90,45,0.10);
  font-family: 'Cascadia Code', Consolas, 'SF Mono', monospace !important;
  font-size: 0.86rem !important;
  line-height: 1.85 !important;
  color: rgba(190,224,205,0.86) !important;
  overflow: hidden;
}
html.v2 body.page-about .v2-req-terminal strong { color: #7EE2A8 !important; font-weight: 600 !important; }
html.v2 body.page-about .v2-req-terminal::after {   /* скан-линии CRT */
  content: '';
  position: absolute; inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(126,226,168,0.045) 0 1px, transparent 1px 3px);
  opacity: 0.6;
}
html.v2 body.page-about .v2-req-head {
  position: absolute; top: 15px; left: 22px;
  z-index: 1;
  font: 600 0.8rem/1 'Cascadia Code', Consolas, monospace;
  color: #7EE2A8;
  letter-spacing: 0.02em;
}
html.v2 body.page-about .v2-req-head .v2-term-cursor { background: #7EE2A8; margin-left: 3px; }
/* основатель: моно-нотка «> whoami» над должностью */
html.v2 body.page-about .founder-role::before {
  content: '> whoami';
  display: block;
  margin-bottom: 6px;
  font: 600 0.72rem/1 'Cascadia Code', Consolas, monospace;
  letter-spacing: 0.04em;
  color: #7EE2A8;
  opacity: 0.72;
}
[data-theme="light"] html.v2 body.page-about .v2-req-terminal,
html.v2[data-theme="light"] body.page-about .v2-req-terminal {
  background: rgba(240,248,243,0.92);
  border-color: rgba(20,150,90,0.28);
  color: rgba(30,70,50,0.9) !important;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 22px 60px rgba(20,30,60,0.12);
}
html.v2[data-theme="light"] body.page-about .v2-req-terminal strong { color: #12905A !important; }
html.v2[data-theme="light"] body.page-about .v2-req-head,
html.v2[data-theme="light"] body.page-about .founder-role::before { color: #12905A; }

/* ── скрытый триггер: набрать «fsociety» → короткий «взлом» экрана ──────────── */
html.v2 .v2-hack-overlay {
  position: fixed; inset: 0; z-index: 100000;
  pointer-events: none;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background:
    repeating-linear-gradient(0deg, rgba(0,255,140,0.06) 0 1px, transparent 1px 3px),
    radial-gradient(ellipse at center, rgba(0,32,14,0.42), rgba(0,0,0,0.6));
  animation: v2-hack-fade 2.6s ease forwards;
}
html.v2 .v2-hack-overlay::after {
  content: '';
  position: absolute; left: 0; right: 0; height: 130px;
  background: linear-gradient(180deg, transparent, rgba(126,226,168,0.12), transparent);
  animation: v2-hack-scan 2.6s linear;
}
html.v2 .v2-hack-text {
  position: relative; z-index: 1;
  font: 700 clamp(2rem, 7vw, 4.6rem)/1 'Cascadia Code', Consolas, 'Courier New', monospace;
  color: #7EE2A8;
  letter-spacing: 0.02em;
  text-shadow: 0 0 26px rgba(126,226,168,0.7), 2px 0 rgba(255,40,90,0.55), -2px 0 rgba(60,170,255,0.55);
  animation: v2-hack-glitch 0.4s steps(2) infinite;
}
@keyframes v2-hack-fade { 0% { opacity: 0; } 10% { opacity: 1; } 82% { opacity: 1; } 100% { opacity: 0; } }
@keyframes v2-hack-scan { from { transform: translateY(-150px); } to { transform: translateY(100vh); } }
@keyframes v2-hack-glitch { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-2px, 1px); } }

/* ════════════════════════════════════════════════════════════════════════════
   FAQ → премиум-стеклянные карточки (сквозно, все страницы с .faq-list).
   Плоский список с разделителями → карточки с сигнальным кольцом, круглый
   бейдж «+», разворачивающийся в «×», акцент у раскрытого пункта.
   ════════════════════════════════════════════════════════════════════════════ */
html.v2 .faq-list { gap: 12px; margin-top: 28px; }
html.v2 .faq-item {
  position: relative;
  border-bottom: none;
  border-radius: 16px;
  background: rgba(19,23,36,0.55);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05), 0 10px 30px rgba(0,0,0,0.26);
  overflow: hidden;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.5s ease, background 0.4s ease;
}
html.v2 .faq-item::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: inherit;
  padding: 1.1px;
  background: linear-gradient(158deg, rgba(122,172,255,0.42), rgba(255,255,255,0.06) 32%, rgba(167,139,250,0.40) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events: none;
  opacity: 0.7;
  transition: opacity 0.4s ease;
}
html.v2 .faq-item:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.07), 0 0 34px rgba(58,130,255,0.12), 0 18px 44px rgba(0,0,0,0.4);
}
html.v2 .faq-item:hover::before { opacity: 1; }
html.v2 .faq-item:has(.faq-question.open),
html.v2 details.faq-item[open] {
  background: linear-gradient(135deg, rgba(58,130,255,0.09), rgba(167,139,250,0.06));
}
html.v2 .faq-item:has(.faq-question.open)::before,
html.v2 details.faq-item[open]::before { opacity: 1; }

html.v2 .faq-question { padding: 20px 22px; gap: 18px; }
html.v2 .faq-question:hover { color: #8DB7FF; }
html.v2 .faq-icon {
  width: 34px; height: 34px;
  flex-shrink: 0;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.35rem; line-height: 1;
  color: #8DB7FF;
  background: rgba(58,130,255,0.10);
  border: 1px solid rgba(58,130,255,0.26);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.08);
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), background 0.35s ease, color 0.3s ease, box-shadow 0.4s ease;
}
html.v2 .faq-question.open .faq-icon,
html.v2 details.faq-item[open] > .faq-question .faq-icon {
  transform: rotate(45deg);
  color: #EAF1FF;
  background: linear-gradient(135deg, rgba(58,130,255,0.92), rgba(124,92,255,0.92));
  border-color: transparent;
  box-shadow: 0 0 20px rgba(58,130,255,0.4), inset 0 1px 1px rgba(255,255,255,0.2);
}
html.v2 .faq-answer { padding: 0 22px; }
html.v2 .faq-answer.open { max-height: 640px; }   /* реальный max ответа ~342px @390; запас на узкие экраны/длинные тексты */
html.v2 .faq-answer p { padding: 0 0 20px; }

html.v2[data-theme="light"] .faq-item {
  background: rgba(255,255,255,0.72);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 10px 30px rgba(20,30,60,0.07);
}
html.v2[data-theme="light"] .faq-item::before {
  background: linear-gradient(158deg, rgba(0,113,227,0.30), rgba(0,0,0,0.04) 32%, rgba(124,58,237,0.30) 100%);
}
html.v2[data-theme="light"] .faq-item:has(.faq-question.open),
html.v2[data-theme="light"] details.faq-item[open] {
  background: linear-gradient(135deg, rgba(0,113,227,0.06), rgba(124,58,237,0.05));
}
html.v2[data-theme="light"] .faq-question:hover { color: #0071E3; }
html.v2[data-theme="light"] .faq-icon {
  color: #0071E3;
  background: rgba(0,113,227,0.09);
  border-color: rgba(0,113,227,0.24);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .faq-question.open .faq-icon,
html.v2[data-theme="light"] details.faq-item[open] > .faq-question .faq-icon {
  color: #fff;
  background: linear-gradient(135deg, #0071E3, #7C3AED);
  border-color: transparent;
  box-shadow: 0 0 18px rgba(0,113,227,0.34), inset 0 1px 1px rgba(255,255,255,0.3);
}

/* ════════════════════════════════════════════════════════════════════════════
   SEO «8 этапов» → растущая древо-схема между шагами (JS вставляет .v2-mtree
   с деревом на level i+1: от меньшего к большему). Цвет — из inherited --tree.
   ════════════════════════════════════════════════════════════════════════════ */
html.v2 .v2-mtree {
  display: flex;
  justify-content: center;        /* древо по центру между карточками */
  margin: -6px 0;                 /* съедаем часть gap списка */
  pointer-events: none;
  --tree: 122,172,255;
}
html.v2 .v2-mtree .svc-tree {
  display: block;
  height: auto;
  filter: drop-shadow(0 0 6px rgba(58,130,255,0.4));
}
html.v2[data-theme="light"] .v2-mtree { --tree: 0,113,227; }
html.v2-lite .v2-mtree { display: none; }
@media (prefers-reduced-motion: reduce) { html.v2 .v2-mtree .svc-tree { filter: none; } }

/* ── убираем «мёртвый» отступ снизу контент-страниц перед футером ────────────
   .page-content задаёт padding-bottom:80px ПОВЕРХ собственного отступа
   последней секции → двойной пустой блок. Секционного отступа достаточно. */
html.v2 .page-content { padding-bottom: 0; }

/* ════════════════════════════════════════════════════════════════════════════
   ПОП-АП ЗАЯВКИ (svc-lead-dialog) → премиум-стекло в едином языке «Сигнала».
   Раньше — плоская база style.css, диссонанс с остальным сайтом.
   ════════════════════════════════════════════════════════════════════════════ */
html.v2 .svc-lead-dialog {
  border: 1px solid rgba(141,183,255,0.20);
  background:
    radial-gradient(130% 60% at 50% 0%, rgba(58,130,255,0.12), transparent 62%),
    rgba(13,17,28,0.95);
  box-shadow: 0 36px 100px rgba(0,0,0,0.62), 0 0 72px rgba(58,130,255,0.12), inset 0 1px 0 rgba(255,255,255,0.08);
}
html.v2 .svc-lead-dialog::backdrop {
  background: rgba(4,6,12,0.66);
  backdrop-filter: blur(9px) saturate(140%);
  -webkit-backdrop-filter: blur(9px) saturate(140%);
}
/* эйброу «ЗАЯВКА» → светящаяся пилюля */
html.v2 .svc-lead-eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 6px 13px;
  border-radius: 999px;
  color: #8DB7FF;
  background: rgba(58,130,255,0.10);
  border: 1px solid rgba(141,183,255,0.26);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.08), 0 0 20px rgba(58,130,255,0.14);
}
/* поля ввода → стекло + мягкий фокус-glow */
html.v2 .svc-lead-field input,
html.v2 .svc-lead-field textarea {
  background: rgba(19,23,36,0.6);
  border-color: rgba(141,183,255,0.20);
}
html.v2 .svc-lead-field input:focus,
html.v2 .svc-lead-field textarea:focus {
  border-color: rgba(58,130,255,0.6);
  box-shadow: 0 0 0 3px rgba(58,130,255,0.14), 0 0 24px rgba(58,130,255,0.16);
}
/* чипы канала связи → стеклянные пилюли, активная — градиент */
html.v2 .svc-lead-dialog .svc-chip span {
  background: rgba(19,23,36,0.55);
  border-color: rgba(141,183,255,0.18);
}
html.v2 .svc-lead-dialog .svc-chip:hover span {
  border-color: rgba(58,130,255,0.42);
  background: rgba(58,130,255,0.10);
  color: #EAF1FF;
}
html.v2 .svc-lead-dialog .svc-chip input:checked + span {
  background: linear-gradient(135deg, rgba(58,130,255,0.96), rgba(124,92,255,0.96));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 0 20px rgba(58,130,255,0.32), inset 0 1px 1px rgba(255,255,255,0.18);
}
/* «Что дальше» → стеклянная плашка + светящиеся узлы шагов */
html.v2 .svc-lead-next {
  background: rgba(19,23,36,0.5);
  border-color: rgba(141,183,255,0.16);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05);
  --tree: 122,172,255;
}
html.v2 .svc-next-dot {
  background: linear-gradient(135deg, #3A82FF, #7C5CFF);
  box-shadow: 0 0 16px rgba(58,130,255,0.34), inset 0 1px 1px rgba(255,255,255,0.2);
}
/* крестик закрытия → стеклянная кнопка */
html.v2 .svc-lead-close {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  color: #C9D3E4;
}
html.v2 .svc-lead-close:hover {
  background: rgba(58,130,255,0.16);
  border-color: rgba(58,130,255,0.42);
  color: #fff;
}
/* тумблеры «Добавить комментарий / Что ещё» */
html.v2 .svc-lead-toggle { color: #8DB7FF; }

/* светлая тема поп-апа */
html.v2[data-theme="light"] .svc-lead-dialog {
  border-color: rgba(0,113,227,0.18);
  background:
    radial-gradient(130% 60% at 50% 0%, rgba(0,113,227,0.08), transparent 62%),
    rgba(255,255,255,0.97);
  box-shadow: 0 36px 100px rgba(20,30,60,0.2), 0 0 60px rgba(0,113,227,0.08), inset 0 1px 0 rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .svc-lead-eyebrow {
  color: #0071E3;
  background: rgba(0,113,227,0.08);
  border-color: rgba(0,113,227,0.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.7), 0 0 18px rgba(0,113,227,0.10);
}
html.v2[data-theme="light"] .svc-lead-field input,
html.v2[data-theme="light"] .svc-lead-field textarea {
  background: rgba(255,255,255,0.85);
  border-color: rgba(0,113,227,0.18);
}
html.v2[data-theme="light"] .svc-lead-field input:focus,
html.v2[data-theme="light"] .svc-lead-field textarea:focus {
  border-color: rgba(0,113,227,0.55);
  box-shadow: 0 0 0 3px rgba(0,113,227,0.14), 0 0 22px rgba(0,113,227,0.12);
}
html.v2[data-theme="light"] .svc-lead-dialog .svc-chip span {
  background: rgba(255,255,255,0.8);
  border-color: rgba(0,113,227,0.16);
}
html.v2[data-theme="light"] .svc-lead-dialog .svc-chip:hover span {
  border-color: rgba(0,113,227,0.4);
  background: rgba(0,113,227,0.08);
}
html.v2[data-theme="light"] .svc-lead-dialog .svc-chip input:checked + span {
  background: linear-gradient(135deg, #0071E3, #7C3AED);
}
html.v2[data-theme="light"] .svc-lead-next {
  background: rgba(0,113,227,0.04);
  border-color: rgba(0,113,227,0.14);
  --tree: 0,113,227;
}
html.v2[data-theme="light"] .svc-lead-close {
  background: rgba(0,0,0,0.04);
  border-color: rgba(0,0,0,0.08);
  color: #6E6E73;
}
html.v2[data-theme="light"] .svc-lead-close:hover {
  background: rgba(0,113,227,0.12);
  border-color: rgba(0,113,227,0.4);
  color: #003E8F;
}

/* ── экран «Заявка принята» → премиум-«квитанция» вместо плоской базы ──────── */
html.v2 .form-success-card {
  position: relative;
  padding: 44px 28px 40px;
  border-radius: 20px;
  background:
    radial-gradient(120% 70% at 50% 0%, rgba(52,211,153,0.10), transparent 60%),
    rgba(19,23,36,0.5);
  border: 1px solid rgba(122,172,255,0.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
html.v2 .form-success-icon {
  width: 72px;
  height: 72px;
  background: radial-gradient(circle at 50% 40%, rgba(52,211,153,0.24), rgba(52,211,153,0.05) 70%);
  border: 1px solid rgba(52,211,153,0.34);
  box-shadow: 0 0 42px rgba(52,211,153,0.32), inset 0 1px 1px rgba(255,255,255,0.14);
}
html.v2 .form-success-icon svg { filter: drop-shadow(0 0 8px rgba(52,211,153,0.5)); }
html.v2 .form-success-title {
  background: linear-gradient(118deg, #FFFFFF 0%, #8DB7FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
html.v2 .form-success-extra {
  color: #7EE2A8;
  background: rgba(52,211,153,0.08);
  border: 1px solid rgba(52,211,153,0.20);
  border-radius: 10px;
  padding: 8px 14px;
  display: inline-block;
}
html.v2 .form-success-contacts a {
  color: #8DB7FF;
  transition: color 0.2s var(--ease-out);
}
html.v2 .form-success-contacts a:hover { color: #B9D3FF; }

/* ── ошибка отправки (алерт) → читаемая красная плашка на тёмном стекле ────── */
html.v2 .svc-lead-msg {
  background: rgba(239,68,68,0.14);
  border: 1px solid rgba(248,113,113,0.42);
  color: #FCA5A5;
  box-shadow: 0 0 22px rgba(239,68,68,0.12), inset 0 1px 1px rgba(255,255,255,0.04);
}
/* ── невалидные поля → красная кромка + мягкий glow ────────────────────────── */
html.v2 .svc-lead-field input.svc-invalid,
html.v2 .svc-lead-field textarea.svc-invalid {
  border-color: rgba(248,113,113,0.7);
  box-shadow: 0 0 0 3px rgba(239,68,68,0.14), 0 0 20px rgba(239,68,68,0.14);
}
html.v2 .svc-lead-consent.svc-invalid { color: #FCA5A5; }

/* светлая тема: успех/ошибка/невалид */
html.v2[data-theme="light"] .form-success-card {
  background:
    radial-gradient(120% 70% at 50% 0%, rgba(5,150,105,0.08), transparent 60%),
    rgba(255,255,255,0.6);
  border-color: rgba(0,113,227,0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
}
html.v2[data-theme="light"] .form-success-icon {
  background: radial-gradient(circle at 50% 40%, rgba(5,150,105,0.18), rgba(5,150,105,0.04) 70%);
  border-color: rgba(5,150,105,0.3);
  box-shadow: 0 0 34px rgba(5,150,105,0.20), inset 0 1px 1px rgba(255,255,255,0.6);
}
html.v2[data-theme="light"] .form-success-title {
  background: linear-gradient(118deg, #0A1A3A 0%, #0071E3 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
html.v2[data-theme="light"] .form-success-extra {
  color: #047857;
  background: rgba(5,150,105,0.08);
  border-color: rgba(5,150,105,0.22);
}
html.v2[data-theme="light"] .form-success-contacts a { color: #0071E3; }
html.v2[data-theme="light"] .form-success-contacts a:hover { color: #003E8F; }
html.v2[data-theme="light"] .svc-lead-msg {
  background: rgba(239,68,68,0.08);
  border-color: rgba(239,68,68,0.3);
  color: #DC2626;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.5);
}
html.v2[data-theme="light"] .svc-lead-field input.svc-invalid,
html.v2[data-theme="light"] .svc-lead-field textarea.svc-invalid {
  border-color: rgba(220,38,38,0.6);
  box-shadow: 0 0 0 3px rgba(239,68,68,0.10), 0 0 18px rgba(239,68,68,0.10);
}
html.v2[data-theme="light"] .svc-lead-consent.svc-invalid { color: #DC2626; }

/* деградация: снять blur бэкдропа поп-апа на слабых ПК */
html.v2-lite .svc-lead-dialog::backdrop { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
