/* Contact page */
.contact-alert {
  padding: 1rem 1.5rem;
  margin-bottom: 2rem;
  border-radius: 0.5rem;
  font-size: 1.125rem;
  line-height: 1.6;
}
.contact-alert--success {
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
  color: #155724;
}
.contact-alert--error {
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
}
.contact-alert ul {
  margin: 0;
  padding-left: 1.5rem;
}
.contact-alert li {
  margin: 0.25rem 0;
}

.contact-guidance {
  margin: 4rem 0;
}
.contact-guidance p {
  font-size: 1.25rem;
  font-weight: 250;
  line-height: 205%;
  letter-spacing: -0.4px;
  margin: 0;
  padding: 0;
}
.contact-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin: 4rem 0;
}
.contact-field {
  display: grid;
  grid-template-columns: 0.5fr 1fr;
  align-items: center;
  column-gap: 1.5rem;
  padding: 1rem 0;
}
.contact-field label {
  display: inline-block;
  font-family: var(--font-inria-sans);
  font-weight: 700;
  font-size: 1.5rem; /* 24px */
  letter-spacing: 0.03em;
  margin-bottom: 0.5rem; /* stacked layout fallback */
}
.contact-field--textarea {
  align-items: start;
}
.contact-required {
  display: inline-block;
  background: #de9b27;
  color: #fff;
  border-radius: 0.4rem;
  padding: 0.15rem 0.5rem;
  font-size: 1rem;
  vertical-align: middle;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  background: #fdfdfd;
  border: 1px solid var(--color-gray);
  border-radius: 0.5rem;
  padding: 1rem;
  font-size: 1.25rem; /* 20px */
}
.contact-form textarea {
  min-height: 12rem;
}

.contact-field--zip .contact-zip {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.contact-zip input {
  padding: 0.5rem 0.75rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.contact-zip #zip1 {
  width: 6.5ch; /* 3桁用に小さめ */
}
.contact-zip #zip2 {
  width: 8ch; /* 4桁用に小さめ */
}
.contact-zip__sep {
  font-family: var(--font-inria-sans);
  font-weight: 700;
  font-size: 2rem; /* 32px */
}
.contact-auto {
  background: #686868;
  color: #fff;
  border: 1px solid var(--color-gray);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  cursor: pointer;
}

.contact-submit {
  margin-top: 2rem;
  display: flex;
  justify-content: center;
}
.contact-submit button {
  background: #00a032;
  color: #fff;
  border: 1px solid var(--color-gray);
  border-radius: 0.5rem;
  padding: 1rem 2rem;
  font-size: 1.25rem;
  cursor: pointer;
}

.screen-reader-text {
  position: relative;
}
/* メンテナンス中のメッセージ */
.contact-submit button[disabled] {
  background: #686868;
  color: #fff;
  border: 1px solid var(--color-gray);
  border-radius: 0.5rem;
  padding: 1rem 2rem;
  font-size: 1.25rem;
  cursor: not-allowed;
}
.note {
  font-size: 1.25rem;
  font-weight: 250;
  line-height: 205%;
  letter-spacing: -0.4px;
  text-align: center;
  margin-top: 2rem;
}

@media (max-width: 768px) {
  .contact-field {
    grid-template-columns: 1fr;
  }
  .contact-guidance {
    padding: 1.5rem;
  }
  .contact-auto {
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
    vertical-align: middle;
    background: #686868;
    color: #fff;
    border: 1px solid var(--color-gray);
    border-radius: 0.5rem;
    cursor: pointer;
  }
}
