/* ════════════════════════════════════════════════════════════════════
   Подвал. Три группы в строку: бренд, якорная навигация, копирайт.
   На узких экранах — одна колонка по центру (единственный медиазапрос:
   space-between на перенесённых строках выглядит рваным).
   ════════════════════════════════════════════════════════════════════ */

.s-footer {
  position: relative;
  border-top: 1px solid var(--c-line);
  background: var(--c-bg);
}

/* Импульс по линии над подвалом: пробегает и замирает (класс .ms-signal).
   Полоса-бегунок шириной во всю строку, цвет внутри — градиентом, так
   анимация двигает только transform. */
.s-footer__beam {
  position: absolute;
  inset-inline: 0;
  top: -1px;          /* ровно по линии границы: волосяная геометрия */
  height: 1px;
  overflow: hidden;
  pointer-events: none;
}
.s-footer__beam-run {
  position: absolute;
  inset-block: 0;
  left: 0;
  width: 100%;
  background: linear-gradient(
    90deg,
    transparent 0 38%,
    var(--c-accent) 50%,
    transparent 62% 100%);
}

.s-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4) var(--sp-6);
  padding-block: var(--sp-6);
}

/* ── Бренд ─────────────────────────────────────────────────────────── */

.s-footer__brand {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.s-footer__logo {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
  color: var(--c-text);
}
.s-footer__tld {
  color: var(--c-accent);
  transition: text-shadow var(--t-base) var(--ease-out);
}
.s-footer__brand:hover .s-footer__tld {
  text-shadow: 0 0 var(--sp-5) color-mix(in srgb, var(--c-accent) 60%, transparent);
}
.s-footer__tagline {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  color: var(--c-muted);
}

/* ── Навигация ─────────────────────────────────────────────────────── */

.s-footer__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
}
.s-footer__sep { color: var(--c-dim); }

.s-footer__link {
  position: relative;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  transition: color var(--t-base) var(--ease-out);
}
/* Подчёркивание выезжает слева — двигается только transform. */
.s-footer__link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(var(--sp-1) * -1);
  height: 1px;
  background: var(--c-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--t-base) var(--ease-out);
}
.s-footer__link:hover,
.s-footer__link:focus-visible { color: var(--c-text); }
.s-footer__link:hover::after,
.s-footer__link:focus-visible::after { transform: scaleX(1); }

/* ── Копирайт ──────────────────────────────────────────────────────── */

.s-footer__meta {
  color: var(--c-dim);   /* моноширинный — исключение по контрасту разрешено */
  font-variant-numeric: tabular-nums;
}

/* ── Узкие экраны ──────────────────────────────────────────────────── */
/* Ниже ~940px три группы в строку уже не помещаются и space-between
   рвёт перенесённую строку — переходим в одну колонку по центру. */

@media (max-width: 940px) {
  .s-footer__inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--sp-5);
  }
  .s-footer__brand { align-items: center; }
}
