.contact-page .contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,6.6vw,96px);padding:clamp(120px,11vw,170px) var(--pad) 100px;min-height:calc(100svh - 90px);align-items:center}
.contact-identity{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;position:relative}
.contact-object{position:relative;width:min(100%,640px);aspect-ratio:1;isolation:isolate}
.contact-object canvas,.contact-object img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.contact-object canvas[data-rendered="true"]+img{visibility:hidden}
.contact-object canvas[data-fluid-unavailable="true"]{display:none}
.contact-manifesto{text-align:center;font-size:clamp(28px,3vw,48px);font-weight:300;letter-spacing:-.04em;line-height:1.15;margin-top:-24px;position:relative}
.contact-manifesto em{font-family:Aldgate,Georgia,serif;font-weight:300;display:block;min-height:1.2em}
.contact-motion{margin-top:20px;padding:8px 12px;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.contact-form-wrap{width:100%;max-width:680px;justify-self:start;min-width:0}
.contact-form-wrap .section-label{font-size:14px;letter-spacing:.16em;margin-bottom:24px}
.contact-form-wrap h1{font-size:clamp(48px,5.2vw,80px);font-weight:300;letter-spacing:-.045em;line-height:1.02;max-width:11ch}
.contact-intro{font-size:20px;line-height:1.45;max-width:39ch;margin-top:24px}
.enquiry-form{margin-top:40px}
.contact-field{position:relative;display:block;margin-bottom:26px}
.contact-field label{display:block;font-size:15px;line-height:1.4;margin-bottom:8px}
.contact-field label .optional{color:var(--muted);font-size:13px}
.contact-field input,.contact-field textarea{display:block;width:100%;border:0;border-radius:0;border-bottom:1px solid #a8ada5;background:transparent;color:var(--ink);font:inherit;font-size:19px;line-height:1.5;padding:6px 0 12px;outline-offset:6px}
.contact-field input{height:45px}
.contact-field textarea{min-height:108px;resize:vertical}
.contact-field input:focus,.contact-field textarea:focus{border-bottom-color:var(--ink);outline:2px solid #83ab42}
.contact-field input:user-invalid,.contact-field textarea:user-invalid{border-bottom-color:#a9312e}
.contact-submit{display:inline-flex;justify-content:center;align-items:center;min-height:60px;padding:18px 28px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;transition:background .2s,color .2s}
.contact-submit:hover{background:var(--paper);color:var(--ink)}
.form-hint{font-size:14px;line-height:1.5;color:var(--muted);margin-top:14px}
.contact-direct{font-size:16px;line-height:1.5;margin-top:24px}
.contact-direct a{text-decoration:underline;text-underline-offset:4px}
.form-status{font-size:16px;line-height:1.45;padding:20px 0 0;max-width:42ch}
.form-status:empty{display:none}
.contact-page .client-strip{padding-top:40px}
@media(min-width:1800px){.contact-form-wrap{max-width:760px}.contact-layout{padding-right:8vw!important}.contact-intro{font-size:22px}}
@media(max-width:900px){.contact-page .contact-layout{gap:36px;padding-top:112px}.contact-intro{font-size:18px}.contact-form-wrap h1{font-size:52px}.contact-manifesto{font-size:32px}}
@media(max-width:700px){.contact-page .contact-layout{display:flex;flex-direction:column;gap:48px;padding-top:108px;padding-bottom:64px;align-items:stretch}.contact-form-wrap{order:0;max-width:none}.contact-form-wrap h1{font-size:clamp(46px,12vw,64px);max-width:12ch}.contact-form-wrap .section-label{font-size:12px;margin-bottom:20px}.contact-intro{font-size:18px;margin-top:20px;max-width:34ch}.enquiry-form{margin-top:32px}.contact-field{margin-bottom:24px}.contact-field input,.contact-field textarea{font-size:18px}.contact-submit{width:100%;min-height:58px}.contact-identity{order:1;border-top:1px solid var(--line);padding-top:24px}.contact-object{width:min(100%,360px)}.contact-manifesto{font-size:32px;margin-top:-24px}.contact-motion{margin-top:12px}.contact-page .client-strip{padding-top:10px}}
@media(prefers-reduced-motion:reduce){.contact-submit{transition:none}}
