.sf-form {
    --sf-accent: var(--wp--preset--color--primary, #054e9e);
    --sf-border: color-mix(in srgb, currentColor 22%, transparent);
    --sf-error: #b3261e;
    max-width: 52rem;
    margin-block: 2rem;
}
.sf-section { border: 0; margin: 0 0 1.75rem; padding: 0; min-width: 0; }
.sf-section__title {
    font-size: 1.25rem; font-weight: 700; padding: 0 0 .4rem; margin-bottom: 1rem;
    border-bottom: 3px solid var(--sf-accent); width: 100%;
}
.sf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.sf-field--wide { grid-column: 1 / -1; }
@media (max-width: 640px) { .sf-grid { grid-template-columns: 1fr; } }
.sf-field label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .35rem; }
.sf-req { color: var(--sf-accent); }
.sf-field input, .sf-field select, .sf-field textarea {
    width: 100%; box-sizing: border-box; font: inherit; color: inherit; background: transparent;
    border: 1px solid var(--sf-border); border-radius: 8px; padding: .65rem .8rem;
}
.sf-field input[type=file] { padding: .5rem; }
.sf-field input:focus, .sf-field select:focus, .sf-field textarea:focus {
    outline: 2px solid var(--sf-accent); outline-offset: 1px; border-color: var(--sf-accent);
}
.sf-field--error input, .sf-field--error select, .sf-field--error textarea { border-color: var(--sf-error); }
.sf-error { color: var(--sf-error); font-size: .875rem; margin: .3rem 0 0; }
.sf-consent { font-size: .9rem; line-height: 1.5; margin: .5rem 0 1rem; }
.sf-consent label { display: flex; gap: .6rem; align-items: flex-start; }
.sf-consent input { margin-top: .25rem; flex: none; width: 1.1rem; height: 1.1rem; accent-color: var(--sf-accent); }
.sf-required-note { font-size: .85rem; opacity: .75; }
.sf-submit {
    background: var(--sf-accent); color: #fff; border: 0; border-radius: 999px;
    padding: .8rem 2rem; font: inherit; font-weight: 700; cursor: pointer;
}
.sf-submit:hover { filter: brightness(1.12); }
.sf-notice { border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.sf-notice--ok { background: color-mix(in srgb, #1e7e34 12%, transparent); border-left: 4px solid #1e7e34; }
.sf-notice--error { background: color-mix(in srgb, var(--sf-error) 10%, transparent); border-left: 4px solid var(--sf-error); }
.sf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sf-notice--info { background: color-mix(in srgb, var(--sf-accent) 8%, transparent); border-left: 4px solid var(--sf-accent); }
.sf-newsletter { max-width: 40rem; }
.sf-code { font-family: ui-monospace, monospace; letter-spacing: .05em; }
