.fq-form { max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 1.25rem; }
.fq-form fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.fq-form legend { font-family: var(--wp--preset--font-family--heading, inherit); font-weight: 800; font-size: 1.5rem; margin-bottom: 1rem; padding: 0; color: var(--wp--preset--color--ink, inherit); }
.fq-form label { display: flex; flex-direction: column; gap: 0.35rem; font-weight: 600; font-size: 0.9375rem; }
.fq-form input[type=text], .fq-form input[type=tel], .fq-form input[type=email], .fq-form input[type=number], .fq-form input[type=date], .fq-form select, .fq-form textarea {
	min-height: 48px; border: 1.5px solid var(--fq-field, #CFDDE7); border-radius: var(--fq-radius, 12px); padding: 0.5rem 0.75rem; font: inherit; font-weight: 400; color: inherit; background: #fff; box-sizing: border-box; width: 100%;
}
.fq-form textarea { min-height: 110px; }
.fq-form :focus-visible { outline: 3px solid var(--wp--preset--color--primary, #0B6FA8); outline-offset: 2px; }
.fq-label { font-weight: 600; font-size: 0.9375rem; margin: 0.5rem 0 -0.5rem; }
.fq-note { font-size: 0.9375rem; color: var(--wp--preset--color--muted, #44576A); margin: 0; }
.fq-row, .fq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.fq-choices.fq-types { display: flex; flex-direction: column; gap: 0.75rem; }
.fq-choice { position: relative; flex-direction: row !important; align-items: center; gap: 0.75rem !important; border: 1.5px solid var(--fq-field, #CFDDE7); border-radius: calc(var(--fq-radius, 12px) * 1.33); padding: 1rem 1.1rem; cursor: pointer; background: #fff; }
.fq-choice:has(input:checked) { border: 2px solid var(--wp--preset--color--primary, #0B6FA8); background: var(--fq-tint, #E4F1F9); }
.fq-choice input { accent-color: var(--wp--preset--color--primary, #0B6FA8); }
.fq-choice span { display: flex; flex-direction: column; gap: 0.15rem; }
.fq-choice small { font-weight: 400; color: var(--wp--preset--color--muted, #44576A); }
.fq-types .fq-choice strong { font-size: 1.125rem; }
.fq-pill { padding: 0.8rem 1rem; justify-content: flex-start; }
.fq-check { flex-direction: row !important; align-items: center; gap: 0.5rem !important; font-weight: 400 !important; min-height: 44px; }
.fq-check input { width: 20px; height: 20px; accent-color: var(--wp--preset--color--primary, #0B6FA8); }
.fq-estimate { background: var(--wp--preset--color--soft, #F2F8FB); border-radius: calc(var(--fq-radius, 12px) * 1.33); padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: 0.2rem; }
.fq-est-label, .fq-est-note { font-size: 0.875rem; color: var(--wp--preset--color--muted, #44576A); }
.fq-est-value { font-family: var(--wp--preset--font-family--heading, inherit); font-size: 2rem; font-weight: 800; }
.fq-nav { display: flex; gap: 0.75rem; }
.fq-nav button { min-height: 52px; border-radius: var(--fq-btn-radius, 999px); padding: 0 1.5rem; font: inherit; font-weight: 700; cursor: pointer; }
.fq-back { background: #fff; border: 1.5px solid var(--fq-field, #CFDDE7); color: inherit; }
.fq-next, .fq-submit { flex: 1; border: 0; background: var(--wp--preset--color--primary, #0B6FA8); color: var(--fq-on-primary, #fff); }
.fq-next:hover, .fq-submit:hover { background: var(--wp--preset--color--primary-dark, #0B4F7A); }
.fq-progress { display: none; }
.fq-js .fq-progress { display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.8125rem; font-weight: 600; color: var(--wp--preset--color--muted, #44576A); }
.fq-bar { height: 6px; border-radius: 3px; background: var(--wp--preset--color--line, #E3ECF2); }
.fq-fill { height: 6px; border-radius: 3px; background: var(--wp--preset--color--primary, #0B6FA8); transition: width .2s; }
.fq-form:not(.fq-js) .fq-back, .fq-form:not(.fq-js) .fq-next, .fq-form:not(.fq-js) .fq-estimate { display: none; }
.fq-tried :invalid { border-color: #B42318; }
.fq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fq-done { background: var(--wp--preset--color--soft, #EEF7F3); border-radius: calc(var(--fq-radius, 12px) * 1.66); padding: 2rem; text-align: center; }
.fq-error { background: #FDECEC; color: #8A1C1C; border-radius: var(--fq-radius, 12px); padding: 0.75rem 1rem; }
.fq-form [hidden] { display: none !important; }
@media (max-width: 560px) { .fq-row, .fq-grid { grid-template-columns: minmax(0, 1fr); } }
