/* ---------- CONTACT ---------- */
.contact-grid{display:grid; gap:48px;}
@media(min-width:860px){.contact-grid{grid-template-columns:1fr 1fr;}}
.field{margin-bottom:20px;}
.field label{display:block; font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin-bottom:8px;}
.field input, .field textarea, .field select{
  width:100%; background:var(--navy-panel); border:1px solid var(--line); color:var(--text);
  padding:13px 14px; font-family:var(--body); font-size:14.5px;
}
.field input:focus, .field textarea:focus, .field select:focus{outline:2px solid var(--amber); outline-offset:1px; border-color:var(--amber);}
.field textarea{resize:vertical; min-height:110px;}

/* Honeypot field — present in the DOM for bots, invisible/unreachable for real users */
.field.hp{position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; margin:0;}

.form-msg{min-height:18px; margin:-8px 0 16px; font-family:var(--mono); font-size:12.5px; letter-spacing:.03em;}
.form-msg.error{color:var(--copper);}

.form-success{
  padding:40px 28px;
  border:1px solid var(--amber);
  text-align:center;
  outline:none; /* focused programmatically for a11y, not via keyboard/mouse */
}
.success-icon{
  display:inline-block;
  font-size:46px;
  line-height:1;
  margin-bottom:16px;
  transform:scale(0);
  opacity:0;
  animation:successPop .55s cubic-bezier(.34,1.56,.64,1) .1s forwards;
}
.success-title{
  font-family:var(--display); font-weight:700; font-size:23px;
  color:var(--amber); margin-bottom:10px;
  opacity:0;
  animation:successFadeUp .45s ease .38s forwards;
}
.success-text{
  color:var(--muted); font-family:var(--body); font-size:14.5px; line-height:1.6;
  max-width:360px; margin:0 auto;
  opacity:0;
  animation:successFadeUp .45s ease .52s forwards;
}
@keyframes successPop{
  0%{transform:scale(0); opacity:0;}
  60%{transform:scale(1.2); opacity:1;}
  100%{transform:scale(1); opacity:1;}
}
@keyframes successFadeUp{
  from{opacity:0; transform:translateY(8px);}
  to{opacity:1; transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  .success-icon, .success-title, .success-text{animation:none; opacity:1; transform:none;}
}

#proposalSubmitBtn{position:relative; min-height:52px; transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;}
#proposalSubmitBtn:hover:not(:disabled){transform:translateY(-1px); box-shadow:0 10px 22px rgba(255,195,0,.15);}
#proposalSubmitBtn:disabled{opacity:.8; cursor:not-allowed;}
#proposalSubmitBtn .btn-label{display:inline-flex; align-items:center; justify-content:center; gap:10px;}
#proposalSubmitBtn .spinner{
  width:15px; height:15px; border-radius:50%; border:2px solid rgba(16,41,83,.25); border-top-color:var(--navy-deep); display:inline-block; animation:spin 15s linear infinite;
}
#proposalSubmitBtn.loading .spinner{border-color:rgba(16,41,83,.25); border-top-color:var(--navy-deep);}
@keyframes spin{to{transform:rotate(360deg);}}

.contact-info li{display:flex; gap:14px; padding:13px 0; border-bottom:1px solid var(--line); font-size:14.5px;}
.contact-info li .k{font-family:var(--mono); color:var(--muted-2); min-width:120px; font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; padding-top:2px;}
.contact-info li .v{color:var(--text);}
