/* Power Wash NorCal — commercial quote form (contact page only).
   Loaded only by /contact/. Uses the site's existing design tokens. */

.qf-section{border:0; padding:0; margin:0 0 26px;}
.qf-section:last-of-type{margin-bottom:8px;}
.qf-section legend{
  display:block; width:100%; font-family:var(--font-display); font-weight:700;
  font-size:0.95rem; color:var(--green); padding:0 0 10px; margin-bottom:14px;
  border-bottom:2px solid var(--mint);
}
.qf-section legend .qf-step{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; margin-right:8px; border-radius:50%;
  background:var(--green); color:#fff; font-size:0.75rem; font-family:var(--font-body);
}

/* Checkbox multi-select grids */
.qf-checks{display:grid; grid-template-columns:1fr 1fr; gap:8px 14px;}
@media (max-width:640px){.qf-checks{grid-template-columns:1fr;}}
.qf-check{display:flex; align-items:flex-start; gap:8px; font-weight:500;
  font-size:0.88rem; color:var(--ink); margin:0; cursor:pointer; line-height:1.35;}
.qf-check input{width:auto; margin-top:2px; accent-color:var(--green); flex:none;}
.qf-hint{font-size:0.78rem; color:var(--mid-gray); margin:-6px 0 10px;}

/* Photo upload */
.qf-upload{
  border:2px dashed var(--border); border-radius:var(--r-sm); background:var(--mint);
  padding:18px; text-align:center; cursor:pointer; transition:border-color .2s ease;
}
.qf-upload:hover, .qf-upload:focus-within{border-color:var(--green);}
.qf-upload input[type=file]{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
}
.qf-upload-label{display:block; font-weight:700; color:var(--green); font-size:0.9rem;}
.qf-upload-sub{display:block; font-size:0.78rem; color:var(--mid-gray); margin-top:4px;}

.qf-files{list-style:none; margin:12px 0 0; padding:0; text-align:left;}
.qf-files li{
  display:flex; align-items:center; gap:10px; font-size:0.82rem; color:var(--ink);
  padding:7px 10px; border:1px solid var(--border); border-radius:var(--r-sm);
  background:#fff; margin-bottom:6px;
}
.qf-files li.qf-file-error{border-color:#F3B9BC; background:#FBEAEA; color:#8A2A2E;}
.qf-files .qf-file-name{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.qf-files .qf-file-size{color:var(--mid-gray); flex:none;}
.qf-files button{
  flex:none; width:auto; border:0; background:none; color:#8A2A2E; font-weight:700;
  cursor:pointer; padding:0 4px; font-size:1rem; line-height:1;
}

/* Progress bar */
.qf-progress{display:none; margin-top:14px;}
.qf-progress.is-active{display:block;}
.qf-progress-track{height:8px; background:var(--mint); border-radius:999px; overflow:hidden;}
.qf-progress-bar{height:100%; width:0; background:var(--green); border-radius:999px; transition:width .15s ease;}
.qf-progress-text{font-size:0.78rem; color:var(--mid-gray); margin-top:6px;}

/* Inline field error state */
.qf-invalid{border-color:#C0392B !important;}
.qf-field-error{display:none; color:#8A2A2E; font-size:0.76rem; margin-top:4px;}
.qf-invalid ~ .qf-field-error, .qf-checks.qf-invalid + .qf-field-error{display:block;}
.qf-checks.qf-invalid{outline:1px solid #C0392B; outline-offset:6px; border-radius:var(--r-sm);}

button[type=submit]:disabled{opacity:.6; cursor:not-allowed;}

/* v5: conditional visibility + trust block */
.qf-hidden { display: none !important; }
.qf-trust {
  list-style: none;
  margin: 22px 0 14px;
  padding: 12px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  justify-content: center;
  background: rgba(31, 122, 76, 0.06);
  border: 1px solid rgba(31, 122, 76, 0.18);
  border-radius: 10px;
}
.qf-trust li {
  font-size: 0.92rem;
  font-weight: 600;
  color: #1F7A4C;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .qf-trust { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* v6: privacy notice */
.qf-privacy {
  margin: 10px 0 0;
  font-size: 0.85rem;
  color: #5b6b62;
  text-align: center;
}
