/* ── Форма контактов: ловушка, ошибка, окно после отправки ─────────
   Отдельным файлом, а не в main.css: форма есть только на главной,
   а main.css грузит ещё и страница документа. Цвета берутся из
   переменных main.css — своих оттенков здесь не заводится. */

/* Ловушка для рассыльщиков. Уводится за край, а не прячется display:
   none и не помечается hidden — и то и другое часть ботов пропускает
   намеренно, распознавая приём. Для чтения с экрана скрыта aria. */
.cf-trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Строка ошибки. Пока скрыта, места не занимает: пустой отступ
   над кнопкой читался бы как дыра в вёрстке. */
.cf-err {
  margin: 1rem 0 0;
  font-size: .9375rem;
  line-height: 1.5;
  color: #A33A2B;
}

.cf-err[hidden] { display: none; }

/* ── Окно «Заявка отправлена» ─────────────────────────────────────
   Размеры и поведение те же, что у медиа-окна: подложка на весь
   экран, диалог по центру, крестик в углу. */
.cf-ok {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: var(--pad);
  background: color-mix(in srgb, var(--navy) 92%, black);
  opacity: 0;
  transition: opacity .24s var(--ease);
}

.cf-ok.is-on { opacity: 1; }

.cf-ok__in {
  max-width: 28rem;
  text-align: center;
  color: var(--paper);
  transform: translateY(.75rem);
  transition: transform .24s var(--ease);
}

.cf-ok.is-on .cf-ok__in { transform: none; }

.cf-ok__mark {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  margin: 0 auto 1.5rem;
  border: 1px solid var(--bronze);
  border-radius: 50%;
}

.cf-ok__mark svg {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: var(--bronze);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cf-ok__in h3 {
  margin: 0 0 .75rem;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  line-height: 1.2;
}

.cf-ok__in p {
  margin: 0;
  color: color-mix(in srgb, var(--paper) 66%, transparent);
}

.cf-ok__x {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  font-size: 1.75rem;
  line-height: 1;
  color: var(--paper);
  background: none;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  transition: background .2s var(--ease);
}

.cf-ok__x:hover { background: color-mix(in srgb, var(--paper) 14%, transparent); }

.cf-ok[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  .cf-ok,
  .cf-ok__in { transition: none; }
}
