/* ---------- contact ---------- */
.talk { display: inline-block; margin-top: var(--s-6); color: var(--text); font-size: calc(clamp(3.5rem, 1.5rem + 8vw, 10rem) * var(--display-scale)); line-height: .86; transition: color var(--dur); }
.talk:hover { color: var(--hover-light); }
.contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-8); align-items: start; padding-block: var(--s-7) var(--s-10); }
.contact__side { display: grid; gap: var(--s-6); align-content: start; }
.lede { margin: 0; max-width: 34ch; font-size: var(--fs-lg); color: var(--text); text-wrap: pretty; }
@media (max-width: 900px) { .contact { grid-template-columns: 1fr; gap: var(--s-7); } }

/* email link + copy button: navy sweeps in on hover */
.mail { display: flex; flex-wrap: wrap; align-items: stretch; gap: var(--s-3); }
.mail__link, .mail__copy { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; gap: var(--s-3); min-height: 56px; padding: 0 var(--s-5); border: var(--rule); color: var(--text); background: none; cursor: pointer; transition: color 420ms var(--ease-out); }
.mail__link::before, .mail__copy::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--accent); transform: scaleX(0); transform-origin: right; transition: transform 420ms var(--ease-out); }
.mail__link:hover, .mail__link:focus-visible, .mail__copy:hover, .mail__copy:focus-visible { color: var(--on-hover-light); border-color: var(--hover-light); }
.mail__link:hover::before, .mail__link:focus-visible::before, .mail__copy:hover::before, .mail__copy:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.mail__link { font-family: var(--font-body); font-weight: 500; font-size: var(--fs-lg); letter-spacing: -0.01em; }
.mail__copy { font: inherit; justify-content: center; width: 56px; padding: 0; }
.mail__copy .icon { width: 22px; height: 22px; }
@media (max-width: 640px) { .mail__link { padding: 0 var(--s-4); } }

/* quick form */
.form { display: grid; gap: var(--s-5); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); }
.field { display: grid; gap: var(--s-2); }
.field label { font-family: var(--font-body); font-weight: 600; font-size: var(--fs-xs); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text); }
.field__opt { color: var(--muted); font-weight: 500; }
.field input, .field textarea {
  width: 100%; min-height: 48px; padding: var(--s-3) 0;
  background: transparent; border: 0; border-bottom: var(--rule); border-radius: 0;
  font-size: var(--fs-md);
  transition: border-color var(--dur-fast);
}
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--accent); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; } /* honeypot for bots */
/* Turnstile: takes no space unless Cloudflare asks the visitor to click */
.form__check:not(.is-shown) { height: 0; overflow: hidden; margin-top: calc(-1 * var(--s-5)); }
.form__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--s-4); }
.form__status { order: -1; margin: 0 auto 0 0; color: var(--muted); }
.form__status a { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.form.is-sent .field, .form.is-sent .btn, .form.is-sent .form__check { display: none; }
.form.is-sent .form__status { color: var(--text); font-size: var(--fs-lg); }
@media (max-width: 900px) { .form__row { grid-template-columns: 1fr; } }
