/* Contact: shared IFR colours, typography and spacing. */
.contact-page :is(h1,h2,h3,p) { margin:0; }
.contact-hero { padding-block:64px; background:var(--navy); color:#fff; }
.contact-hero h1 { font-size:clamp(64px,5.6vw,92px); line-height:1.01; letter-spacing:-.055em; }
.contact-hero h1 span { color:var(--yellow); }
.contact-hero-intro { max-width:700px; margin-top:24px!important; color:#c7ccd6; font-size:1.125rem; }
.contact-section { padding-block:var(--section-padding); }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; grid-template-rows:auto 1fr; grid-template-areas:"details form" "photo form"; gap:32px var(--layout-gap); align-items:start; }
.contact-details { grid-area:details; }
.contact-photo { grid-area:photo; position:relative; align-self:stretch; min-height:300px; margin:0; overflow:hidden; }
.contact-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
.contact-details h2 { max-width:400px; font-size:var(--type-feature-title); line-height:1.08; letter-spacing:-.04em; }
.contact-details > p { margin-top:24px; max-width:390px; color:var(--muted); }
.contact-email { margin-top:32px; padding-block:24px; border-block:1px solid var(--border); }
.contact-email > span { display:block; margin-bottom:8px; color:var(--muted); font-size:var(--type-label); }
.contact-email a { display:inline-flex; align-items:center; gap:14px; color:var(--navy); font-size:1.375rem; font-weight:800; text-decoration:none; overflow-wrap:anywhere; }
.contact-email a:hover { text-decoration:underline; text-underline-offset:5px; }
.contact-page svg { width:20px; height:20px; flex-shrink:0; }
.contact-note { margin-top:32px; max-width:390px; }
.contact-note h3 { font-size:var(--type-subheading); }
.contact-note p { margin-top:12px; color:var(--muted); }
.contact-form-panel { grid-area:form; background:#fff; padding:40px; border:1px solid var(--border); }
.contact-form-panel h2 { font-size:2rem; line-height:1.15; letter-spacing:-.03em; }
.contact-form-intro { margin-top:12px!important; color:var(--muted); }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:28px; }
.contact-fields label { display:block; min-width:0; font-weight:800; font-size:.9375rem; }
.contact-fields label span { font-weight:400; color:var(--muted); font-size:.8125rem; }
.contact-field-wide { grid-column:1/-1; }
.contact-fields :is(input,select,textarea) { display:block; width:100%; margin-top:8px; padding:12px 14px; min-height:48px; border:1px solid #b9bdc6; border-radius:0; background-color:#fff; color:var(--navy); font:inherit; font-weight:400; }
.contact-fields select { padding-right:42px; }
.contact-fields textarea { resize:vertical; min-height:150px; }
.contact-fields :is(input,select,textarea):focus-visible { outline:2px solid var(--navy); outline-offset:2px; }
.contact-form-privacy { margin-block:20px!important; font-size:.8125rem; color:var(--muted); }
.contact-form-panel .button { display:inline-flex; align-items:center; gap:12px; border:0; cursor:pointer; }
.contact-form-panel .button:disabled { opacity:.55; cursor:not-allowed; }
.contact-status { margin-top:16px!important; font-size:.875rem; color:var(--muted); }
.contact-status[data-state="error"] { color:#a32626; }
.contact-status[data-state="success"] { color:#246141; font-weight:700; }
.contact-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:900px) { .contact-grid { grid-template-columns:1fr; grid-template-rows:auto auto auto; grid-template-areas:"details" "form" "photo"; gap:var(--layout-gap); } .contact-details h2,.contact-details > p,.contact-note { max-width:600px; } .contact-photo { min-height:0; aspect-ratio:3/2; } }
@media(max-width:640px) { .contact-hero { padding-block:48px; } .contact-hero h1 { font-size:clamp(44px,11vw,64px); } .contact-hero-intro { font-size:1rem; } .contact-form-panel { padding:24px 20px; } .contact-fields { grid-template-columns:1fr; gap:20px; } .contact-form-panel h2 { font-size:1.75rem; } .contact-details h2 { font-size:var(--type-feature-title); } }
