.contact{
  padding:clamp(78px,8vw,120px) 0;
  border-top:1px solid var(--line);
  background:var(--white);
}
.contact-inner{
  display:grid;
  grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);
  gap:clamp(42px,8vw,120px);
  align-items:start;
}
.contact-heading h2{
  font-size:clamp(36px,4.2vw,58px);
  line-height:1.02;
  letter-spacing:-.035em;
  margin-bottom:18px;
}
.contact-heading p{
  max-width:360px;
  margin:0;
  color:var(--muted);
  font-size:clamp(16px,1.2vw,18px);
  line-height:1.55;
}
.contact-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px 28px;
  width:100%;
  max-width:860px;
}
.contact-field{
  min-width:0;
  display:grid;
  gap:8px;
}
.contact-field--full{grid-column:1 / -1}
.contact-label{
  color:var(--ink);
  font-family:"IBM Plex Mono",monospace;
  font-size:12px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:.035em;
}
.contact-required{color:var(--accent)}
.contact-control{
  width:100%;
  min-width:0;
  margin:0;
  padding:12px 0 13px;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  outline:0;
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:17px;
  line-height:1.45;
  font-weight:400;
  box-shadow:none;
  transition:border-color .2s ease;
}
.contact-control::placeholder{color:#96918d;opacity:1}
.contact-control:hover{border-bottom-color:#cfc9c3}
.contact-control:focus,
.contact-control:focus-visible{
  border-bottom-color:var(--accent);
  outline:0;
  box-shadow:0 1px 0 var(--accent);
}
textarea.contact-control{min-height:132px;resize:vertical}
.contact-error{
  min-height:0;
  margin:0;
  color:#b93a18;
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  line-height:1.45;
}
.contact-error:empty{display:none}
.contact-control[aria-invalid="true"]{
  border-bottom-color:var(--accent);
  box-shadow:0 1px 0 var(--accent);
}
.contact-captcha{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,220px);
  gap:22px 28px;
  align-items:end;
  padding-top:4px;
}
.contact-captcha[hidden]{display:none !important}
.contact-captcha-copy{min-width:0}
.contact-captcha-label{
  display:block;
  margin-bottom:8px;
  color:var(--ink);
  font-family:"IBM Plex Mono",monospace;
  font-size:12px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:.035em;
}
.contact-captcha-question{
  margin:0;
  color:var(--ink);
  font-size:17px;
  line-height:1.45;
}
.contact-captcha-refresh{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:7px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  line-height:1.4;
  cursor:pointer;
  transition:color .2s ease;
}
.contact-captcha-refresh:hover{color:var(--accent)}
.contact-captcha-refresh:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.contact-captcha-refresh svg{width:13px;height:13px;flex:0 0 auto}
.contact-captcha-field{min-width:0;display:grid;gap:8px}
.contact-submit{
  grid-column:1 / -1;
  justify-self:start;
  min-height:48px;
  margin-top:4px;
  padding:0 22px;
  border:1px solid var(--ink);
  border-radius:10px;
  background:var(--ink);
  color:#fff;
  font:inherit;
  font-size:14px;
  line-height:1;
  font-weight:600;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.contact-submit:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px)}
.contact-submit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.contact-submit:disabled{cursor:wait;opacity:.7;transform:none}
.contact-status{
  grid-column:1 / -1;
  margin:0;
  font-family:"IBM Plex Mono",monospace;
  font-size:12px;
  line-height:1.5;
}
.contact-status.is-success{color:#347545}
.contact-status.is-error{color:#b93a18}
.contact-honeypot{
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
@media (max-width:960px){
  .contact-inner{grid-template-columns:1fr;gap:38px}
  .contact-form{max-width:none}
}
@media (max-width:640px){
  .contact{padding:72px 0 82px}
  .contact-inner{gap:30px}
  .contact-heading h2{font-size:36px}
  .contact-heading p{max-width:34rem}
  .contact-form{grid-template-columns:1fr;gap:21px}
  .contact-field,
  .contact-field--full,
  .contact-submit{grid-column:1}
  .contact-control{font-size:16px}
  .contact-captcha{grid-template-columns:1fr;gap:16px}
  .contact-captcha-question{font-size:16px}
  .contact-submit{width:100%}
}
