/* Контактная форма */
.wt-form { display: grid; gap: 16px; font-family: var(--wt-font); color: var(--wt-ink); }
.wt-form__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; }
.wt-field { display: grid; gap: 8px; min-width: 0; }
.wt-field__label { font-size: 14px; font-weight: 700; line-height: 1.3; }
.wt-field__label small { font-weight: 400; color: var(--wt-muted); font-size: 14px; }
.wt-field input, .wt-field textarea, .wt-field select {
	width: 100%; min-height: var(--wt-field-h); padding: 0 16px; box-sizing: border-box;
	border: 1px solid var(--wt-field); border-radius: var(--wt-radius-sm); background: var(--wt-bg); color: var(--wt-ink);
	font-family: var(--wt-font); font-weight: 400; font-size: 16px; line-height: 1.3; /* от 16px — иначе iPhone приближает страницу */
	-webkit-appearance: none; appearance: none;
}
.wt-field input:focus, .wt-field textarea:focus, .wt-field select:focus { outline: none; border-color: var(--wt-primary); box-shadow: 0 0 0 1px var(--wt-primary); } /* фокус — одна рамка 2px в цвет бренда, без второго кольца */
/* Многострочное поле: растёт по тексту (field-sizing, все браузеры с июня 2026), без уголка-растягивателя.
   Старый браузер без field-sizing — обычное поле с уголком, тянется только вниз */
.wt-field textarea { min-height: 96px; padding: 12px 16px; line-height: 1.45; resize: vertical; }
@supports (field-sizing: content) {
	.wt-field textarea { field-sizing: content; max-height: 240px; resize: none; }
}
/* Телефон — по длине номера, цифры одной ширины */
.wt-field--phone input { width: 13em; font-variant-numeric: tabular-nums; letter-spacing: .01em; }

/* Ошибки — под полем, красным, только после нажатия «Отправить» */
.wt-field input.is-invalid { border-color: var(--wt-danger); }
.wt-err { margin: 0; color: var(--wt-danger); font-size: 14px; line-height: 1.3; }

/* Ловушка для ботов */
.wt-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Согласие: зона нажатия 44px, без галочки — подпись краснеет и вздрагивает */
.wt-consent { display: flex; align-items: flex-start; gap: 12px; min-height: var(--wt-tap); font-size: 14px; line-height: 1.45; color: var(--wt-muted); cursor: pointer; }
.wt-consent input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--wt-primary); cursor: pointer; }
.wt-consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.wt-consent.is-err, .wt-consent.is-err a { color: var(--wt-danger); }
.wt-consent.is-err input { outline: 2px solid var(--wt-danger); outline-offset: 2px; border-radius: 3px; }
.wt-consent.is-shake { animation: wt-shake .32s ease-in-out; }
@keyframes wt-shake { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }

.wt-form__submit { min-height: 56px; width: 100%; font-size: 18px; }

/* Успех: вместо формы */
.wt-done { display: grid; gap: 8px; justify-items: start; }
.wt-done:focus, .wt-done:focus-visible { outline: none; box-shadow: none; } /* фокус ставит скрипт — без рамки */
.wt-done__ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: color-mix(in srgb, var(--wt-ok) 12%, transparent); color: var(--wt-ok); }
.wt-done__ico svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.wt-done__title { margin: 4px 0 0; font-size: 20px; font-weight: 700; line-height: 1.25; }
.wt-done__text { margin: 0; color: var(--wt-muted); }
.wt-done__text b { color: var(--wt-ink); white-space: nowrap; }
.wt-linkbtn { padding: 0; border: 0; background: none; color: var(--wt-primary); font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Узкий экран (большинство телефонов): имя и телефон друг под другом */
@media (max-width: 440px) {
	.wt-form__row { grid-template-columns: 1fr; }
	.wt-field--phone input { width: 100%; }
}
