/* Northpoint Forms - compact polished frontend styling */
.npf-wrap{
    max-width:720px;
    margin:0 auto;
}

.npf-title{
    margin:0 0 14px;
    font-size:clamp(24px,3vw,32px);
    line-height:1.2;
}

.npf-form{
    display:block;
    padding:22px;
    border:1px solid #d8dee8;
    border-radius:12px;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.06);
}

.npf-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:14px;
    row-gap:12px;
}

.npf-field{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
    font-weight:600;
}

.npf-label{
    display:block;
    margin:0;
    font-size:15px;
    line-height:1.3;
    color:#1f2937;
}

.npf-field em{
    color:#b42318;
    font-style:normal;
}

.npf-field input,
.npf-field textarea,
.npf-field select{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    border:1px solid #bfc8d4;
    border-radius:7px;
    padding:9px 11px;
    font:inherit;
    font-weight:400;
    line-height:1.35;
    background:#fff;
    color:#0f172a;
    transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}

.npf-field input,
.npf-field select{
    min-height:42px;
}

.npf-field textarea{
    min-height:128px;
    resize:vertical;
}

.npf-field input:hover,
.npf-field textarea:hover,
.npf-field select:hover{
    border-color:#98a4b3;
}

.npf-field input:focus,
.npf-field textarea:focus,
.npf-field select:focus{
    outline:none;
    border-color:#64748b;
    box-shadow:0 0 0 3px rgba(100,116,139,.14);
}

.npf-full{
    grid-column:1/-1;
}

.npf-submit{
    margin-top:14px;
    border:1px solid #1f2937;
    border-radius:7px;
    padding:10px 18px;
    min-height:42px;
    font:inherit;
    font-weight:700;
    background:#1f2937;
    color:#fff;
    cursor:pointer;
    transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;
}

.npf-submit:hover{
    transform:translateY(-1px);
    box-shadow:0 5px 14px rgba(15,23,42,.16);
}

.npf-submit:disabled{
    opacity:.6;
    cursor:wait;
    transform:none;
    box-shadow:none;
}

.npf-status{
    margin-top:10px;
    font-size:14px;
}

.npf-success{color:#067647}
.npf-error{color:#b42318}

.npf-hp{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}

.cf-turnstile{margin-top:14px}

.npf-choice{
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin:3px 0;
    font-weight:400;
}

.npf-choice input{
    width:auto;
    min-height:0;
    margin:3px 0 0;
    padding:0;
}

.npf-field[hidden]{display:none!important}

.npf-field small{
    font-weight:400;
    color:#64748b;
    font-size:13px;
}

.npf-field input[type=file]{
    padding:8px 10px;
    background:#f8fafc;
}

.npf-step-nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:14px;
}

.npf-step-nav button{
    border:1px solid #cbd5e1;
    border-radius:7px;
    padding:9px 14px;
    background:#fff;
    cursor:pointer;
}

.npf-step-count{
    font-size:13px;
    font-weight:600;
}

.npf-preview-note{
    margin:0 0 12px;
    padding:9px 11px;
    border:1px solid #bfdbfe;
    border-radius:7px;
    background:#eff6ff;
    color:#1e40af;
    font-weight:600;
}

@media(max-width:640px){
    .npf-wrap{max-width:100%}
    .npf-form{padding:16px}
    .npf-grid{grid-template-columns:1fr;gap:11px}
    .npf-full{grid-column:auto}
}
