/* ==========================================================================
   SPR SIP Systems: quote.css
   Page-specific layout for quote.html. Loaded after site.css and leans on
   its components (.field, .form-grid, .dropzone, .kv, .strip, .sec-num).
   ========================================================================== */

.quote-grid { align-items: start; }
/* Grid items default to min-width auto, so an unbreakable file name in the list would widen the whole column */
.quote-grid > * { min-width: 0; }

/* ---------- Form column ------------------------------------------------- */
.quote-form > * + * { margin-top: clamp(28px, 3vw, 40px); }
.quote-form .sec-head { margin-bottom: clamp(32px, 4vw, 56px); }
.field--full { grid-column: 1 / -1; }
/* Let long file names truncate instead of widening the row (flex items default to min-width auto) */
.filelist li span { min-width: 0; }
.filelist li span:first-child { flex: 1 1 auto; }
.filelist li .mono { flex: none; }
.req { color: var(--accent-text); }
.quote-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.quote-actions .mono { max-width: 40ch; }
.form-note p + p { margin-top: 8px; }

/* ---------- Aside column ------------------------------------------------ */
.quote-aside { display: flex; flex-direction: column; gap: clamp(48px, 5vw, 72px); }
.quote-aside .sec-num { display: flex; margin-bottom: 20px; }
.quote-aside h2 { margin-bottom: 20px; }
.quote-aside h2 + p { margin-bottom: 24px; }
@media (min-width: 901px) {
  .quote-aside { border-left: 1px solid var(--line); padding-left: clamp(32px, 4vw, 64px); }
}
@media (max-width: 900px) {
  .quote-aside { border-top: 1px solid var(--line); padding-top: clamp(40px, 6vw, 64px); }
}

/* Numbered steps (What happens next) */
.steps { border-top: 1px solid var(--line); }
.steps li { display: grid; grid-template-columns: 40px 1fr; gap: 20px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--line); }
.steps .n { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: .08em; color: var(--accent-text); }
.steps b { display: block; font-weight: 500; }
.steps p { margin-top: 6px; font-size: var(--fs-small); color: var(--fg-muted); }

/* Design guide form */
.guide-form { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.guide-form .field, .guide-form .form-status { width: 100%; }

/* Contact */
.contact { font-style: normal; }
.contact a:hover { color: var(--accent-text); }

/* ---------- Trust band -------------------------------------------------- */
.trust-band { padding-block: clamp(32px, 4vw, 56px); }
.strip--3 { grid-template-columns: repeat(3, 1fr); }
.strip--3 > div { min-height: 0; flex-direction: row; align-items: center; gap: 20px; padding: clamp(20px, 2vw, 28px) clamp(20px, 2.4vw, 32px); }
.strip--3 svg { flex: none; width: 32px; height: 32px; }
@media (max-width: 640px) {
  .strip--3 { grid-template-columns: 1fr; }
  /* site.css spans an odd last cell across two columns; in a single column that would create an implicit second track */
  .strip--3 > div:last-child:nth-child(odd) { grid-column: auto; }
}
.form-error-note { color: var(--error); margin: 0; }
.form-error-note:empty { display: none; }
