/* v10: the v04 form structure, using the current page's type, colors and spacing. */
:root{--form-error:#ffb8ad}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,100px);align-items:start}
.contact-direct,.project-form,.field{min-width:0}
.contact-description{font-size:16px;line-height:1.6;max-width:460px;margin-bottom:18px}
.contact-direct .email{display:block;width:fit-content}
.contact-direct .email-button{width:fit-content;margin-top:24px}
.project-form{margin:0;padding-top:4px}
.form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.field-wide{grid-column:1/-1}
.field label{display:block;font-size:14px;line-height:1.4;margin-bottom:9px}
.required-mark{color:var(--muted)}
.field input,.field textarea{display:block;width:100%;min-height:46px;padding:11px 12px;border:1px solid var(--button-line);border-radius:0;background:transparent;color:var(--text);font:inherit;font-size:16px;box-shadow:none}
.field textarea{resize:vertical;min-height:122px;line-height:1.45}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.field-help,.field-error{font-size:13px;line-height:1.5;margin-top:7px;overflow-wrap:anywhere}
.field-help{color:var(--muted)}
.field-error{color:var(--form-error)}
.field-error:empty,.form-result:empty{display:none}
.field [aria-invalid="true"]{border-color:var(--form-error)}
.form-actions{margin-top:22px}
.send-request{min-height:52px;padding:13px 18px;background:transparent;color:var(--text);border:1px solid var(--button-line);display:flex;gap:30px;align-items:center;font-size:15px}
.send-request:disabled{cursor:default;opacity:.55}
.form-result{font-size:14px;line-height:1.55;margin-top:18px;max-width:560px}
@media(max-width:1000px){.contact-layout{gap:32px}.form-fields{grid-template-columns:1fr}.field-wide{grid-column:auto}}
@media(max-width:800px){.contact-layout{grid-template-columns:1fr;gap:28px}.form-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.field-wide{grid-column:1/-1}}
@media(max-width:650px){.contact-description{font-size:15px}.contact-direct .email-button{width:100%;margin-top:22px}.form-fields{grid-template-columns:1fr;gap:18px}.field-wide{grid-column:auto}.send-request{width:100%;justify-content:space-between}}
.project-files{--upload-bg:#ffffff03;--upload-hover:#ffffff0a}
.project-files-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:14px;margin-bottom:18px}
.project-files-heading .field-help{margin:0}
.upload-label{font-size:14px;line-height:1.5;margin-bottom:9px}
.project-files input[type="file"][hidden]{display:none}
.upload-zone{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;min-height:122px;padding:24px 16px;border:1px solid var(--button-line);background:var(--upload-bg);color:var(--text);text-align:center}
.upload-zone strong{font-size:16px;font-weight:500}
.upload-zone span{font-size:14px;color:var(--muted)}
.upload-zone:hover,.upload-zone.is-dragging{background:var(--upload-hover);border-color:var(--text)}
.upload-zone:focus-visible,.remove-file:focus-visible{outline:2px solid var(--text);outline-offset:4px}
.selected-files{list-style:none;padding:0;margin:12px 0 0}
.selected-files:empty,.upload-status:empty{display:none}
.selected-files li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--divider);padding:8px 0;min-width:0}
.selected-files li>span{min-width:0}
.selected-file-name{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.selected-file-size{display:block;font-size:12px;line-height:1.5;color:var(--muted)}
.remove-file{flex:none;min-width:70px;min-height:44px;padding:10px 8px;border:0;background:transparent;color:var(--text);font-size:13px;text-decoration:underline;text-underline-offset:3px}
.upload-divider{display:flex;align-items:center;gap:14px;margin:20px 0;color:var(--muted);font-size:13px}
.upload-divider::before,.upload-divider::after{content:"";flex:1;height:1px;background:var(--divider)}
