:root {
  --vm-page-bg-color: #e7ecff;
  --vm-page-bg:
    radial-gradient(circle at 18% 0%,
      rgba(129, 140, 248, 0.22) 0%,
      rgba(129, 140, 248, 0) 28%),
    radial-gradient(circle at 82% 8%,
      rgba(59, 130, 246, 0.16) 0%,
      rgba(59, 130, 246, 0) 30%),
    linear-gradient(135deg,
      #e7ecff 0%,
      #dbeafe 48%,
      #edf3ff 100%);
}

html {
  min-height: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  background-color: var(--vm-page-bg-color);
}

body {
  position: relative;
  min-height: 100%;
  background-color: var(--vm-page-bg-color);
  isolation: isolate;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;

  background: var(--vm-page-bg);
  transform: translateZ(0);
  will-change: transform;
}

.vm-heading {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.045em;
  overflow: visible;
}

.vm-margin-word {
  position: relative;
  display: inline-block;
  isolation: isolate;
  padding: 0 0.03em 0.16em;
  margin-bottom: -0.1em;
  color: #312e81;
  font-weight: 650;
  letter-spacing: -0.035em;
  white-space: nowrap;
  line-height: 1.18;
  vertical-align: -0.04em;
  overflow: visible;
  background: linear-gradient(100deg, #111827 0%, #3730a3 42%, #0f766e 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 16px 34px rgba(49, 46, 129, 0.18);
}

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.visible,
main>header.reveal {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

vm-logo,
vm-nav,
vm-footer {
  display: block;
}

vm-logo,
vm-contact-email {
  display: inline-flex;
}

vm-logo {
  min-height: 2rem;
  min-width: 11rem;
}

::selection {
  background: rgba(31, 94, 255, 0.16);
}

/* Fixed premium full-width navigation */
vm-nav {
  display: block;
  width: 100%;
  height: 5.35rem;
  margin-bottom: 3.35rem;

  opacity: 1;
  transform: none;
}

vm-nav:not(:defined) {
  min-height: 5.35rem;
  visibility: hidden;
}

.site-nav-shell {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 90;

  width: 100%;
  min-height: 5.35rem;
  padding: 0.48rem 1.5rem 0.9rem;

  background:
    linear-gradient(115deg,
      rgba(7, 12, 28, 0.94) 0%,
      rgba(13, 22, 52, 0.92) 42%,
      rgba(18, 34, 82, 0.89) 72%,
      rgba(8, 13, 31, 0.94) 100%);

  backdrop-filter: blur(18px) saturate(1.12);
  -webkit-backdrop-filter: blur(18px) saturate(1.12);

  border-bottom: 1px solid rgba(148, 163, 184, 0.22);

  box-shadow:
    0 22px 58px rgba(15, 23, 42, 0.24),
    0 1px 0 rgba(255, 255, 255, 0.08) inset,
    0 -1px 0 rgba(255, 255, 255, 0.04) inset;

  opacity: 1;
  transform: translate3d(0, 0, 0);

  overflow: hidden;

  transition:
    background 520ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 520ms cubic-bezier(0.16, 1, 0.3, 1),
    backdrop-filter 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background:
    radial-gradient(circle at 18% 0%,
      rgba(99, 102, 241, 0.34) 0%,
      rgba(99, 102, 241, 0.11) 26%,
      transparent 52%),
    radial-gradient(circle at 78% 0%,
      rgba(56, 189, 248, 0.24) 0%,
      rgba(56, 189, 248, 0.08) 30%,
      transparent 56%),
    linear-gradient(90deg,
      transparent 0%,
      rgba(255, 255, 255, 0.07) 48%,
      transparent 100%);

  opacity: 0.9;

  transition:
    opacity 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  pointer-events: none;

  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(129, 140, 248, 0.4) 18%,
      rgba(191, 219, 254, 0.62) 50%,
      rgba(129, 140, 248, 0.38) 82%,
      transparent 100%);

  transition:
    background 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell.is-scrolled {
  background:
    linear-gradient(115deg,
      rgba(5, 10, 24, 0.985) 0%,
      rgba(10, 18, 44, 0.965) 42%,
      rgba(15, 31, 78, 0.935) 72%,
      rgba(5, 9, 22, 0.985) 100%);

  border-bottom-color: rgba(191, 219, 254, 0.26);

  box-shadow:
    0 24px 64px rgba(15, 23, 42, 0.32),
    0 0 34px rgba(96, 165, 250, 0.08),
    0 1px 0 rgba(255, 255, 255, 0.11) inset,
    0 -1px 0 rgba(255, 255, 255, 0.05) inset;
}

.site-nav-shell.is-scrolled::before {
  opacity: 0.72;
}

.site-nav-shell.is-scrolled::after {
  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(129, 140, 248, 0.34) 18%,
      rgba(191, 219, 254, 0.74) 50%,
      rgba(129, 140, 248, 0.34) 82%,
      transparent 100%);
}

.site-nav {
  position: relative;
  z-index: 2;

  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 3.5rem;

  width: 100%;
  max-width: 64rem;
  min-height: 4rem;

  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;

  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* Logo width lock — prevents menu links from moving on hover */
.site-nav vm-logo {
  flex: 0 0 14.25rem;
  width: 14.25rem;
  min-width: 14.25rem;
  max-width: 14.25rem;
}

.site-nav-shell vm-logo a {
  width: 100%;
  max-width: 100%;
}

/* Logo color correction inside dark premium nav */
.site-nav-shell vm-logo a {
  color: rgba(248, 250, 252, 0.96);
}

.site-nav-shell vm-logo .text-fg {
  color: rgba(248, 250, 252, 0.96) !important;
}

.site-nav-shell vm-logo .text-muted {
  color: rgba(203, 213, 225, 0.72) !important;
}

.site-nav-shell vm-logo .text-accent {
  color: #bfdbfe !important;
}

.site-nav-shell vm-logo .border-accent\/20 {
  border-color: rgba(191, 219, 254, 0.28) !important;
}

.site-nav-shell vm-logo .bg-white\/55 {
  background:
    linear-gradient(135deg,
      rgba(255, 255, 255, 0.16) 0%,
      rgba(147, 197, 253, 0.11) 100%) !important;
}

.site-nav-shell vm-logo .shadow-\[0_0_24px_rgba\(31\,94\,255\,0\.18\)\] {
  box-shadow:
    0 0 22px rgba(96, 165, 250, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
}

/* Premium logo hover */
.site-nav-shell vm-logo a {
  position: relative;
  isolation: isolate;
  border-radius: 999px;
  transition:
    color 420ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell vm-logo a::before {
  content: "";
  position: absolute;
  isolation: isolate;
  inset: -0.44rem -0.74rem;
  z-index: -1;
  pointer-events: none;

  border-radius: 999px;

  background:
    radial-gradient(circle at 18% 20%,
      rgba(191, 219, 254, 0.16) 0%,
      rgba(191, 219, 254, 0.055) 34%,
      transparent 68%),
    linear-gradient(135deg,
      rgba(255, 255, 255, 0.065) 0%,
      rgba(96, 165, 250, 0.05) 44%,
      rgba(99, 102, 241, 0.055) 100%);

  border: 1px solid rgba(191, 219, 254, 0.09);

  opacity: 0;
  transform: scale(0.985) translate3d(0, 1px, 0);

  box-shadow:
    0 14px 30px rgba(0, 0, 0, 0.13),
    0 0 22px rgba(96, 165, 250, 0.085),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);

  transition:
    opacity 420ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 420ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell vm-logo a>span:first-child {
  flex: 0 0 2rem;

  transition:
    color 420ms cubic-bezier(0.16, 1, 0.3, 1),
    background 420ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 420ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell vm-logo a>span:last-child {
  flex: 1 1 auto;
  min-width: 0;
}

.site-nav-shell vm-logo a>span:last-child>span {
  transition:
    color 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-nav-shell vm-logo a:hover,
.site-nav-shell vm-logo a:focus-visible {
  transform: translate3d(0, -1px, 0);
}

.site-nav-shell vm-logo a:hover::before,
.site-nav-shell vm-logo a:focus-visible::before {
  opacity: 1;
  transform: scale(1) translate3d(0, 0, 0);
  border-color: rgba(191, 219, 254, 0.18);

  box-shadow:
    0 16px 36px rgba(0, 0, 0, 0.16),
    0 0 28px rgba(96, 165, 250, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.site-nav-shell vm-logo a:hover>span:first-child,
.site-nav-shell vm-logo a:focus-visible>span:first-child {
  color: #ffffff !important;
  border-color: rgba(191, 219, 254, 0.46) !important;

  background:
    linear-gradient(135deg,
      rgba(191, 219, 254, 0.24) 0%,
      rgba(96, 165, 250, 0.16) 46%,
      rgba(99, 102, 241, 0.16) 100%) !important;

  box-shadow:
    0 0 14px rgba(191, 219, 254, 0.34),
    0 0 32px rgba(96, 165, 250, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;

  transform: translate3d(0, -1px, 0) scale(1.006);
}

.site-nav-shell vm-logo a:hover .text-fg,
.site-nav-shell vm-logo a:focus-visible .text-fg {
  color: #ffffff !important;
}

.site-nav-shell vm-logo a:hover .text-muted,
.site-nav-shell vm-logo a:focus-visible .text-muted {
  color: rgba(219, 234, 254, 0.84) !important;
}

.site-nav-shell vm-logo a:focus-visible {
  outline: 1px solid rgba(191, 219, 254, 0.58);
  outline-offset: 6px;
}

.site-nav-links {
  display: flex;
  align-items: center;
  gap: 0.625rem;

  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.015em;

  white-space: nowrap;
  line-height: 1.18;
  vertical-align: -0.04em;
  overflow: visible;
}

.site-nav-links a {
  color: rgba(203, 213, 225, 0.78) !important;
}

.site-nav-links a[aria-current="page"] {
  color: rgba(248, 250, 252, 0.98) !important;
}

.site-nav-links a,
.site-nav-links a:hover,
.site-nav-links a:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
}

.site-nav-links a:hover {
  color: #ffffff !important;
}

.site-nav-links a span[aria-hidden="true"] {
  background: #bfdbfe !important;
  box-shadow:
    0 0 14px rgba(191, 219, 254, 0.72),
    0 0 32px rgba(96, 165, 250, 0.34) !important;
}

.site-nav-links a:focus-visible {
  outline: 1px solid rgba(191, 219, 254, 0.68);
  outline-offset: 6px;
}

/* Panels / cards */
.vm-panel,
.vm-panel-soft,
.vm-card {
  box-sizing: border-box;
}

.vm-panel {
  border: 1px solid rgba(92, 107, 130, 0.22);
  background: rgba(255, 255, 255, 0.42);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 1.15rem;
  box-shadow:
    0 18px 42px rgba(15, 23, 42, 0.035),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.vm-panel-soft {
  border: 1px solid rgba(92, 107, 130, 0.18);
  background:
    linear-gradient(135deg,
      rgba(255, 255, 255, 0.54) 0%,
      rgba(238, 242, 255, 0.36) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 1.15rem;
  box-shadow:
    0 18px 42px rgba(15, 23, 42, 0.032),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

.vm-card {
  border: 1px solid rgba(92, 107, 130, 0.2);
  background: rgba(255, 255, 255, 0.38);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 1rem;
  box-shadow:
    0 12px 28px rgba(15, 23, 42, 0.026),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);

  transform: translate3d(0, 0, 0);
  will-change: transform, background, border-color, box-shadow;

  transition:
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 420ms cubic-bezier(0.16, 1, 0.3, 1),
    background 420ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.vm-card:hover {
  border-color: rgba(79, 95, 213, 0.3);
  background: rgba(255, 255, 255, 0.56);
  box-shadow:
    0 18px 38px rgba(15, 23, 42, 0.052),
    0 0 0 1px rgba(79, 95, 213, 0.045),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);

  transform: translate3d(0, -3px, 0);
}


/* Centralized card typography */
.vm-card.vm-card {
  padding: clamp(1.15rem, 2vw, 1.55rem);
}

.vm-card .vm-card-kicker,
.vm-card .vm-card-title,
.vm-card .vm-card-copy {
  margin: 0;
}

.vm-card .vm-card-kicker {
  display: block;
  color: #4338ca;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.9;
}

.vm-card .vm-card-title {
  display: block;
  color: #4338ca;
  font-size: 0.94rem;
  font-weight: 600;
  line-height: 1.42;
  letter-spacing: -0.012em;
}

.vm-card .vm-card-copy {
  color: rgba(31, 47, 74, 0.92);
  font-size: 0.9rem;
  line-height: 1.72;
  letter-spacing: 0.01em;
}

.vm-card .vm-card-kicker+.vm-card-title {
  margin-top: 0.72rem;
}

.vm-card .vm-card-title+.vm-card-copy,
.vm-card .vm-card-kicker+.vm-card-copy {
  margin-top: 0.68rem;
}

.vm-card .vm-card-copy+.vm-card-copy {
  margin-top: 0.72rem;
}

@media (max-width: 640px) {
  .vm-card.vm-card {
    padding: 1.18rem;
  }

  .vm-card .vm-card-title {
    font-size: 0.92rem;
    line-height: 1.44;
  }

  .vm-card .vm-card-copy {
    font-size: 0.88rem;
    line-height: 1.76;
    letter-spacing: 0.008em;
  }
}

.vm-note {
  border-left: 2px solid rgba(79, 95, 213, 0.7);
}

/* Extra polish for diagnostic cards inside panels */
.vm-panel .rounded-xl,
.vm-panel .rounded-2xl {
  transition:
    background 420ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 420ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.vm-panel .rounded-xl:hover {
  transform: translate3d(0, -2px, 0);
  border-color: rgba(79, 95, 213, 0.24);
  background: rgba(255, 255, 255, 0.6);
  box-shadow:
    0 16px 34px rgba(15, 23, 42, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

/* Desktop — сдвиг навигации влево на 26px */
@media (min-width: 641px) {
  .site-nav {
    transform: translateX(-26px);
  }
}

/* Mobile */
@media (max-width: 640px) {
  vm-nav {
    height: auto;
    min-height: 14.35rem;
    margin-bottom: 3.85rem;
  }

  vm-nav:not(:defined) {
    min-height: 14.35rem;
  }

  .site-nav-shell {
    min-height: 13.9rem;
    padding: 0.8rem 1rem 1.15rem;

    background:
      linear-gradient(145deg,
        rgba(4, 9, 23, 0.985) 0%,
        rgba(10, 18, 44, 0.965) 38%,
        rgba(17, 34, 82, 0.935) 72%,
        rgba(5, 10, 24, 0.985) 100%);
  }

  .site-nav-shell::before {
    background:
      radial-gradient(circle at 18% 0%,
        rgba(99, 102, 241, 0.42) 0%,
        rgba(99, 102, 241, 0.13) 30%,
        transparent 58%),
      radial-gradient(circle at 84% 4%,
        rgba(56, 189, 248, 0.28) 0%,
        rgba(56, 189, 248, 0.08) 34%,
        transparent 60%);
  }

  .site-nav {
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 100%;
    max-width: 31rem;
    min-height: auto;

    margin-top: 0;
    margin-left: auto;
    margin-right: auto;

    gap: 1rem;
    transform: none;
  }

  .site-nav vm-logo {
    flex: 0 0 auto;
    width: 100%;
    min-width: 11rem;
    max-width: none;
  }

  vm-logo {
    display: flex;
    justify-content: center;
    width: 100%;
    min-width: 11rem;
    padding-top: 0.35rem;
    text-align: center;
  }

  .site-nav-shell vm-logo a {
    justify-content: center;
    width: auto;
    max-width: 100%;
    padding: 0.28rem 0.55rem;
  }

  .site-nav-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    width: 100%;
    gap: 0.5rem;

    padding: 0.62rem;

    border: 1px solid rgba(191, 219, 254, 0.16);
    border-radius: 1.35rem;

    background:
      linear-gradient(135deg,
        rgba(255, 255, 255, 0.075) 0%,
        rgba(147, 197, 253, 0.055) 42%,
        rgba(30, 41, 59, 0.08) 100%);

    box-shadow:
      0 18px 42px rgba(0, 0, 0, 0.18),
      0 0 0 1px rgba(255, 255, 255, 0.055) inset,
      inset 0 1px 0 rgba(255, 255, 255, 0.11);

    backdrop-filter: blur(14px) saturate(1.1);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);

    white-space: normal;
    font-size: 0.78rem;
    letter-spacing: -0.01em;
  }

  .site-nav-links a {
    min-height: 2.38rem;
    padding: 0.52rem 0.42rem;

    border: 1px solid rgba(191, 219, 254, 0.11);
    border-radius: 0.95rem;

    color: rgba(226, 232, 240, 0.78) !important;
    text-align: center;

    background:
      linear-gradient(135deg,
        rgba(255, 255, 255, 0.045) 0%,
        rgba(255, 255, 255, 0.018) 100%) !important;

    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;

    transition:
      color 260ms cubic-bezier(0.16, 1, 0.3, 1),
      border-color 260ms cubic-bezier(0.16, 1, 0.3, 1),
      background 260ms cubic-bezier(0.16, 1, 0.3, 1),
      transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  .site-nav-links a:hover,
  .site-nav-links a:focus-visible {
    color: #ffffff !important;
    border-color: rgba(191, 219, 254, 0.22);

    background:
      linear-gradient(135deg,
        rgba(191, 219, 254, 0.075) 0%,
        rgba(129, 140, 248, 0.06) 100%) !important;

    transform: translate3d(0, -1px, 0);
  }

  .site-nav-links a[aria-current="page"] {
    color: #ffffff !important;
    border-color: rgba(191, 219, 254, 0.28);

    background:
      linear-gradient(135deg,
        rgba(191, 219, 254, 0.12) 0%,
        rgba(99, 102, 241, 0.105) 100%) !important;

    box-shadow:
      0 0 22px rgba(96, 165, 250, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  }

  .site-nav-links a span[aria-hidden="true"] {
    display: none;
  }

  .site-nav-links a:focus-visible {
    outline: 1px solid rgba(191, 219, 254, 0.64);
    outline-offset: 3px;
  }

  .vm-panel,
  .vm-panel-soft {
    border-radius: 1rem;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {

  .reveal,
  .vm-card,
  .vm-panel .rounded-xl,
  .vm-panel .rounded-2xl {
    transition: none;
    transform: none;
  }

  .vm-card:hover,
  .vm-panel .rounded-xl:hover {
    transform: none;
  }
}

/* Premium full-width dark footer */
body {
  padding-bottom: 0 !important;
}

vm-footer {
  display: block;
  width: 100vw;
  margin-top: clamp(4.25rem, 7vw, 6.25rem);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

vm-footer .site-footer {
  position: relative;
  width: 100%;
  margin-top: 0 !important;

  /* Верхний внутренний отступ уменьшен на 25% */
  padding:
    clamp(2.25rem, 4.05vw, 3.56rem) clamp(1.5rem, 4vw, 3rem) clamp(2rem, 4vw, 3rem) !important;

  overflow: hidden;

  color: rgba(226, 232, 240, 0.84);

  border-top: 1px solid rgba(191, 219, 254, 0.18) !important;

  background:
    radial-gradient(circle at 16% 0%,
      rgba(99, 102, 241, 0.28) 0%,
      rgba(99, 102, 241, 0.08) 28%,
      transparent 55%),
    radial-gradient(circle at 84% 8%,
      rgba(56, 189, 248, 0.19) 0%,
      rgba(56, 189, 248, 0.055) 30%,
      transparent 58%),
    linear-gradient(135deg,
      #050816 0%,
      #0b1229 42%,
      #111c3d 72%,
      #060a17 100%);

  box-shadow:
    0 -30px 80px rgba(15, 23, 42, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

vm-footer .site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(255, 255, 255, 0.06) 48%,
      transparent 100%),
    radial-gradient(circle at 50% -20%,
      rgba(191, 219, 254, 0.16) 0%,
      transparent 44%);

  opacity: 0.88;
}

vm-footer .site-footer::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  pointer-events: none;

  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(129, 140, 248, 0.38) 18%,
      rgba(191, 219, 254, 0.7) 50%,
      rgba(56, 189, 248, 0.34) 82%,
      transparent 100%);
}

vm-footer .site-footer-inner {
  position: relative;
  z-index: 1;

  width: min(100%, 64rem);
  margin-left: auto;
  margin-right: auto;
}

vm-footer .site-footer-kicker {
  color: #bfdbfe !important;
  letter-spacing: 0.18em;
}

vm-footer .site-footer-lead {
  color: rgba(248, 250, 252, 0.92) !important;
}

vm-footer .site-footer-copy,
vm-footer .site-footer-bottom {
  color: rgba(203, 213, 225, 0.74) !important;
}

vm-footer .site-footer-label {
  color: rgba(191, 219, 254, 0.64) !important;
  letter-spacing: 0.18em;
}

vm-footer .site-footer-email {
  color: rgba(248, 250, 252, 0.94) !important;
}

vm-footer vm-contact-email a {
  margin-left: 0 !important;
  color: rgba(248, 250, 252, 0.94) !important;
  text-decoration-color: rgba(191, 219, 254, 0.34);
  text-underline-offset: 0.22em;
}

vm-footer vm-contact-email a:hover,
vm-footer vm-contact-email a:focus-visible {
  color: #bfdbfe !important;
}

vm-footer .site-footer-link {
  color: rgba(203, 213, 225, 0.74) !important;
}

vm-footer .site-footer-link:hover,
vm-footer .site-footer-link:focus-visible,
vm-footer .site-footer-link.is-active,
vm-footer .site-footer-link[aria-current="page"] {
  color: #ffffff !important;
}

vm-footer .site-footer-link:focus-visible {
  outline: 1px solid rgba(191, 219, 254, 0.58);
  outline-offset: 5px;
  border-radius: 0.45rem;
}

vm-footer .site-footer-bottom {
  border-top-color: rgba(148, 163, 184, 0.18) !important;
}

@media (max-width: 640px) {
  vm-footer {
    margin-top: 4.5rem;
  }

  vm-footer .site-footer {
    /* Верхний мобильный отступ тоже уменьшен на 25% */
    padding: 2.06rem 1.25rem 2.35rem !important;
  }

  vm-footer .site-footer-grid {
    gap: 2.25rem;
  }

  vm-footer .site-footer-bottom {
    padding-top: 1.35rem;
  }
}
