.nfol-card {
    box-sizing: border-box;
    max-width: 520px;
    margin: 32px auto;
    padding: 28px;
    border: 1px solid #dcdcde;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(0, 0, 0, .07);
    font: inherit;
}
.nfol-card * { box-sizing: border-box; }
.nfol-brand { margin-bottom: 8px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .72; }
.nfol-card h2 { margin: 0 0 10px; font-size: clamp(24px, 4vw, 32px); line-height: 1.2; }
.nfol-lead { margin: 0 0 22px; opacity: .75; }
.nfol-label { display: block; margin-bottom: 7px; font-weight: 600; }
.nfol-input { width: 100%; min-height: 48px; margin: 0 0 12px; padding: 10px 13px; border: 1px solid #b8bcc2; border-radius: 10px; background: #fff; color: inherit; font: inherit; }
.nfol-input:focus { outline: 2px solid currentColor; outline-offset: 1px; }
.nfol-button { width: 100%; min-height: 48px; padding: 10px 16px; border: 0; border-radius: 10px; background: #1d2327; color: #fff; cursor: pointer; font: inherit; font-weight: 700; }
.nfol-button:disabled { cursor: wait; opacity: .65; }
.nfol-link-button { display: block; margin: 14px auto 0; padding: 4px; border: 0; background: transparent; color: inherit; cursor: pointer; text-decoration: underline; }
.nfol-message { display: none; margin: 0 0 16px; padding: 10px 12px; border-radius: 9px; }
.nfol-message:not(:empty) { display: block; }
.nfol-message.is-success { background: #edfaef; }
.nfol-message.is-error { background: #fcf0f1; }
@media (max-width: 600px) {
    .nfol-card { margin: 18px 0; padding: 20px; border-radius: 14px; }
}
