/* Instant quote calculator. Uses NMP theme colour tokens with fallbacks. */
.nmp-quote {
	--q-brand: var(--wp--preset--color--brand, #E31B23);
	--q-border: var(--wp--preset--color--border, #DCE3F0);
	--q-surface: var(--wp--preset--color--surface, #F3F6FC);
	--q-base: var(--wp--preset--color--base, #fff);
	--q-muted: var(--wp--preset--color--muted, #5B6684);
	--q-navy: var(--wp--preset--color--navy, #1A3A8F);
	display: grid; gap: 1.5rem; max-width: 820px; margin: 0 auto;
}
.nmp-quote fieldset { border: 1px solid var(--q-border); border-radius: 18px; padding: 1.3rem; margin: 0; background: var(--q-base); }
.nmp-quote legend { font-weight: 800; color: var(--q-navy); padding: 0 .4rem; display: flex; align-items: center; gap: .5rem; }
.nmp-quote legend span { display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--q-brand); color: #fff; font-size: .85rem; }
.nmp-quote__packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .75rem; }
.nmp-quote__pkg { position: relative; cursor: pointer; }
.nmp-quote__pkg input { position: absolute; opacity: 0; }
.nmp-quote__pkg span { display: block; padding: 1rem; border: 2px solid var(--q-border); border-radius: 14px; transition: border-color .15s, background .15s; }
.nmp-quote__pkg small { display: block; color: var(--q-muted); }
.nmp-quote__pkg input:checked + span { border-color: var(--q-brand); background: color-mix(in srgb, var(--q-brand) 7%, transparent); }
.nmp-quote__pkg input:focus-visible + span { outline: 3px solid var(--q-navy); outline-offset: 2px; }
.nmp-quote__range { display: flex; align-items: center; gap: 1rem; }
.nmp-quote__range input { flex: 1; accent-color: var(--q-brand); }
.nmp-quote__range output { font-weight: 800; font-size: 1.3rem; min-width: 2.5rem; text-align: right; }
.nmp-quote__features { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .55rem 1rem; }
.nmp-quote__features label { display: flex; gap: .55rem; align-items: flex-start; cursor: pointer; }
.nmp-quote__features input { accent-color: var(--q-brand); margin-top: .35rem; }
.nmp-quote__features small { color: var(--q-muted); white-space: nowrap; }
.nmp-quote__estimate { text-align: center; padding: 1.5rem; border-radius: 18px; background: linear-gradient(135deg, #1A3A8F, #0A8FD0); color: #fff; }
.nmp-quote__estimate span { text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; font-weight: 700; opacity: .85; }
.nmp-quote__estimate strong { display: block; font-size: clamp(1.6rem, 5vw, 2.4rem); margin: .25rem 0; }
.nmp-quote__estimate small { opacity: .85; }
.nmp-quote__contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .9rem; }
.nmp-quote__contact label { display: grid; gap: .3rem; font-weight: 600; font-size: .92rem; }
.nmp-quote__wide { grid-column: 1 / -1; }
.nmp-quote input[type=text], .nmp-quote input[type=tel], .nmp-quote input[type=email], .nmp-quote textarea {
	font: inherit; font-weight: 400; padding: .7rem .85rem; border: 1px solid var(--q-border); border-radius: 10px; background: var(--q-surface); color: inherit; width: 100%; box-sizing: border-box;
}
.nmp-quote input:focus, .nmp-quote textarea:focus { outline: 2px solid var(--q-brand); outline-offset: 1px; }
.nmp-quote__hp { position: absolute !important; left: -9999px; }
.nmp-quote__consent { display: flex; gap: .55rem; align-items: flex-start; margin-top: 1rem; font-size: .88rem; color: var(--q-muted); }
.nmp-quote__consent input { margin-top: .3rem; accent-color: var(--q-brand); }
.nmp-quote__submit { border: 0; cursor: pointer; justify-self: center; padding: .9rem 2rem; font-size: 1.05rem; }
.nmp-quote__submit[disabled] { opacity: .7; cursor: default; }
.nmp-quote__msg { text-align: center; padding: 1rem; border-radius: 14px; background: var(--q-surface); }
.nmp-quote__wa { display: inline-block; margin-top: .8rem; background: #25D366 !important; color: #06301A !important; text-decoration: none; }
