:root {
  --navy: #17324a;
  --container-narrow: min(960px, 88vw);
}

.contact-wrap {
  padding-top: 5rem;
}
.container-narrow {
  width: var(--container-narrow);
  margin: 0 auto;
}
.center {
  text-align: center;
}

.contact-title {
  margin: 40px 0 8px;
  text-align: center;
  font-size: clamp(24px, 4vw, 40px);
  font-weight: 800;
  color: var(--navy);
}
.contact-lead {
  text-align: center;
  color: #3c5064;
  margin: 0 0 24px;
}

/* フォーム */
.form-row {
  margin: 18px 0;
}
.form-row label {
  display: block;
  font-weight: 700;
  color: #2b3e52;
  margin: 0 0 6px;
}
.form-row .err-inline {
  color: #d33;
  font-weight: 700;
  margin-left: 0.6em;
}
.form-row .err {
  color: #d33;
  margin: 0.4em 0 0;
}
input[type="text"],
input[type="email"],
textarea {
  width: 100%;
  border: 2px solid #9fb1c6;
  border-radius: 2px;
  padding: 10px 12px;
  font-size: 16px;
}
textarea {
  resize: vertical;
}
.form-actions {
  margin: 28px 0 40px;
  text-align: center;
}
.btn-primary {
  display: inline-block;
  min-width: 280px;
  padding: 14px 32px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  box-shadow: none;
  border: none;
}
.btn-primary:hover {
  opacity: 0.92;
}

/* 確認リスト */
.confirm-list {
  margin: 24px 0 40px;
}
.confirm-list dt {
  font-weight: 700;
  color: #2b3e52;
  margin-top: 22px;
  border-top: 2px solid #9fb1c6;
  padding-top: 12px;
}
.confirm-list dd {
  margin: 6px 0 0 0;
}
.confirm-list .mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

@media (max-width: 640px) {
  :root {
    --container-narrow: min(640px, 94vw);
  }
  .contact-wrap {
    padding-top: clamp(48px, 14vw, 64px);
    padding-left: clamp(18px, 8vw, 28px);
    padding-right: clamp(18px, 8vw, 28px);
  }
  .contact-wrap .btn-primary {
    width: 100%;
    max-width: 320px;
  }
}
