/* Contact: the shared white design, with a direct enquiry and local coverage. */
.contact-intro { display:grid; grid-template-columns:1.25fr 1fr; gap:80px; align-items:end; padding-block:104px 88px; }
.contact-intro h1 { font-size:clamp(48px,5.5vw,78px); line-height:1.05; letter-spacing:-.055em; }
.contact-intro > p { max-width:400px; justify-self:end; font-size:16px; line-height:1.8; color:var(--secondary); }
.contact-enquiry { display:grid; grid-template-columns:1fr 1.25fr; gap:100px; border-top:1px solid var(--line); padding-block:64px 88px; }
.interest-choices { border:0; margin:0 0 8px; padding:0; }
.interest-choices legend { font-size:13px; margin-bottom:12px; }
.interest-options { display:flex; flex-wrap:wrap; gap:8px; }
.interest-options label { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:6px 14px; border:1px solid var(--line); border-radius:999px; font-size:13px; cursor:pointer; }
.interest-options input { width:auto; min-width:0; margin:0; padding:0; border:0; border-radius:0; background:transparent; accent-color:var(--ink); }
.contact-details > p { max-width:340px; margin-top:24px; font-size:15px; color:var(--secondary); line-height:1.8; }
.contact-details dl { margin-top:40px; }
.contact-details dl > div { padding-block:20px; border-top:1px solid var(--line); }
.contact-details dt { font-size:12px; color:var(--secondary); margin-bottom:8px; }
.contact-details dd { font-size:16px; overflow-wrap:anywhere; }
.contact-details address { font-style:normal; line-height:1.7; }
.contact-details dd a { display:inline-flex; gap:16px; align-items:center; min-height:32px; }
.contact-details dd svg { width:18px; height:18px; }
.contact-details a:hover { text-decoration:underline; text-underline-offset:4px; }
.contact-form-panel { min-width:0; }
.contact-form-panel > h2 { font-size:30px; letter-spacing:-.035em; }
.contact-form-panel > p { margin-block:16px 32px; color:var(--secondary); font-size:14px; line-height:1.8; max-width:450px; }
.contact-form .checkbox-label { display:flex; align-items:flex-start; gap:12px; font-size:12px; line-height:1.8; }
.contact-form .checkbox-label input { flex-shrink:0; margin-top:4px; width:16px; height:16px; accent-color:var(--ink); }
.contact-form .checkbox-label a { text-decoration:underline; text-underline-offset:3px; }
.contact-form noscript a { text-decoration:underline; }
.contact-location-band { background:var(--surface); }
.contact-location { padding-block:80px; }
.contact-location-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:end; margin-bottom:40px; }
.contact-location-heading > div { max-width:400px; justify-self:end; }
.contact-location-heading p { color:var(--secondary); font-size:15px; line-height:1.8; }
.contact-location-heading .text-link { margin-top:16px; }
.contact-map { height:440px; width:100%; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); isolation:isolate; z-index:0; }
.contact-map > p { max-width:520px; padding:32px; font-size:14px; color:var(--secondary); }
.contact-map:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
.contact-map-caption { font-size:12px; color:var(--secondary); margin-top:16px; }
.contact-map .leaflet-popup-content { font-family:Arial,Helvetica,sans-serif; line-height:1.7; }
.contact-map .contact-hq-marker { background:var(--paper); color:var(--ink); border:1px solid #909090; border-radius:5px; display:flex; justify-content:center; align-items:center; font:600 12px Arial,Helvetica,sans-serif; box-shadow:0 2px 8px #00000015; }
@media(max-width:999px) {
 .navigation { height:76px; } .nav-links,.nav-actions { display:none; } .menu-toggle { display:inline-flex; }
 .contact-intro { padding-block:64px; gap:40px; }
 .contact-enquiry,.contact-location-heading { gap:40px; }
 .contact-form .form-row { grid-template-columns:1fr; }
}
@media(max-width:699px) {
 .navigation { height:72px; }
 .contact-intro,.contact-enquiry,.contact-location-heading { grid-template-columns:1fr; gap:32px; }
 .contact-intro,.contact-enquiry,.contact-location { padding-block:48px; }
 .contact-intro h1 { font-size:clamp(44px,11vw,64px); }
 .contact-intro > p,.contact-location-heading > div { max-width:none; justify-self:start; }
 .contact-details dl { margin-top:28px; }
 .contact-form-panel { border-top:1px solid var(--line); padding-top:32px; }
 .contact-map { height:340px; }
 .footer-top { grid-template-columns:1fr 1fr; gap:32px 24px; } .footer-brand { grid-column:1/-1; }
 .footer-bottom { flex-wrap:wrap; gap:16px; } .footer-bottom > div { flex-wrap:wrap; }
 .modal { padding:28px 24px; } .modal .form-row { grid-template-columns:1fr; }
 input:not([type=checkbox]),textarea { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
