.contact-page { background:var(--paper); }
.contact-hero { min-height:88svh; padding:7.6rem 2.25rem 3rem; display:flex; flex-direction:column; }
.contact-kicker { display:flex; justify-content:space-between; padding-bottom:.8rem; border-bottom:1px solid rgba(241,240,235,.28); font:.67rem var(--mono); }
.contact-hero h1 { margin:auto 0 3rem; font-size:clamp(5rem,13vw,14rem); line-height:.74; letter-spacing:-.1em; }
.contact-hero h1 span { display:block; animation:contact-title .9s cubic-bezier(.2,.75,.15,1) both; }
.contact-hero h1 span:last-child { color:var(--acid); animation-delay:.12s; }
@keyframes contact-title { from { transform:translateY(1.5rem); opacity:0; } }
.contact-hero > p { max-width:50rem; margin:0 0 0 auto; font-size:clamp(1.15rem,2vw,1.8rem); line-height:1.35; letter-spacing:-.03em; }
.enquiry-section { display:grid; grid-template-columns:4fr 8fr; gap:2rem; padding:6rem 2.25rem; }
.enquiry-aside { position:relative; }
.enquiry-aside > h2 { position:sticky; top:7rem; margin:3rem 0; font-size:clamp(2.8rem,5.2vw,6.4rem); line-height:.82; letter-spacing:-.08em; }
.enquiry-aside > h2 em { color:var(--orange); }
.selected-context { margin:3rem 0; padding:1.2rem; background:var(--ink); color:var(--paper); }
.selected-context span,.selected-context small { display:block; font:.6rem var(--mono); }
.selected-context strong { display:block; margin:1rem 0 .4rem; font-size:1.65rem; }
.selected-context button { margin-top:1.4rem; padding:0 0 .25rem; border:0; border-bottom:1px solid; background:none; color:inherit; font:.6rem var(--mono); cursor:pointer; }
.direct-contact { margin-top:4rem; border-top:1px solid; }
.direct-contact > div { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid; font:.59rem var(--mono); }
.direct-contact a { text-align:right; }
#project-form { scroll-margin-top:6.5rem; }
.error-summary { margin-bottom:2rem; padding:1.2rem; background:#b52121; color:white; }
.error-summary strong { font-size:1.1rem; }
.error-summary p { margin:.5rem 0 0; }
.error-summary a { color:inherit; text-decoration:underline; text-underline-offset:.18em; }
.form-group { margin-bottom:5rem; border-top:3px solid; }
.form-group-title { min-height:7rem; display:grid; grid-template-columns:1fr 5fr; align-items:center; border-bottom:1px solid; }
.form-group-title span { font:.7rem var(--mono); }
.form-group-title h3 { margin:0; font-size:clamp(2rem,4vw,4rem); letter-spacing:-.06em; }
.field-grid { display:grid; gap:0; }
.field-grid.two { grid-template-columns:1fr 1fr; }
label:not(.check-grid label):not(.contact-method label),.textarea-field { display:flex; flex-direction:column; justify-content:flex-end; min-height:8.5rem; padding:1.2rem 1rem 1rem 0; border-bottom:1px solid; }
.field-grid.two label:nth-child(odd) { border-right:1px solid; }
.field-grid.two label:nth-child(even) { padding-left:1rem; }
label > span,fieldset legend { margin-bottom:1.3rem; font:.65rem var(--mono); text-transform:uppercase; }
input,textarea,select { width:100%; border:0; border-bottom:1px solid transparent; border-radius:0; outline:0; padding:.35rem 0; background:transparent; color:var(--ink); font:500 1.15rem var(--sans); }
textarea { resize:vertical; line-height:1.45; }
input:focus,textarea:focus,select:focus { border-bottom-color:var(--orange); }
label.has-error,.service-options.has-error { background:rgba(181,33,33,.08); }
label.has-error input,label.has-error textarea { border-bottom-color:#b52121; }
fieldset { margin:0; padding:0; border:0; }
.service-options { padding:2rem 0; border-bottom:1px solid; }
.service-options legend { padding:0; }
.check-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid; border-left:1px solid; }
.check-grid label { position:relative; min-height:5.5rem; display:flex; align-items:center; padding:1rem; border-right:1px solid; border-bottom:1px solid; cursor:pointer; }
.check-grid input,.contact-method input { position:absolute; opacity:0; width:1px; height:1px; }
.check-grid span { margin:0; font-size:.82rem; line-height:1.25; }
.check-grid label:has(input:checked) { background:var(--ink); color:var(--acid); }
.check-grid label:has(input:focus-visible),.contact-method label:has(input:focus-visible) { outline:3px solid var(--orange); outline-offset:-3px; }
.field-error { min-height:1rem; margin:1rem 0 0; color:#9b1717; font:.62rem var(--mono); }
.contact-method { padding:2rem 0; }
.contact-method > div { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid; }
.contact-method label { position:relative; min-height:4.5rem; display:grid; place-items:center; border-right:1px solid; cursor:pointer; }
.contact-method label:last-child { border-right:0; }
.contact-method label:has(input:checked) { background:var(--ink); color:var(--paper); }
.contact-method label span { margin:0; font:.65rem var(--mono); }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.submit-button { width:100%; min-height:7rem; display:flex; justify-content:space-between; align-items:center; padding:0 1.5rem; border:0; background:var(--acid); color:var(--ink); font-size:clamp(1.5rem,3vw,3.5rem); font-weight:800; letter-spacing:-.05em; cursor:pointer; }
.submit-button b { font-size:.8em; transition:transform .25s ease; }
.submit-button:hover b { transform:translate(.3rem,-.3rem); }
.submit-button:disabled { opacity:.65; cursor:wait; }
.form-note { font:.58rem var(--mono); text-transform:uppercase; }
.after-enquiry { padding:6rem 2.25rem; }
.after-enquiry h2,.contact-routes h2 { margin:4rem 0; font-size:clamp(4rem,9vw,10rem); line-height:.8; letter-spacing:-.09em; }
.after-enquiry h2 em { color:var(--acid); }
.next-steps { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(241,240,235,.35); border-left:1px solid rgba(241,240,235,.35); }
.next-steps article { min-height:20rem; display:flex; flex-direction:column; padding:1.2rem; border-right:1px solid rgba(241,240,235,.35); border-bottom:1px solid rgba(241,240,235,.35); }
.next-steps span { font:.6rem var(--mono); }
.next-steps h3 { margin:auto 0 1rem; font-size:1.5rem; line-height:.95; letter-spacing:-.04em; }
.next-steps p { margin:0; font-size:.9rem; line-height:1.45; }
.contact-routes { padding:6rem 2.25rem; }
.contact-routes nav { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid; border-left:1px solid; }
.contact-routes nav a { min-height:8rem; display:flex; align-items:center; justify-content:center; border-right:1px solid; border-bottom:1px solid; font-size:1rem; font-weight:700; text-transform:uppercase; }
.contact-routes nav a:hover { background:var(--ink); color:var(--acid); }
.form-success { position:fixed; z-index:200; inset:0; display:grid; place-items:center; padding:2rem; background:var(--acid); color:var(--ink); }
.form-success[hidden] { display:none; }
.form-success > button { position:absolute; top:1.5rem; right:1.5rem; border:0; border-bottom:1px solid; background:none; font:.65rem var(--mono); cursor:pointer; }
.form-success > div { max-width:70rem; }
.form-success span { font:.65rem var(--mono); }
.form-success h2 { margin:2rem 0; font-size:clamp(5rem,14vw,14rem); line-height:.75; letter-spacing:-.1em; }
.form-success p { max-width:40rem; font-size:1.3rem; line-height:1.4; }
.form-success a { display:inline-block; margin-top:2rem; border-bottom:1px solid; font:.7rem var(--mono); }

@media (max-width:900px) {
  .contact-hero { min-height:80svh; padding:6.8rem 1rem 1.5rem; }
  .contact-hero h1 { font-size:clamp(4rem,19vw,7rem); }
  .contact-hero > p { margin-left:0; }
  .enquiry-section { grid-template-columns:1fr; padding:5rem 1rem; }
  .enquiry-aside > h2 { position:static; font-size:3.7rem; }
  .direct-contact { margin-bottom:4rem; }
  .form-group-title { grid-template-columns:2rem 1fr; }
  .field-grid.two { grid-template-columns:1fr; }
  .field-grid.two label:nth-child(odd) { border-right:0; }
  .field-grid.two label:nth-child(even) { padding-left:0; }
  label:not(.check-grid label):not(.contact-method label),.textarea-field { min-height:7.5rem; }
  .check-grid { grid-template-columns:1fr 1fr; }
  .check-grid label { min-height:4.8rem; }
  .submit-button { min-height:5.5rem; }
  .after-enquiry,.contact-routes { padding:5rem 1rem; }
  .after-enquiry h2,.contact-routes h2 { font-size:clamp(3.8rem,17vw,7rem); }
  .next-steps { grid-template-columns:1fr 1fr; }
  .next-steps article { min-height:14rem; }
  .contact-routes nav { grid-template-columns:1fr; }
  .contact-routes nav a { min-height:5rem; }
}

@media (max-width:520px) {
  .check-grid { grid-template-columns:1fr; }
  .contact-method > div { grid-template-columns:1fr; }
  .contact-method label { border-right:0; border-bottom:1px solid; }
  .contact-method label:last-child { border-bottom:0; }
  .next-steps { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .contact-hero h1 span,.submit-button b { animation:none; transition:none; }
}
