/* anchors.css — точные якорные переходы и подсветка формы (тикет N3, G70).
   JS-часть — js/anchors.js. */

/* Нативные прыжки (reduced-motion, переход с подстраницы с hash, без JS):
   цель приземляется под шапкой, а не под её краем */
[id][data-section],
#booking {
  scroll-margin-top: calc(var(--header-height) + 8px);
}

/* Во время замера позиций js/anchors.js на мгновение снимает sticky у колоды,
   чтобы получить позицию секции В ПОТОКЕ (sticky-цель «уже стоит» выше). */
html.anchors-measure [data-stack] { position: static !important; }

/* Фокус после перехода переносится на секцию (tabindex=-1) — обводку
   на всю секцию не рисуем, клавиатурный порядок при этом сохраняется */
section[data-section]:focus { outline: none; }

/* Кратковременная золотая подсветка рамки формы после CTA шапки.
   Анимируется только opacity (правило motion-политики темы). */
.booking-form { position: relative; }
.booking-form.booking-form--flash::after {
  content: '';
  position: absolute;
  inset: -10px;
  pointer-events: none;
  border: 1px solid var(--color-accent-primary);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--color-accent-primary) 45%, transparent),
    inset 0 0 18px color-mix(in srgb, var(--color-accent-primary) 18%, transparent);
  opacity: 0;
  animation: booking-flash 1.6s var(--motion-ease) both;
}
@keyframes booking-flash {
  0%   { opacity: 0; }
  12%  { opacity: 1; }
  65%  { opacity: 1; }
  100% { opacity: 0; }
}

/* Без движения подтверждение остаётся, просто перестаёт мигать.
   Раньше глобальный сброс base.css сжимал анимацию до 0.01ms, и рамка
   мгновенно доезжала до последнего кадра (opacity: 0) — подтверждения
   перехода к форме не было вовсе. Теперь анимации нет, рамка видима
   статично, а снимает её js/anchors.js по таймеру (1.5 секунды). */
@media (prefers-reduced-motion: reduce) {
  .booking-form.booking-form--flash::after {
    animation: none;
    opacity: 1;
  }
}
