/* Lead form parts shared by the homepage and /contacts (base .form styles live on each page) */
.form .hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form .pair { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 12px; align-items: end; }
.form .pair input { width: 100%; min-width: 0; } /* inputs have an intrinsic min width: without this they spill into the gap */
/* «или»: fixed column, the letters (not the line box) centred between and across the 56px fields.
   Lowercase «или» has no ascenders, so the ink sits .3em below the middle of the line box: shift it back. */
.form .pair .or { width: 32px; height: 56px; padding-top: .6em; box-sizing: border-box; display: flex; align-items: center; justify-content: center; line-height: 1; font-family: var(--mono); font-size: 13px; color: var(--text-3); }
.form .hint { font-size: 13px; font-weight: 400; color: var(--text-3); margin-top: -12px; }
.form .err { color: var(--text); font-size: 13px; font-weight: 400; line-height: 1.5; }
.form .err::before { content: "! "; font-family: var(--mono); color: var(--text-2); }
.form .err a { text-decoration: underline; text-underline-offset: 3px; }
.form button[disabled] { opacity: .6; cursor: progress; }
.form .sent { display: none; }
.form.is-sent > :not(.sent) { display: none !important; }
.form.is-sent .sent { display: block; }
.form .sent h2 { font-family: var(--display); font-weight: 400; font-size: 28px; letter-spacing: -.02em; }
.form .sent p { margin-top: 12px; color: var(--text-2); line-height: 1.6; }
@media (max-width: 520px) {
  .form .pair { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .form .pair .or { width: auto; height: auto; padding: 0; justify-content: flex-start; }
}
