.contact-form{gap:var(--space-xl);width:100%;max-width:40rem;padding:clamp(var(--space-l), 4vw, var(--space-2xl));border-radius:var(--radius-base);margin-inline:auto;display:grid}.contact-form--wide{max-width:60rem}.contact-form .form-title{text-align:center}.contact-form .form-grid,.contact-form .repeater-fields{gap:var(--space-l) var(--space-m);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.contact-form .field{align-content:start;gap:var(--space-xs);grid-column:1/-1;min-width:0;display:grid}.contact-form .field--half{grid-column:span 2}.contact-form .field--quarter{grid-column:span 1}@media (width<=639px){.contact-form .field--half,.contact-form .field--quarter{grid-column:1/-1}}@media (width>=640px) and (width<=899px){.contact-form .field--quarter{grid-column:span 2}}.contact-form .field-label{color:var(--color-ink-primary)}.contact-form .required-mark{color:var(--color-danger-text)}.contact-form .control{border:1.5px solid var(--color-divider-strong);border-radius:var(--radius-base);background:var(--color-surface-raised);width:100%;min-height:3.25rem;color:var(--color-ink-primary);font:var(--type-p);transition:border-color var(--duration-short) var(--ease-standard), box-shadow var(--duration-short) var(--ease-standard);padding:.8rem 1rem;font-size:1.0625rem}.contact-form .control::placeholder{color:var(--color-ink-muted);opacity:.7}.contact-form textarea.control{resize:vertical}.contact-form .control:hover{border-color:var(--color-accent-primary)}.contact-form .control:focus-visible{border-color:var(--color-accent-primary);outline:2px solid var(--color-focus-ring);outline-offset:2px}.contact-form .control[aria-invalid=true],.contact-form .dropzone:has([aria-invalid=true]){border-color:var(--color-danger)}.contact-form .field-error{min-height:0;color:var(--color-danger-text);font:var(--type-p);font-size:.9375rem}.contact-form .field-error:empty{display:none}.contact-form .check-label{align-items:start;gap:var(--space-s);cursor:pointer;grid-template-columns:auto 1fr;display:grid;position:relative}.contact-form .check-input{opacity:0;width:1.5rem;height:1.5rem;margin:0;position:absolute}.contact-form .check-box{border:1.5px solid var(--color-divider-strong);border-radius:var(--radius-base);background:var(--color-surface-raised);width:1.5rem;height:1.5rem;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);place-items:center;margin-top:.15rem;display:grid}.contact-form .check-box:after{content:"";border-left:2px solid var(--color-ink-on-accent);border-bottom:2px solid var(--color-ink-on-accent);opacity:0;width:.7rem;height:.4rem;margin-top:-.15rem;transform:rotate(-45deg)}.contact-form .check-input:checked+.check-box{border-color:var(--color-accent-primary);background:var(--color-accent-primary)}.contact-form .check-input:checked+.check-box:after{opacity:1}.contact-form .check-input:focus-visible+.check-box{outline:2px solid var(--color-focus-ring);outline-offset:3px}.contact-form .check-input[aria-invalid=true]+.check-box{border-color:var(--color-danger)}.contact-form .check-text{font:var(--type-p);color:var(--color-ink-primary);font-size:1rem}.contact-form .check-text a{color:var(--color-accent-text)}.contact-form .dropzone{justify-items:center;gap:var(--space-xs);padding:var(--space-xl) var(--space-l);border:1.5px dashed var(--color-divider-strong);border-radius:var(--radius-base);background:var(--color-surface-raised);color:var(--color-ink-primary);text-align:center;transition:border-color var(--duration-short) var(--ease-standard), background-color var(--duration-short) var(--ease-standard);display:grid;position:relative}.contact-form .dropzone:hover{border-color:var(--color-accent-primary);background:var(--color-surface-tint)}.contact-form .dropzone:has(.dropzone-input:focus-visible){border-color:var(--color-accent-primary);outline:2px solid var(--color-focus-ring);outline-offset:2px}.contact-form .dropzone-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.contact-form .dropzone-icon{width:3rem;height:3rem;color:var(--color-accent-primary)}.contact-form .dropzone-title{font:var(--type-p);font-size:1.0625rem}.contact-form .dropzone-choose{color:var(--color-accent-text);text-underline-offset:.2em;text-decoration:underline}.contact-form .dropzone-hint{color:var(--color-ink-muted);font:var(--type-p);font-size:.9375rem}.contact-form .file-list{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.contact-form .file-list:empty{display:none}.contact-form .file-list li{justify-content:space-between;align-items:center;gap:var(--space-s);padding:var(--space-xs) var(--space-s);border:var(--stroke-rule) solid var(--color-divider-strong);border-radius:var(--radius-base);background:var(--color-surface-raised);font:var(--type-p);font-size:.9375rem;display:flex}.contact-form .file-name{overflow-wrap:anywhere;min-width:0}.contact-form .file-remove,.contact-form .repeater-button{border:1.5px solid var(--color-divider-strong);border-radius:var(--radius-base);background:var(--color-surface-raised);width:2.25rem;height:2.25rem;color:var(--color-ink-primary);font:var(--type-p-title);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex:none;place-items:center;display:grid}.contact-form .file-remove:hover,.contact-form .repeater-button:hover:not(:disabled){border-color:var(--color-accent-primary);background:var(--color-accent-primary);color:var(--color-ink-on-accent)}.contact-form .repeater-button:disabled{cursor:not-allowed;opacity:.45}.contact-form .repeater{gap:var(--space-m)}.contact-form .repeater-rows{gap:var(--space-l);display:grid}.contact-form .repeater-actions{justify-content:flex-end;gap:var(--space-xs);display:flex}.contact-form .progress{gap:var(--space-xs);display:grid}.contact-form .progress-label{color:var(--color-ink-muted)}.contact-form .progress-track{border-radius:var(--radius-base);background:var(--color-divider);height:.375rem;overflow:hidden}.contact-form .progress-fill{width:var(--progress,0%);border-radius:var(--radius-base);background:var(--color-accent-primary);height:100%;transition:width var(--duration-medium) var(--ease-reveal);display:block}.contact-form .step{gap:var(--space-xl);display:grid}.contact-form .step-head{gap:var(--space-m);text-align:center;display:grid}.contact-form .step-title{font-size:clamp(1.5rem,1.6vw + 1rem,2.5rem)}.contact-form .step-title:focus-visible{outline-offset:6px}.contact-form .step-lead{max-width:44ch;color:var(--color-ink-muted);margin-inline:auto}.contact-form .form-actions{justify-content:center;gap:var(--space-m);flex-wrap:wrap;display:flex}.contact-form .form-actions .button:disabled{cursor:not-allowed;opacity:.55}@media (prefers-reduced-motion:reduce){.contact-form .progress-fill{transition:none}}.contact-form [hidden]{display:none}.contact-form .hp{width:1px;height:1px;position:absolute;inset-inline-start:-10000px;overflow:hidden}.contact-form .form-error{color:var(--color-danger-text);font:var(--type-p);text-align:center}.contact-form .form-captcha{justify-content:center;display:flex}.contact-form .form-sent{gap:var(--space-m);text-align:center;display:grid}.contact-form .form-sent:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:8px}.contact-form .form-sent[hidden],.contact-form .form-captcha[hidden]{display:none}.contact-form .form-note{color:var(--color-ink-muted);font:var(--type-p);text-align:center}
