/* Application form states (WBS 3-5). Kept out of styles.css so that file stays identical to the
   approved demo. Uses the demo's design tokens from styles.css. */

.field-error,
.form-status {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.6;
  color: #9b3a2e;
}

.form-status {
  margin: 0 0 16px;
  padding: 10px 14px;
  border: 1px solid #e3c4bd;
  background: #fbf3f1;
  border-radius: var(--radius);
  text-align: center;
}

.field input[aria-invalid="true"] { border-color: #9b3a2e; }

.consent-row input[aria-invalid="true"] { outline: 1px solid #9b3a2e; }

.consent-row + .field-error { margin: -12px 0 20px; }

/* Honeypot: invisible to people and screen readers, still present for bots. */
.hp-field {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.recaptcha-notice {
  text-align: center;
  line-height: 1.6;
}

.recaptcha-notice a { color: var(--muted); }

/* Google allows hiding the badge when the notice above is shown. */
.grecaptcha-badge { visibility: hidden; }

.btn-primary[disabled] { opacity: 0.6; cursor: progress; }

/* iOS Safari zooms the page when a focused input is below 16 px (demo: 0.98rem = 15.7 px). */
@media (max-width: 768px) {
  .field input { font-size: 16px; }
}

/* The line above the fields (PM 2026-09-20): a guest's 「こちらからログイン」, replaced in the same
   place by the logged-in seller's note, so the form never moves when one becomes the other. */
#apply-form > .form-note:first-child {
  margin: 0 0 20px;
  min-height: 2.6em;
  line-height: 1.3;
  color: var(--muted);
}

/* 相談内容・備考（任意）: a full-width field under the name/contact rows. */
#apply-form .field:has(> textarea) { margin-bottom: 16px; }
.field textarea { min-height: 7.5em; }
.field textarea[aria-invalid="true"] { border-color: #9b3a2e; }
