/* NPQ2 quote form — shared by every non-moving form (modal on service pages, inline on quote pages). */
.npq2-card,.npq2-modal{--n950:#0a1929;--n900:#102a43;--n700:#243b53;--n500:#486581;--n400:#7b8fa8;--n200:#d1dae4;--n100:#e8ecf1;--n50:#f8f9fb;--gold:#F5A623;--gold-d:#E8941E;--green:#10b981;--amber:#d97706;--red:#ef4444;font-family:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--n950);box-sizing:border-box}
.npq2-card *,.npq2-modal *{box-sizing:border-box}
.npq2-card{background:#fff;border-radius:22px;padding:22px 20px 18px;box-shadow:0 18px 44px -18px rgba(10,25,41,.28),0 2px 6px rgba(10,25,41,.06);max-width:560px;margin:0 auto;text-align:left}
.npq2-progress{display:flex;align-items:center;justify-content:center;gap:0;margin:0 0 6px}
.npq2-pdot{width:32px;height:32px;border-radius:50%;background:var(--n100);color:var(--n500);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}
.npq2-pdot.is-active{background:var(--n950);color:#fff;box-shadow:0 0 0 4px rgba(10,25,41,.08)}
.npq2-pdot.is-done{background:var(--gold);color:var(--n950)}
.npq2-pline{width:44px;height:2px;background:var(--n100)}
.npq2-plabel{text-align:center;font-size:13px;color:var(--n500);margin:0 0 18px}
.npq2-plabel strong{color:var(--n950)}
.npq2-step{display:none}
.npq2-step.is-active{display:block;animation:npq2in .22s ease}
@keyframes npq2in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.npq2-q{font-size:17px;font-weight:700;line-height:1.3;margin:0 0 12px;color:var(--n950)}
.npq2-q-sm{font-size:14px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--n700);margin:18px 0 10px}
.npq2-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--n400);font-size:13px}
.npq2-label{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--n700);margin:0 0 6px}
.npq2-field{position:relative}
.npq2-ic{display:inline-flex;width:18px;height:18px;flex:none;color:currentColor}
.npq2-ic svg{width:100%;height:100%}
.npq2-field>.npq2-ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--n400);pointer-events:none;width:18px;height:18px}
.npq2-input{width:100%;height:56px;border:2px solid var(--n100);border-radius:14px;padding:0 16px 0 44px;font:inherit;font-size:16px;color:var(--n950);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.npq2-input-plain{padding-left:16px}
.npq2-input::placeholder{color:var(--n400)}
.npq2-input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(245,166,35,.18)}
.npq2-fwrap{margin:0 0 12px}
.npq2-dd{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--n100);border-radius:14px;box-shadow:0 14px 34px -10px rgba(10,25,41,.3);z-index:30;overflow:hidden;max-height:240px;overflow-y:auto}
.npq2-dd-item{padding:11px 14px;cursor:pointer;border-bottom:1px solid var(--n50)}
.npq2-dd-item:hover,.npq2-dd-item.is-hi{background:var(--n50)}
.npq2-dd-main{font-weight:600;font-size:15px}
.npq2-dd-sec{font-size:12.5px;color:var(--n500)}
.npq2-dd-attr{font-size:10.5px;color:var(--n400);padding:6px 14px;text-align:right}
.npq2-area{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;padding:12px 14px;border-radius:12px;font-size:14.5px;font-weight:600;line-height:1.35}
.npq2-area .npq2-ic{margin-top:1px}
.npq2-area-in{background:#ecfdf5;color:#065f46}
.npq2-area-out{background:#fffbeb;color:#92400e}
.npq2-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.npq2-chip{border:2px solid var(--n100);background:#fff;color:var(--n900);border-radius:999px;padding:10px 14px;font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;transition:all .15s;line-height:1.1;text-align:left}
.npq2-chip:hover{border-color:var(--n200);background:var(--n50)}
.npq2-chip.is-on{background:var(--n950);border-color:var(--n950);color:#fff}
.npq2-chips.is-multi .npq2-chip.is-on::before{content:'\2713';margin-right:6px;color:var(--gold)}
.npq2-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;margin:18px 0 0;border:0;border-radius:14px;background:var(--n950);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:transform .12s,box-shadow .15s,opacity .15s,background .15s;text-decoration:none}
.npq2-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(10,25,41,.5)}
.npq2-btn:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none}
.npq2-btn-gold{background:var(--gold);color:var(--n950)}
.npq2-btn-gold:hover{background:var(--gold-d)}
.npq2-btn.is-busy{opacity:.7;cursor:progress}
.npq2-btn.is-busy::after{content:'';width:16px;height:16px;border:2px solid rgba(10,25,41,.3);border-top-color:var(--n950);border-radius:50%;animation:npq2spin .7s linear infinite}
@keyframes npq2spin{to{transform:rotate(360deg)}}
.npq2-back{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--n500);font:inherit;font-size:14px;font-weight:600;padding:0;margin:0 0 12px;cursor:pointer}
.npq2-back:hover{color:var(--n950)}
.npq2-link{border:0;background:none;color:var(--n700);font:inherit;font-size:14px;font-weight:600;padding:0;margin:6px 0 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.npq2-note{margin:10px 0 0}
.npq2-textarea{width:100%;min-height:84px;border:2px solid var(--n100);border-radius:14px;padding:12px 14px;font:inherit;font-size:16px;color:var(--n950);resize:vertical;outline:none}
.npq2-textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(245,166,35,.18)}
.npq2-promise{display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;font-size:13.5px;color:var(--n700);line-height:1.4}
.npq2-promise .npq2-ic{color:var(--gold-d);margin-top:1px}
.npq2-consent{font-size:10.5px;line-height:1.35;color:var(--n400);margin:12px 0 0}
.npq2-privacy{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--n400);margin:14px 0 0}
.npq2-privacy .npq2-ic{width:13px;height:13px}
.npq2-micro{font-size:12px;color:var(--n400);text-align:center;margin:12px 0 0;line-height:1.4}
.npq2-err{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:#fef2f2;color:#991b1b;font-size:14px;line-height:1.4}
.npq2-err a{color:#991b1b;font-weight:700}
.npq2-success{text-align:center;padding:10px 4px 6px}
.npq2-success-ic{width:64px;height:64px;border-radius:50%;background:#ecfdf5;color:#059669;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.npq2-success-ic .npq2-ic{width:32px;height:32px}
.npq2-success h3{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:30px;margin:0 0 8px;color:var(--n950)}
.npq2-success p{font-size:15.5px;line-height:1.5;color:var(--n700);margin:0 0 6px}
.npq2-sms{margin-top:16px}
@media (min-width:1024px){.npq2-sms{display:none}.npq2-success .npq2-micro{display:none}}

/* modal */
.npq2-modal[hidden]{display:none}
.npq2-modal{position:fixed;inset:0;z-index:99990;display:flex;align-items:flex-start;justify-content:center;padding:18px 12px}
.npq2-backdrop{position:absolute;inset:0;background:rgba(10,25,41,.72);backdrop-filter:blur(3px)}
.npq2-panel{position:relative;width:100%;max-width:600px;max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--n50);border-radius:24px;padding:22px 16px 18px;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);animation:npq2pop .22s ease}
@keyframes npq2pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.npq2-close{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:50%;border:0;background:#fff;color:var(--n700);font-size:24px;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(10,25,41,.12);z-index:2}
.npq2-close:hover{color:var(--n950)}
.npq2-head{padding:0 30px 0 6px;margin:0 0 14px}
.npq2-head h2{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:30px;line-height:1.1;margin:0 0 6px;color:var(--n950)}
.npq2-head p{font-size:15px;color:var(--n700);margin:0;line-height:1.45}
html.npq2-open,body.npq2-open{overflow:hidden}
@media (min-width:640px){.npq2-modal{padding:32px 20px;align-items:center}.npq2-panel{padding:26px 26px 22px}.npq2-head{padding-left:4px}.npq2-head h2{font-size:34px}}
@media (max-width:420px){.npq2-card{padding:18px 14px 14px}.npq2-pline{width:30px}.npq2-q{font-size:16px}}
/* AUTOFILL_FIX_V1 (2026-09-23): autofill detection hook, field-level errors, 16px note so iOS does not zoom */
@keyframes npq2af{from{opacity:1}to{opacity:1}}
.npq2-input:-webkit-autofill{animation-name:npq2af;animation-duration:.01s}
.npq2-input.npq2-bad{border-color:var(--red);box-shadow:0 0 0 4px rgba(239,68,68,.14)}
.npq2-ferr{margin:6px 2px 0;color:#b91c1c;font-size:14px;font-weight:600;line-height:1.35}
