.contact-page-grid { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(15rem,1fr); gap: clamp(2rem,6vw,6rem); padding-block: 3rem; align-items: start; }
.contact-page-grid h2 { font-size: 1.9rem; }
.form-intro { margin: 0 0 2rem; max-width: 55ch; color: #52656a; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.field { min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.field label, .draft-result label { display: block; margin-bottom: .6rem; font-size: 1rem; }
.field label span { font-size: .875rem; color: #52656a; }
.field input, .field select, .field textarea, .draft-result textarea { display: block; width: 100%; max-width: 100%; min-height: 48px; padding: .85rem; border: 1px solid #8c9ea6; border-radius: 0; background: #fbfaf6; color: #084160; font: inherit; line-height: 1.5; }
.field textarea, .draft-result textarea { resize: vertical; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible, .draft-result textarea:focus-visible { outline: 2px solid #084160; outline-offset: 2px; }
.field [aria-invalid="true"] { border-color: #a62b22; }
.field-help, .form-privacy { font-size: .875rem; line-height: 1.6; color: #52656a; }
.form-privacy { max-width: 58ch; }
.field-error { color: #992b22; font-size: .875rem; margin: .5rem 0 0; }
.form-errors { padding: 1rem 1.25rem; margin-bottom: 1.5rem; border: 1px solid #a62b22; background: #fff9f6; }
.form-errors p { margin-top: 0; }
.form-errors a { color: #992b22; text-underline-offset: .2em; }
.form-errors ul { padding-left: 1.25rem; margin-bottom: 0; }
#send-enquiry { margin-top: 1rem; }
#send-enquiry:disabled { opacity: .55; cursor: default; }
.office-details { border-top: 1px solid #8c9ea6; padding-top: 1.5rem; }
.office-details > a { display: block; width: fit-content; padding-block: .5rem; overflow-wrap: anywhere; text-underline-offset: .2em; }
.office-details address { margin: 2rem 0 1rem; font-style: normal; line-height: 1.75; color: #52656a; }
.office-details > p { margin: 2rem 0 .5rem; }
.draft-result { margin-top: 2rem; padding: 1.5rem; border: 1px solid #8c9ea6; background: #e7eff3; }
.draft-result p { line-height: 1.6; }
.draft-result details { margin-top: 1.5rem; }
.draft-result summary { cursor: pointer; padding-block: .5rem; }
.draft-result textarea { margin-bottom: 1rem; }
[hidden] { display: none !important; }
@media (max-width: 58rem) { .contact-page-grid { grid-template-columns: 1fr; } .office-details { max-width: 36rem; } }
@media (max-width: 38rem) { .form-grid { grid-template-columns: 1fr; } }
