.cn-signup { box-sizing: border-box; width: 100%; max-width: min(100%,var(--cn-max-width,680px)); margin-inline: auto; }
.cn-signup .cn-title, .cn-signup .cn-subtitle { margin: 0 0 var(--cn-gap,16px); overflow-wrap: anywhere; }
.cn-signup .cn-form, .cn-signup .cn-preview { width: 100%; max-width: var(--cn-form-width,520px); margin-inline: auto; }
.cn-signup .cn-label { display: block; margin: 0 0 6px; font-size: var(--cn-control-size,18px); color: var(--cn-input-color,#333); }
.cn-signup .cn-fields { display: flex; align-items: stretch; gap: 10px; }
.cn-signup .cn-input, .cn-signup .cn-button { box-sizing: border-box; min-height: var(--cn-control-height,48px); border-radius: var(--cn-radius,4px); font: inherit; font-size: var(--cn-control-size,18px); line-height: 1.25; margin: 0; padding: 10px 16px; }
.cn-signup .cn-input { display: block; flex: 1 1 0; width: 100%; min-width: 0; border: 1px solid var(--cn-input-border,#811321); color: var(--cn-input-color,#333); background: var(--cn-input-background,#fff); box-shadow: none; }
.cn-signup .cn-input::placeholder { color: inherit; opacity: .65; }
.cn-signup .cn-button { flex: 0 1 auto; border: 1px solid transparent; color: var(--cn-button-color,#fffbf3); background: var(--cn-button-background,#811321); cursor: pointer; overflow-wrap: anywhere; white-space: normal; }
.cn-signup .cn-button:hover:not(:disabled) { filter: brightness(1.12); }
.cn-signup .cn-button:disabled { opacity: .65; cursor: wait; }
.cn-signup .cn-input:focus-visible, .cn-signup .cn-button:focus-visible { outline: 2px solid var(--cn-input-border,#811321); outline-offset: 3px; }
.cn-signup .cn-input[aria-invalid="true"] { border-color: #a61b1b; }
.cn-signup .cn-message { margin: 12px 0 0; font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.cn-signup .cn-message:empty { display: none; }
.cn-signup .cn-message.is-error { color: #a61b1b; }
.cn-signup .cn-message.is-success { color: #24542e; }
.cn-signup .cn-privacy { margin: 12px 0 0; font-size: 14px; line-height: 1.5; text-align: center; }
.cn-signup.is-stacked .cn-fields { flex-direction: column; }
.cn-signup .cn-trap { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.cn-signup .cn-editor-note { margin-top: 12px; color: #555; font: 13px/1.4 sans-serif; }
@media (max-width:600px) { .cn-signup .cn-fields { flex-direction: column; } .cn-signup .cn-input { flex-basis: auto; } }
