/* フォーム強化UI: checkout/contact だけで読み込み、既存の全体フォームには波及させません。 */
.form-enhanced {
  position: relative;
}

.form-section-card {
  border: 1px solid #d0d7de;
  background: #ffffff;
  padding: 16px;
}

.form-section-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid #d0d7de;
  color: #003366;
  font-size: 14px;
  font-weight: 900;
  padding-bottom: 8px;
  margin-bottom: 12px;
}

.form-section-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  background: #003366;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
}

.form-field {
  display: flex;
  flex-direction: column;
}

.form-field label {
  color: #374151;
  font-weight: 700;
  margin-bottom: 4px;
}

.form-field-hint {
  color: #6b7280;
  font-size: 11px;
  line-height: 1.6;
  margin-top: 4px;
}

.form-draft-status {
  border: 1px solid #d0d7de;
  background: #e8eef5;
  color: #003366;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 10px;
}

.address-autofill-note {
  border: 1px solid #d0d7de;
  background: #f8fafc;
  color: #4b5563;
  font-size: 11px;
  line-height: 1.6;
  padding: 8px 10px;
}

.date-input-shell {
  cursor: pointer;
}

.date-input-shell .flatpickr-input[readonly],
.date-input-shell .input-classic {
  cursor: pointer;
}

.form-enhanced .input-classic {
  min-height: 42px;
}

.form-enhanced textarea.input-classic {
  min-height: auto;
}

.form-enhanced .input-classic:focus,
.form-enhanced .input-classic:focus-visible {
  outline: 2px solid rgba(0, 51, 102, 0.2);
  outline-offset: 1px;
  border-color: #003366;
  box-shadow: 0 0 0 3px rgba(0, 51, 102, 0.12);
}

.form-enhanced [aria-invalid="true"] {
  border-color: #b00020;
  box-shadow: 0 0 0 3px rgba(176, 0, 32, 0.12);
}

.form-enhanced .form-error:empty {
  display: none;
}

.choice-grid label {
  border: 1px solid #e5e7eb;
  min-height: 44px;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.choice-grid label:hover,
.choice-grid label:focus-within {
  background: #f8fafc;
  border-color: #003366;
}

.form-enhanced button,
.form-enhanced a,
.form-enhanced label,
.form-enhanced input,
.form-enhanced select,
.form-enhanced textarea {
  touch-action: manipulation;
}

@media (prefers-reduced-motion: reduce) {
  .choice-grid label {
    transition: none;
  }
}
