/* Quote Form Styles */
.quote-hero { padding: 3rem 2rem 2.5rem; background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 50%, #f0fdf4 100%); position: relative; overflow: hidden; text-align: center; }
.quote-hero::before { content: ''; position: absolute; top: -50%; right: -20%; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(34,197,94,0.08) 0%, transparent 70%); pointer-events: none; }
.quote-hero h1 { font-size: 2rem; font-weight: 800; color: var(--text); margin-bottom: 0.5rem; }
.quote-hero p { color: var(--text-secondary); font-size: 1rem; max-width: 500px; margin: 0 auto; }

.quote-form-wrap { max-width: 580px; margin: -1.5rem auto 3rem; padding: 0 1.5rem; position: relative; z-index: 1; }
.quote-card { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 2rem 2rem 1.5rem; }
.quote-card h2 { font-size: 1.1rem; font-weight: 700; margin-bottom: 1.5rem; color: var(--text); }

.q-group { margin-bottom: 1.5rem; }
.q-group:last-of-type { margin-bottom: 1.75rem; }
.q-label { display: block; font-size: 0.85rem; font-weight: 600; color: var(--text); margin-bottom: 0.5rem; }
.q-sublabel { display: block; font-size: 0.75rem; color: var(--text-secondary); margin-top: 0.15rem; font-weight: 400; }

.q-select { width: 100%; padding: 0.65rem 0.85rem; border: 1.5px solid var(--border); border-radius: var(--radius); font-size: 0.95rem; font-family: inherit; background: #fff; color: var(--text); appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.85rem center; cursor: pointer; transition: border-color 0.2s; }
.q-select:focus { outline: none; border-color: var(--primary-light); box-shadow: 0 0 0 3px rgba(34,197,94,0.1); }

.q-slider-wrap { position: relative; }
.q-slider { width: 100%; height: 6px; -webkit-appearance: none; appearance: none; background: var(--border); border-radius: 3px; outline: none; cursor: pointer; }
.q-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%; background: var(--primary); cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,0.15); transition: transform 0.15s; }
.q-slider::-webkit-slider-thumb:hover { transform: scale(1.15); }
.q-slider::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--primary); cursor: pointer; border: none; box-shadow: 0 1px 4px rgba(0,0,0,0.15); }
.q-slider-val { text-align: center; font-size: 1.5rem; font-weight: 800; color: var(--primary); margin-bottom: 0.5rem; }

.q-options { display: grid; gap: 0.5rem; }
.q-options.cols-2 { grid-template-columns: 1fr 1fr; }
.q-options.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.q-options.cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.q-opt { padding: 0.6rem 0.75rem; border: 1.5px solid var(--border); border-radius: var(--radius); text-align: center; font-size: 0.85rem; font-weight: 600; color: var(--text); cursor: pointer; transition: all 0.15s; background: #fff; user-select: none; }
.q-opt:hover { border-color: var(--primary-light); background: var(--primary-bg); }
.q-opt.selected { border-color: var(--primary); background: var(--primary-bg); color: var(--primary); box-shadow: 0 0 0 3px rgba(34,197,94,0.1); }

.q-submit { width: 100%; padding: 0.85rem 1.5rem; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 1rem; font-weight: 700; font-family: inherit; cursor: pointer; transition: background 0.2s, transform 0.15s; }
.q-submit:hover { background: var(--primary-dark); transform: translateY(-1px); }

.q-disclaimer { text-align: center; font-size: 0.7rem; color: var(--text-secondary); margin-top: 1rem; line-height: 1.5; }