.struxa-form-page { padding: 2.5rem 1rem 4rem; }
.struxa-form-page-inner { max-width: 40rem; margin: 0 auto; }
.struxa-form-page h1 { margin: 0 0 0.75rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.struxa-form-wrap, .struxa-form-embed { max-width: 40rem; }
.struxa-form-heading { margin: 0 0 0.5rem; font-size: 1.35rem; }
.struxa-form-lead { margin: 0 0 1rem; color: var(--muted, #64748b); line-height: 1.55; }
.struxa-form { display: flex; flex-direction: column; gap: 1rem; }
.struxa-form-field { display: flex; flex-direction: column; gap: 0.35rem; }
.struxa-form-field label, .struxa-form-field legend { font-weight: 600; font-size: 0.95rem; }
.struxa-form-field input[type="text"],
.struxa-form-field input[type="email"],
.struxa-form-field input[type="tel"],
.struxa-form-field input[type="url"],
.struxa-form-field input[type="number"],
.struxa-form-field select,
.struxa-form-field textarea {
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(15, 23, 42, 0.15);
  border-radius: 0.5rem;
  font: inherit;
  background: #fff;
}
.struxa-form-checkbox, .struxa-form-radio { display: flex; align-items: flex-start; gap: 0.5rem; font-weight: 500; margin: 0.25rem 0; }
.struxa-form-help { margin: 0; font-size: 0.875rem; color: var(--muted, #64748b); }
.struxa-form-req { color: #dc2626; }
.struxa-form-actions { margin-top: 0.25rem; }
.struxa-form-submit {
  appearance: none;
  border: 0;
  border-radius: 0.55rem;
  padding: 0.75rem 1.25rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  background: #0f172a;
  color: #fff;
}
.struxa-form-submit:hover { opacity: 0.92; }
.struxa-form-btn { appearance: none; border: 0; border-radius: 0.55rem; padding: 0.75rem 1.25rem; font: inherit; font-weight: 600; cursor: pointer; }
.struxa-form-btn--ghost { background: transparent; border: 1px solid rgba(15, 23, 42, 0.15); color: inherit; }
.struxa-form-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.25rem; }
.struxa-form-page-title { margin: 0 0 0.75rem; font-size: 1.1rem; }
.struxa-form-page[hidden] { display: none !important; }
.struxa-form-field-wrap[hidden] { display: none !important; }
.struxa-form-progress { display: flex; gap: 0.35rem; margin-bottom: 0.75rem; }
.struxa-form-progress-dot { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: rgba(15, 23, 42, 0.15); }
.struxa-form-progress-dot.is-active { background: #0f172a; }
.struxa-form-flash { padding: 0.75rem 0.9rem; border-radius: 0.5rem; margin-bottom: 0.75rem; }
.struxa-form-flash--error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.struxa-form-flash--success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.struxa-form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.struxa-form-missing { padding: 0.75rem; border: 1px dashed rgba(15,23,42,.2); border-radius: 0.5rem; color: #64748b; }
