.form-grid { display: flex; flex-direction: column; gap: 22px; max-width: 640px; }
.form-row label {
  display: block; font-weight: 700; font-size: 14.5px; margin-bottom: 8px;
}
.form-row .required {
  display: inline-block; font-size: 11px; font-weight: 700; color: #fff;
  background: var(--color-danger); padding: 2px 8px; border-radius: 4px; margin-left: 8px; vertical-align: middle;
}
.form-row .optional {
  display: inline-block; font-size: 11px; font-weight: 700; color: var(--color-ink-soft);
  background: var(--color-line); padding: 2px 8px; border-radius: 4px; margin-left: 8px; vertical-align: middle;
}
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row select,
.form-row textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-s);
  font-size: 15.5px;
  font-family: inherit;
  background: var(--color-surface);
}
.form-row textarea { min-height: 160px; resize: vertical; }
.form-row .hint { font-size: 12.5px; color: var(--color-ink-soft); margin-top: 6px; }

.consent-row {
  display: flex; align-items: flex-start; gap: 10px;
  background: var(--color-primary-soft); padding: 16px 18px; border-radius: var(--radius-s);
  font-size: 14px;
}
.consent-row input { margin-top: 4px; }

/* honeypot: hidden from real users, catches bots */
.hp-field { position: absolute; left: -9999px; top: -9999px; }

.form-actions { margin-top: 8px; }

.confirm-table { width: 100%; border-collapse: collapse; margin-bottom: 28px; }
.confirm-table th, .confirm-table td { text-align: left; padding: 14px 4px; border-bottom: 1px solid var(--color-line); vertical-align: top; }
.confirm-table th { width: 34%; color: var(--color-ink-soft); font-weight: 700; font-size: 14px; }
.confirm-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.thanks-box { text-align: center; padding: 60px 24px; }
.thanks-box .icon {
  width: 64px; height: 64px; border-radius: 50%; background: var(--color-primary);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 28px; margin: 0 auto 20px;
}
