/* ==========================================================
   CONTACT
   Contact details and enquiry form.
   ========================================================== */

.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start;}
.contact-grid h2{font-size:clamp(30px,4vw,46px);font-weight:600;max-width:14ch;margin-bottom:20px;}
.contact-grid .lead{color:var(--muted);max-width:44ch;margin-bottom:32px;}
.details{display:grid;gap:18px;}
.details div{display:grid;gap:2px;}
.details dt{color:var(--muted);font-size:15px;}
.details dd{margin:0;font:500 19px/1.3 var(--font-display);}
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(24px,4vw,44px);display:grid;gap:20px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.field{display:grid;gap:8px;}
.field label{font:500 15px/1.2 var(--font-display);}
.field input,.field select,.field textarea{font:inherit;font-size:17px;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--r-s);padding:14px 14px;width:100%;}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 28%,transparent);}
.field .err{color:#D6334A;font-size:15px;min-height:0;}
:root[data-theme="dark"] .field .err{color:#FF8FA0;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .field .err{color:#FF8FA0;}}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#D6334A;}
.form .btn{justify-self:start;}
.sent{display:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(28px,4vw,48px);gap:12px;}
.sent.show{display:grid;}
.sent h3{font-size:26px;font-weight:600;}
.sent p{color:var(--muted);}

@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .row2{grid-template-columns:1fr;}
}
