/* Contact form — inherits every token from assets/site.css. */
.ct-wrap { max-width: 46rem; }
.ct-wrap h1 { font-size: clamp(1.8rem, 4.6vw, 2.7rem); }
.ct-wrap .sub { color: var(--ink-soft); margin: 1rem 0 0; font-size: 1.05rem; max-width: 52ch; }

.ct-form { display: grid; gap: 1.1rem; margin-top: 2.2rem; }
.ct-field { display: grid; gap: .4rem; }
.ct-label { font: 600 .84rem/1 var(--sans); color: var(--ink); }
.ct-label em { font-style: normal; font-weight: 400; color: var(--ink-soft); }
.ct-field input, .ct-field textarea {
  font: 400 1rem/1.5 var(--sans); color: var(--ink); background: #fff;
  border: 1px solid var(--line); border-radius: 10px; padding: .7rem .85rem; width: 100%;
}
.ct-field textarea { resize: vertical; min-height: 8rem; }
.ct-field input:focus-visible, .ct-field textarea:focus-visible {
  outline: 3px solid var(--steady); outline-offset: 2px; border-color: var(--steady);
}

/* Honeypot: off-screen rather than display:none — some bots skip hidden fields. */
.ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ct-submit { justify-self: start; min-width: 12rem; }
.ct-submit[disabled] { opacity: .6; cursor: default; }

.ct-status { margin: 0; min-height: 1.4em; font-size: .92rem; }
.ct-status.is-ok { color: #1c7a4a; }
.ct-status.is-err { color: var(--repair); }

.ct-privacy { margin: .4rem 0 0; font-size: .82rem; color: var(--ink-soft); line-height: 1.6; max-width: 52ch; }
