/* Step-by-step quote form */
.quote-page { background:#f3f6fb; padding:120px 16px 60px; min-height:70vh; font-family:"Nunito Sans","Poppins",Arial,sans-serif; }
.qf-wrap { max-width:680px; margin:0 auto; }

.qf-top { margin-bottom:14px; }
.qf-progress { height:6px; background:#dfe6ef; border-radius:6px; overflow:hidden; }
.qf-progress span { display:block; height:100%; width:4%; background:var(--secondary-color,#FFDB00); border-radius:6px; transition:width .35s ease; }
.qf-topline { display:flex; justify-content:space-between; align-items:center; margin-top:10px; min-height:24px; }
.qf-back { background:none; border:0; padding:0; color:#023B58; font-weight:700; font-size:14px; cursor:pointer; font-family:inherit; }
.qf-back:hover { text-decoration:underline; }
.qf-stepcount { font-size:12.5px; color:#6b7a89; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }

.qf-agent { background:#e8f5ee; color:#146c43; border-radius:10px; padding:10px 14px; font-size:13.5px; font-weight:700; margin-bottom:12px; }
.qf-card { background:#fff; border-radius:22px; box-shadow:0 18px 50px rgba(2,59,88,.12); padding:36px 40px 32px; position:relative; min-height:260px; }
.qf-step { animation:qfIn .28s ease; }
@keyframes qfIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

.qf-eyebrow { display:block; font-size:11.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#023B58; opacity:.7; margin-bottom:8px; }
.qf-card h2 { font-family:"Poppins",Arial,sans-serif; font-size:27px; line-height:1.22; font-weight:800; color:#023B58; margin:0 0 8px; }
.qf-sub { font-size:15px; line-height:1.5; color:#5a6b7a; margin:0 0 22px; }

/* Choice buttons */
.qf-options { display:grid; gap:10px; margin-bottom:18px; }
.qf-options.cols-2 { grid-template-columns:1fr 1fr; }
.qf-options.cols-3 { grid-template-columns:repeat(3,1fr); }
.qf-options.cols-4 { grid-template-columns:repeat(4,1fr); }
.qf-card button.qf-opt { display:flex; flex-direction:column; align-items:flex-start; text-align:left; width:100%; border:2px solid #dde4ea; background:#fbfcfd; border-radius:12px; padding:14px 16px; cursor:pointer; font-family:inherit; color:#023B58; line-height:1.3; text-transform:none; letter-spacing:0; box-shadow:none; transition:border-color .15s, background .15s, transform .15s; }
.qf-card button.qf-opt:hover, .qf-card button.qf-opt:focus { border-color:#023B58; background:#FFF6BF; color:#023B58; transform:translateY(-1px); outline:none; }
.qf-card button.qf-opt.is-selected, .qf-card button.qf-opt.is-selected:hover { border-color:#023B58; background:#023B58; color:#fff; }
.qf-card button.qf-opt .t, .qf-card button.qf-opt .d { color:inherit; }
.qf-opt .t { font-size:16px; font-weight:800; }
.qf-opt .d { font-size:13px; opacity:.8; margin-top:3px; line-height:1.35; }
.qf-opt.center { align-items:center; text-align:center; padding:14px 8px; }
.qf-opt.center .t { font-size:15px; }

/* Text fields */
.qf-fields { display:grid; gap:14px; margin-bottom:18px; }
.qf-fields.cols-2 { grid-template-columns:1fr 1fr; }
.qf-field { display:flex; flex-direction:column; }
.qf-field.span-2 { grid-column:span 2; }
.qf-field label { font-size:13px; font-weight:800; color:#023B58; margin-bottom:6px; }
.qf-field input, .qf-field select { width:100%; height:48px; border:2px solid #dde4ea; border-radius:10px; padding:0 14px; font-size:16px; color:#023B58; background:#fbfcfd; font-family:inherit; transition:border-color .15s, box-shadow .15s; }
.qf-field input:focus, .qf-field select:focus { outline:none; border-color:#023B58; box-shadow:0 0 0 3px rgba(2,59,88,.10); background:#fff; }
.qf-field.has-error input, .qf-field.has-error select { border-color:#d9534f; }
.qf-err { color:#d9534f; font-size:12.5px; margin-top:5px; font-weight:700; }
.qf-hint { font-size:12.5px; color:#6b7a89; margin-top:5px; }

/* Searchable list (makes, models) */
.qf-search { position:relative; margin-bottom:12px; }
.qf-search input { width:100%; height:48px; border:2px solid #dde4ea; border-radius:10px; padding:0 14px 0 42px; font-size:16px; font-family:inherit; color:#023B58; background:#fbfcfd; }
.qf-search input:focus { outline:none; border-color:#023B58; background:#fff; }
.qf-search:before { content:"\26B2"; position:absolute; left:14px; top:11px; font-size:18px; color:#8a97a5; transform:rotate(-45deg); }
.qf-grouplabel { font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#8a97a5; margin:10px 0 8px; }
.qf-list { max-height:360px; overflow:auto; padding-right:4px; margin-bottom:16px; }
.qf-list .qf-options { margin-bottom:8px; }
.qf-empty { color:#6b7a89; font-size:14px; padding:12px 0; }
.qf-loading { color:#6b7a89; font-size:14px; padding:20px 0; text-align:center; }

/* Checkbox / consent */
.qf-check { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.45; color:#5a6b7a; margin-bottom:18px; }
.qf-check input { width:18px; height:18px; margin-top:2px; flex:none; }
.qf-check.has-error { color:#d9534f; }
.qf-check a { color:#023B58; font-weight:700; text-decoration:underline; }

/* Buttons */
.qf-actions { display:flex; gap:12px; align-items:center; }
.qf-card .qf-next { flex:1; height:52px; border:0; border-radius:10px; background:#023B58; color:#fff; font-size:16px; font-weight:800; cursor:pointer; font-family:inherit; text-transform:none; letter-spacing:0; transition:background .2s, color .2s, transform .2s; }
.qf-card .qf-next:hover, .qf-card .qf-next:focus { background:var(--secondary-color,#FFDB00); color:#023B58; transform:translateY(-2px); outline:none; }
.qf-card .qf-back, .qf-top .qf-back { color:#023B58; }
.qf-next[disabled] { opacity:.6; cursor:wait; transform:none; }
.qf-skip { background:none; border:0; color:#6b7a89; font-weight:700; cursor:pointer; font-family:inherit; font-size:14px; }
.qf-skip:hover { color:#023B58; text-decoration:underline; }
.qf-secure { text-align:center; font-size:12px; color:#8a97a5; margin-top:14px; }

/* Summary / done */
.qf-summary { display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; background:#f3f6fb; border-radius:14px; padding:18px 20px; margin:18px 0; font-size:14px; }
.qf-summary div { display:flex; flex-direction:column; }
.qf-summary small { color:#6b7a89; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.qf-done-icon { width:64px; height:64px; border-radius:50%; background:var(--secondary-color,#FFDB00); color:#023B58; display:flex; align-items:center; justify-content:center; font-size:30px; font-weight:900; margin-bottom:16px; }
.qf-spinner { display:inline-block; width:18px; height:18px; border:3px solid #dde4ea; border-top-color:#023B58; border-radius:50%; animation:qfSpin .8s linear infinite; vertical-align:middle; margin-right:8px; }
@keyframes qfSpin { to { transform:rotate(360deg); } }

.qf-trust { display:flex; justify-content:center; gap:34px; margin-top:26px; }
.qf-trust div { display:flex; flex-direction:column; align-items:center; text-align:center; }
.qf-trust strong { font-family:"Poppins",Arial,sans-serif; font-size:20px; color:#023B58; }
.qf-trust span { font-size:12.5px; color:#6b7a89; }
.qf-help { text-align:center; font-size:14px; color:#5a6b7a; margin-top:16px; }
.qf-help a { color:#023B58; font-weight:800; }

@media (max-width: 640px) {
  .quote-page { padding:96px 12px 40px; }
  .qf-card { padding:26px 20px 24px; border-radius:16px; }
  .qf-card h2 { font-size:22px; }
  .qf-options.cols-3, .qf-options.cols-4 { grid-template-columns:repeat(3,1fr); }
  .qf-options.cols-2 { grid-template-columns:1fr; }
  .qf-fields.cols-2 { grid-template-columns:1fr; }
  .qf-field.span-2 { grid-column:auto; }
  .qf-summary { grid-template-columns:1fr; }
  .qf-trust { gap:18px; }
}
