/* ---------- Contact Modal (shared across all pages) ---------- */
.contact-modal-overlay{
  position:fixed; inset:0; background:rgba(11,42,67,0.55);
  display:none; align-items:center; justify-content:center;
  padding:24px; z-index:1000;
}
.contact-modal-overlay.open{display:flex;}
.contact-modal{
  position:relative; background:var(--white); width:100%; max-width:460px;
  padding:36px 30px 30px; border:1px solid var(--line);
  max-height:90vh; overflow-y:auto;
}
.contact-modal::before, .contact-modal::after{content:""; position:absolute; width:14px; height:14px; border:1.4px solid var(--blue-500);}
.contact-modal::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.contact-modal::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}
.contact-modal-close{
  position:absolute; top:14px; right:14px; width:32px; height:32px;
  border:1px solid var(--line); background:none; color:var(--ink-900);
  font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.contact-modal-close:hover{background:var(--paper-100);}
.contact-modal h3{font-size:20px; margin-bottom:6px;}
.contact-modal p.modal-sub{font-size:13.5px; color:var(--charcoal-500); margin:0 0 22px;}
.contact-modal .field{margin-bottom:16px;}
.contact-modal label{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:11.5px;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-700); margin-bottom:6px;
}
.contact-modal input, .contact-modal textarea{
  width:100%; font-family:'IBM Plex Sans', system-ui, sans-serif; font-size:14.5px;
  padding:11px 12px; border:1px solid var(--line); background:var(--paper-50);
  color:var(--charcoal-800); resize:vertical;
}
.contact-modal input:focus, .contact-modal textarea:focus{
  outline:none; border-color:var(--blue-500); background:var(--white);
}
.contact-modal .modal-actions{display:flex; align-items:center; gap:16px; margin-top:6px;}
.contact-modal .modal-note{font-size:12px; color:var(--charcoal-500); margin:10px 0 0;}
.contact-modal button.btn{border:none;}
.contact-form-status{font-size:13px; margin-top:12px; display:none;}
.contact-form-status.show{display:block;}
.contact-form-status.status-success{color:#2E7D4F;}
.contact-form-status.status-error{color:#B3261E;}
.contact-modal button.btn[disabled]{opacity:0.6; cursor:not-allowed;}
.contact-inline-trigger{
  font:inherit; color:inherit; background:none; border:none; padding:0;
  cursor:pointer; text-decoration:none;
}
.contact-inline-trigger:hover{text-decoration:underline;}
