/* レイアウト */
form {
  width: 70%;
  margin: 0 auto;
}
.form-row {
  display: flex;
  flex-direction: column; /* これによりラベルと入力欄が縦に並ぶ */
  align-items: flex-start; /* 左揃え */
  padding: 20px 0; /* 上下の余白だけ維持 */
  border-bottom: 1px solid #f2f4f5;
}
.form-row:last-child {
  border-bottom: none;
}
.form-row.message-row {
  align-items: flex-start;  /* ラベルを上揃え */
  padding-top: 10px;
  padding-bottom: 10px;
}

.form-row.message-row .form-label {
  padding-top: 8px;
  line-height: 1.2em;
  display: flex;
  align-items: center; /* ラベルテキストと必須を中揃え */
}
.form-label {
  display: flex;
  align-items: center;
  width: 350px;
}
.form-label label {
  font-weight: bold;
}
.form-label span {
  margin-left: 10px;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  background-color: #166ab5;
}

/* フォームパーツのデザイン */
input, textarea {
  background-color: #f2f4f5;
  border: none;
  border-radius: 3px;
  padding: 15px 20px;
  font-size: 16px;
  color: #333;
  flex-grow: 1;
}
input::placeholder,
textarea::placeholder {
  color: #999;
  font-size: 14px;
}
select {
  background-color: #f2f4f5;
  border: none;
  border-radius: 3px;
  padding: 15px 20px;
  font-size: 16px;
  color: #333;
}
input[type="submit"] {
  cursor: pointer;
  margin-top: 30px;
  padding: 15px 45px;
  border: none;
  border-radius: 3px;
  color: #fff;
  font-weight: bold;
  background-color: #166ab5;
}
