/* Contact composition: short, practical, and scoped away from other page layouts. */
.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:110px;align-items:start}
.contact-grid>h1,.contact-grid>h2{max-width:10ch}
.contact-grid h1{font-size:clamp(3.4rem,6vw,5.8rem);line-height:1.02;letter-spacing:-.04em}
.contact-grid h2{font-size:clamp(2.25rem,3.6vw,3.25rem);line-height:1.13}
.contact-prose{max-width:65ch}
.contact-prose p{line-height:1.8}
.contact-intro{padding:68px 0 86px;background:var(--teal);color:var(--ivory)}
.contact-intro .contact-prose{color:#E2E3D9}
.contact-intro .action-buttons{margin-top:30px}
.contact-intro .wp-block-button__link:hover{background:var(--ivory);color:var(--deep)}
.contact-intro a:focus-visible{outline-color:var(--sand)}
.contact-email{padding:84px 0 88px}
.contact-email h2,.contact-location h2{color:var(--teal)}
.contact-email-link{overflow-wrap:anywhere}
.contact-location{padding:82px 0 90px;background:var(--sand)}
.contact-address{font:inherit;color:inherit;margin-block:4px 26px}
@media(max-width:1100px){.contact-grid{gap:58px;grid-template-columns:.78fr 1.22fr}}
@media(max-width:760px){
.contact-grid{grid-template-columns:1fr;gap:10px}
.contact-grid>h1,.contact-grid>h2{max-width:16ch}
.contact-grid h1{font-size:3.25rem;line-height:1.05}
.contact-grid h2{font-size:2.3rem}
.contact-intro{padding:42px 0 58px}.contact-intro .contact-grid{gap:20px}.contact-intro .action-buttons{margin-top:26px}
.contact-email,.contact-location{padding:56px 0 62px}
}
@media(max-width:360px){.contact-grid h1{font-size:2.85rem}.contact-email-link{font-size:.9375rem}}
/* Stacked, labelled enquiry fields use the established reading column and palette. */
.contact-email .wpcf7{margin:28px 0}
.contact-email .wpcf7 label{display:block;font-size:1rem;font-weight:600;line-height:1.5}
.contact-email .wpcf7 label .field-note{font-weight:400}
.contact-email .wpcf7 input:not([type=submit]),.contact-email .wpcf7 textarea{display:block;width:100%;max-width:100%;margin-top:8px;padding:12px 14px;border:1px solid var(--muted);border-radius:8px;background:var(--ivory);color:var(--ink);font:1rem/1.5 var(--sans);min-height:50px;box-sizing:border-box}
.contact-email .wpcf7 textarea{resize:vertical;min-height:160px}
.contact-email .wpcf7 input[type=submit]{appearance:none;cursor:pointer;min-height:52px;padding:13px 23px;background:var(--teal);color:var(--ivory);border:1px solid transparent;border-radius:12px;font:600 .9375rem/1.4 var(--sans)}
.contact-email .wpcf7 input[type=submit]:hover{background:var(--deep)}
.contact-email .wpcf7 input[type=submit]:disabled{cursor:wait;opacity:.65}
.contact-email .wpcf7 .wpcf7-not-valid-tip{color:#8a302b;font-size:.9375rem;line-height:1.5;margin-top:8px}
.contact-email .wpcf7 [aria-invalid=true]{border-color:#8a302b}
.contact-email .wpcf7 form .wpcf7-response-output{margin:24px 0 0;padding:16px 18px;border:1px solid var(--teal);border-radius:8px;overflow-wrap:anywhere;line-height:1.6}
.contact-email .wpcf7 form.invalid .wpcf7-response-output,.contact-email .wpcf7 form.failed .wpcf7-response-output,.contact-email .wpcf7 form.spam .wpcf7-response-output{border-color:#8a302b;color:#8a302b}
.contact-email .contact-local-notice{font-size:.875rem;color:var(--teal);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.contact-email .contact-trap{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
