/* Contact form inspired by the supplied reference. */
.contact-form { position:relative; max-width:820px; margin:42px auto 0; padding:clamp(24px,4vw,50px); background:#fff; color:var(--ink); text-align:left; border-radius:4px; }
.contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 40px; }
.contact-field { display:flex; flex-direction:column; gap:10px; font-size:18px; }
.contact-full { grid-column:1/-1; }
.contact-field input,.contact-field select,.contact-field textarea { width:100%; box-sizing:border-box; border:0; border-bottom:1px solid #637078; border-radius:0; padding:12px 0; background:#fff; color:#0a1720; font:inherit; line-height:1.5; }
.contact-field textarea { resize:vertical; min-height:110px; }
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { outline:2px solid var(--red); outline-offset:4px; border-color:var(--red); }
.contact-submit { margin-top:28px; padding:14px 34px; border:0; background:var(--ink); color:#fff; font:600 18px "Barlow",sans-serif; cursor:pointer; }
.contact-submit:hover { background:var(--red); }
.contact-submit:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.contact-submit:disabled { opacity:.6; cursor:wait; }
.contact-form .contact-status { margin:18px 0 0; font-size:17px; line-height:1.5; }
.contact-status:empty { display:none; }
.contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:600px){ .contact-fields{grid-template-columns:1fr;gap:24px} }

/* Keep the office photo unobstructed, with the form in its own panel below. */
#contact.contact { background:#f3f5f5; color:var(--ink); padding:0 0 80px; }
.contact-photo { display:block; width:100%; max-width:1170px; height:auto; margin:0 auto; }
#contact > .wrap { padding-top:60px; }
@media (max-width:760px) { #contact > .wrap { padding-top:36px; } }
