/* Shared quote-form components */
.form-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

.file-field { position: relative; }
.file-input { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.file-dropzone { min-height: 8.25rem; display: grid; place-content: center; gap: .35rem; padding: 1.25rem; border: 1px dashed #b9b9b5; border-radius: .7rem; background: #fbfbfa; color: var(--text); text-align: center; cursor: pointer; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.file-dropzone:hover { border-color: var(--primary); background: #fff7f1; }
.file-dropzone__title { color: var(--primary-hover); font-size: .92rem; font-weight: 800; }
.file-dropzone small { color: var(--muted); font-size: .78rem; }
.file-input:focus-visible + .file-dropzone { outline: 3px solid var(--primary); outline-offset: 3px; }
.file-field.is-dragging .file-dropzone { border-color: var(--primary); background: #fff1e8; box-shadow: 0 0 0 4px rgba(255,97,5,.12); transform: translateY(-1px); }
.file-field.has-files .file-dropzone { min-height: 5.5rem; }
.file-help, .file-summary { margin: .65rem 0 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.file-summary { font-weight: 700; }
.file-list { display: grid; gap: .45rem; margin: .7rem 0 0; padding: 0; list-style: none; }
.file-list:empty { display: none; }
.file-list li { display: flex; align-items: center; gap: .65rem; padding: .6rem .7rem; border: 1px solid var(--line); border-radius: .45rem; background: var(--white); font-size: .78rem; line-height: 1.3; }
.file-list li::before { width: .45rem; height: .45rem; flex: 0 0 auto; border-radius: 50%; background: var(--primary); content: ""; }
.file-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-list small { margin-left: auto; color: var(--muted); white-space: nowrap; }
.file-remove { margin-left: .1rem; padding: .2rem .35rem; border: 0; background: transparent; color: var(--primary-hover); font: inherit; font-size: .72rem; font-weight: 800; cursor: pointer; }
.file-remove:hover { text-decoration: underline; }
.file-field .error { display: block; margin-top: .55rem; }
.form-status.is-success { border-color: #277a41; background: #edf8f0; color: #175c2e; }

.quote-photo-upload[data-file-upload] { display: block; min-height: 0; padding: 0; border: 0; background: transparent; cursor: default; }
.quote-photo-upload .file-dropzone { min-height: 5.2rem; border-color: #f15a24; border-radius: .45rem; }
.quote-photo-upload .file-dropzone__title { font-size: .8rem; }
.quote-photo-upload .file-dropzone small { font-size: .72rem; }
.quote-photo-upload .file-summary { margin-top: .45rem; font-size: .7rem; }
.quote-photo-upload .file-list { margin-top: .45rem; }
.quote-photo-upload .file-list li { padding: .45rem .55rem; font-size: .7rem; }
.quote-photo-upload .file-list small { display: none; }
.quote-photo-upload .error { display: block; margin-top: .4rem; color: #b42318; font-size: .72rem; font-weight: 700; }
.quote-step-error.is-success { color: #277a41; }

@media (max-width: 700px) {
  .file-dropzone { min-height: 7.25rem; }
  .file-list li { align-items: flex-start; }
  .file-list small { margin-left: 0; }
}
