/* The same contact form is shared by the homepage, cases and contact page. */
.contact-modal{position:fixed;inset:0 0 0 auto;border:0;padding:0;margin:0;width:min(660px,100%);max-width:100%;height:100%;max-height:100%;background:#f1f1f1;color:#090909;overflow:auto}
.contact-modal:not([open]){display:none}.contact-modal::backdrop{background:#000a}.contact-panel{position:relative;padding:64px clamp(24px,4vw,56px) 40px}.contact-close{position:absolute;right:18px;top:12px;border:0;background:transparent;color:inherit;min-width:44px;min-height:44px;font-size:2rem;cursor:pointer}.contact-panel h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;letter-spacing:-.04em;margin:0 0 20px}.contact-panel>p{font-size:1rem}.contact-form{margin-top:28px}.contact-form fieldset{border:0;padding:0;margin:0;min-width:0}.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.contact-form label{display:flex;flex-direction:column;gap:8px;font-size:.9375rem;font-weight:700}.contact-label{display:block;line-height:1.5}.contact-label .contact-note{display:inline;font-weight:400;white-space:nowrap}.contact-form input,.contact-form select,.contact-form textarea{box-sizing:border-box;width:100%;min-width:0;padding:13px;border:1px solid #777;border-radius:0;background:#fff;color:#090909;font:inherit;font-size:1rem;line-height:1.4}.contact-form textarea{min-height:130px;resize:vertical}.contact-full{grid-column:1/-1}.contact-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.contact-form .contact-submit{width:100%;cursor:pointer}.contact-form .contact-submit:disabled{opacity:.55;cursor:not-allowed}.contact-note{font-size:.875rem;font-weight:400;line-height:1.5}.contact-form>p{margin:14px 0 0}.contact-note a{text-decoration:underline;text-underline-offset:3px}.contact-status:empty{display:none}.contact-status[data-state="error"]{color:#a00032}.contact-status[data-state="success"]{color:#22532d}.contact-challenge{min-width:0;overflow:hidden}.contact-challenge:empty{display:none}@media(max-width:620px){.contact-fields{grid-template-columns:minmax(0,1fr)}.contact-full{grid-column:auto}.contact-panel{padding-top:60px}}

/* Keep paired captions and controls aligned, including optional labels. */
.contact-fields>label{min-width:0}.contact-form label>input,.contact-form label>select{height:3.25rem;margin-top:auto}.contact-form label>textarea{margin-top:auto}

/* A restrained focus state uses the existing field border. */
.contact-form :is(input,select,textarea):focus{outline:none;box-shadow:none;border-color:var(--ink,#090909)}
.contact-form :is(button,a):focus-visible{outline:2px solid currentColor;outline-offset:3px}
