.contact-form{display:flex;flex-direction:column;gap:var(--space-4)}.contact-form__honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.contact-form__row{display:grid;grid-template-columns:1fr;gap:var(--space-4)}.contact-form__field{display:flex;flex-direction:column;gap:var(--space-2)}.contact-form__field-error{margin:0;font-size:var(--fs-sm);color:var(--color-danger);min-height:1.25em}.contact-form__field-help{margin:0;font-size:var(--fs-sm);color:var(--color-text-subtle);line-height:var(--lh-base)}.contact-form__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text)}.contact-form__required{color:var(--color-danger)}.contact-form__input,.contact-form__select,.contact-form__textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--fs-base);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);line-height:var(--lh-base);transition:border-color var(--duration-fast) var(--easing-standard);box-sizing:border-box}.contact-form__input:focus,.contact-form__select:focus,.contact-form__textarea:focus{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:1px;border-color:var(--color-brand)}.contact-form__input[aria-invalid=true],.contact-form__select[aria-invalid=true],.contact-form__textarea[aria-invalid=true]{border-color:var(--color-danger)}.contact-form__textarea{resize:vertical;min-height:8rem}.contact-form__privacy{display:flex;align-items:flex-start;gap:var(--space-3)}.contact-form__checkbox{width:1rem;height:1rem;flex-shrink:0;margin-top:.15em;accent-color:var(--color-brand);cursor:pointer}.contact-form__checkbox:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.contact-form__privacy-label{font-size:var(--fs-sm);color:var(--color-text-muted);line-height:var(--lh-base);cursor:pointer}.contact-form__link{color:var(--color-brand)}.contact-form__submit{align-self:flex-start;padding:var(--space-3) var(--space-7);background:var(--color-brand);color:var(--color-text-on-brand);border:none;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard)}.contact-form__submit:hover{background:var(--color-brand-dark)}.contact-form__submit:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.contact-form__submit[aria-busy=true]{cursor:wait;opacity:.7}.form-feedback{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);border-radius:var(--radius-xl);text-align:center}.form-feedback--success{background:var(--color-success-bg);border:1px solid var(--color-success)}.form-feedback--error{background:var(--color-danger-bg);border:1px solid var(--color-danger)}.form-feedback--warning{background:var(--color-warning-bg);border:1px solid var(--color-warning)}.form-feedback__icon{font-size:var(--fs-2xl);color:var(--color-success);display:flex;justify-content:center}.form-feedback__heading{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--color-text-heading-navy);line-height:var(--lh-snug)}.form-feedback__heading:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:var(--space-1);border-radius:var(--radius-sm)}.form-feedback__body{margin:0;font-size:var(--fs-base);color:var(--color-text-muted);line-height:var(--lh-base)}.form-feedback__body a{color:var(--color-brand)}.form-feedback__link{display:inline-flex;align-self:center;padding:var(--space-2) var(--space-5);background:var(--color-brand);color:var(--color-text-on-brand);border-radius:var(--radius-lg);font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-decoration:none;margin-top:var(--space-2)}@media(min-width:600px){.contact-form__row{grid-template-columns:1fr 1fr}}@media(max-width:599px){.contact-form--sticky-submit .contact-form__submit{position:sticky;bottom:var(--space-4);z-index:1;align-self:stretch;box-shadow:var(--shadow-md)}:target{scroll-margin-top:var(--space-10)}}
