.cf-form-wrap {
  --cf-primary: #2563eb;
  --cf-label: #1f2937;
  --cf-radius: 4px;
  --cf-max-width: 760px;
  box-sizing: border-box;
  margin: 1.5rem auto;
  max-width: var(--cf-max-width);
  width: 100%;
}

.cf-form-wrap *, .cf-form-wrap *::before, .cf-form-wrap *::after { box-sizing: border-box; }
.cf-form { display: flex; flex-direction: column; gap: 1.15rem; }
.cf-form-title { margin: 0; }
.cf-form-description > :first-child { margin-top: 0; }
.cf-page { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem; }
.cf-page[hidden] { display: none !important; }
.cf-field, .cf-navigation, .cf-captcha { grid-column: 1 / -1; }
.cf-field.cf-half { grid-column: span 1; }
.cf-field > label, .cf-payment-choice legend { color: var(--cf-label); display: block; font-size: 0.95rem; font-weight: 650; margin: 0 0 0.4rem; }
.cf-field input:not([type="radio"]):not([type="checkbox"]), .cf-field select, .cf-field textarea {
  appearance: none;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: var(--cf-radius);
  color: #111827;
  display: block;
  font: inherit;
  min-height: 46px;
  padding: 0.7rem 0.8rem;
  transition: border-color 120ms ease, box-shadow 120ms ease;
  width: 100%;
}
.cf-field textarea { min-height: 120px; resize: vertical; }
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus { border-color: var(--cf-primary); box-shadow: 0 0 0 3px rgba(37, 99, 235, .18); outline: 0; }
.cf-field.is-invalid input, .cf-field.is-invalid select, .cf-field.is-invalid textarea { border-color: #b91c1c; }
.cf-choice { align-items: center; color: #1f2937; display: flex !important; font-weight: 400 !important; gap: 0.45rem; margin: 0.45rem 0 !important; }
.cf-choice input { accent-color: var(--cf-primary); height: 18px; width: 18px; }
.cf-required { color: #b91c1c; }
.cf-help { color: #64748b; display: block; margin-top: 0.35rem; }
.cf-navigation { display: flex; gap: 0.7rem; justify-content: flex-end; margin-top: 0.35rem; }
.cf-button { background: var(--cf-primary); border: 1px solid var(--cf-primary); border-radius: var(--cf-radius); color: #fff; cursor: pointer; font: inherit; font-weight: 650; min-height: 44px; padding: 0.65rem 1.15rem; }
.cf-button:hover { filter: brightness(0.93); }
.cf-button:focus { outline: 3px solid rgba(37, 99, 235, .28); outline-offset: 2px; }
.cf-button:disabled { cursor: wait; opacity: 0.65; }
.cf-back { background: #fff; color: var(--cf-primary); }
.cf-progress { display: grid; gap: 0.45rem; }
.cf-progress-text { color: #475569; font-size: 0.86rem; }
.cf-progress-track { background: #e2e8f0; border-radius: 999px; height: 6px; overflow: hidden; }
.cf-progress-track span { background: var(--cf-primary); display: block; height: 100%; transition: width 180ms ease; width: 0; }
.cf-message { border-radius: var(--cf-radius); display: none; padding: 0.8rem 1rem; }
.cf-message:not(:empty) { display: block; }
.cf-message.is-error { background: #fef2f2; color: #991b1b; }
.cf-message.is-success { background: #f0fdf4; color: #166534; }
.cf-message.is-warning { background: #fffbeb; color: #92400e; }
.cf-return-message { margin-bottom: 1rem; }
.cf-honeypot { left: -10000px !important; opacity: 0 !important; pointer-events: none !important; position: absolute !important; }
.cf-payment-choice { border: 1px solid #e2e8f0; border-radius: var(--cf-radius); margin: 0; padding: 0.85rem 1rem; }

@media (max-width: 640px) {
  .cf-page { grid-template-columns: 1fr; }
  .cf-field.cf-half { grid-column: 1 / -1; }
  .cf-navigation { justify-content: stretch; }
  .cf-button { flex: 1; }
}
