.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__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 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 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__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 { grid-column: auto; } }
