.nxb-quote-form { padding: clamp(2rem,5vw,4rem); border-radius: var(--nxb-radius); background: var(--nxb-colour-surface); }
.nxb-quote-form__heading { max-width: 44rem; margin-bottom: 2rem; }
.nxb-quote-form__heading > p { margin: 0 0 .2rem; color: var(--nxb-colour-brand-dark); font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nxb-quote-form__heading h2 { margin: 0; }
.nxb-quote-form__introduction { margin-top: .75rem; color: var(--nxb-colour-muted); }
.nxb-quote-form__status { margin-bottom: 1rem; border-radius: var(--nxb-radius-small); }
.nxb-quote-form__status:empty { display: none; }
.nxb-quote-form__status p { margin: 0; padding: 1rem; }
.nxb-quote-form__status--error { color: #7d1717; background: #fce8e8; }
.nxb-quote-form__status--success { color: #075b38; background: #e4f7ee; }
.nxb-quote-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.15rem; }
.nxb-quote-form__field { display: flex; min-width: 0; flex-direction: column; }
.nxb-quote-form__field--full { grid-column: 1/-1; }
.nxb-quote-form__questions { display: block; min-width: 0; margin: .65rem 0 0; padding: 0; grid-column: 1/-1; border: 0; }
.nxb-quote-form__questions legend { width: 100%; margin: 0; padding: 0 0 .65rem; border-bottom: 2px solid var(--nxb-colour-brand); color: var(--nxb-colour-ink); font-size: 1.1rem; font-weight: 850; }
.nxb-quote-form__questions-introduction { margin: .8rem 0 1.15rem; color: var(--nxb-colour-muted); font-size: .82rem; line-height: 1.55; }
.nxb-quote-form__questions-list { display: grid; gap: .85rem; }
.nxb-quote-form__question { display: grid; min-width: 0; padding: 1rem; grid-template-columns: 2rem minmax(0,1fr); gap: .85rem; border: 1px solid var(--nxb-colour-line); border-radius: var(--nxb-radius-small); background: #fff; }
.nxb-quote-form__question-number { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #fff; background: var(--nxb-colour-brand); font-size: .8rem; font-weight: 850; }
.nxb-quote-form__question .nxb-quote-form__field { padding-top: .12rem; }
.nxb-quote-form__question .nxb-quote-form__help { margin: -.05rem 0 .55rem; }
.nxb-quote-form__question textarea { min-height: 5.25rem; }
.nxb-quote-form label { margin-bottom: .35rem; color: var(--nxb-colour-ink); font-size: .85rem; font-weight: 750; }
.nxb-quote-form input, .nxb-quote-form select, .nxb-quote-form textarea { width: 100%; min-height: 3.25rem; padding: .75rem .85rem; border: 1px solid #aeb7b4; border-radius: var(--nxb-radius-small); color: var(--nxb-colour-text); background: #fff; }
.nxb-quote-form__upload-control { padding: 1rem; border: 1px dashed #96a39e; border-radius: var(--nxb-radius-small); background: #fff; }
.nxb-quote-form input[type="file"] { height: auto; min-height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; }
.nxb-quote-form input[type="file"]::file-selector-button { margin-right: .75rem; padding: .65rem .9rem; border: 0; border-radius: .2rem; color: #fff; background: var(--nxb-colour-ink); font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; }
.nxb-quote-form input[type="file"]::file-selector-button:hover { background: var(--nxb-colour-brand-dark); }
.nxb-quote-form__upload-control .nxb-quote-form__help { display: block; margin-top: .65rem; }
.nxb-quote-form textarea { resize: vertical; }
.nxb-quote-form [aria-invalid="true"] { border-color: #b42318; box-shadow: 0 0 0 1px #b42318; }
.nxb-quote-form__error { margin-top: .3rem; color: #9b1c1c; font-size: .78rem; }
.nxb-quote-form__help { margin-top: .35rem; color: var(--nxb-colour-muted); font-size: .76rem; line-height: 1.5; }
.nxb-quote-form__consent { display: grid; grid-template-columns: auto 1fr; gap: .25rem .7rem; }
.nxb-quote-form__consent input { width: 1.2rem; min-height: 1.2rem; margin-top: .25rem; }
.nxb-quote-form__consent label { font-weight: 500; }
.nxb-quote-form__consent .nxb-quote-form__error { grid-column: 2; }
.nxb-quote-form__submit { margin-top: 1.5rem; }
.nxb-quote-form__submit[aria-busy="true"] { cursor: wait; opacity: .7; }
.nxb-quote-form__recaptcha { max-width: 44rem; margin: 1rem 0 0; color: var(--nxb-colour-muted); font-size: .72rem; }
@media (max-width: 650px) { .nxb-quote-form__grid { grid-template-columns: 1fr; } .nxb-quote-form__field--full, .nxb-quote-form__questions { grid-column: auto; } .nxb-quote-form__question { padding: .9rem; grid-template-columns: 1.8rem minmax(0,1fr); gap: .7rem; } .nxb-quote-form__question-number { width: 1.8rem; height: 1.8rem; } }
