/* Сброс + базовый слой. Общий для всех секций. Шрифты — локальные (src/fonts.css). */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.1vw, 1.125rem);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1, h2, h3 { font-family: var(--font-display); line-height: 1.05; font-weight: 800; letter-spacing: -.02em; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }

/* Утилиты-обёртки, чтобы секции были консистентны */
.section   { padding-block: var(--section-pad); }
.container  { width: min(100% - 2.5rem, var(--maxw)); margin-inline: auto; }
/* лилак вместо чистого фиолета + тёмная подложка — иначе тонет в свечении орбов */
.eyebrow   { font-size: .8rem; letter-spacing: .25em; text-transform: uppercase; color: var(--lilac); text-shadow: 0 1px 10px rgba(6,8,16,.85); }

/* подводки секций ложатся на яркие полосы орбов — даём тексту тёмный ореол */
.hero-sub, .services-lead, .cases-lead, .process-lead, .faq-lead, .contact-lead,
.process-step p, .cases-desc {
  text-shadow: 0 1px 14px rgba(6,8,16,.8);
}

::placeholder { color: #9A93B3; opacity: 1; }
.btn {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: 1rem 1.9rem; border-radius: 999px; font-weight: 700;
  color: #050509; background: var(--grad-soft); background-size: 160% 160%;
  transition: transform .25s, box-shadow .25s, background-position .6s;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--glow-purple); background-position: 100% 0; }
.btn--ghost { background: transparent; color: var(--text); border: 1px solid var(--line); }
