/* ---------- お問い合わせフォーム（/contact/） ---------- */
.contact-form{
  margin-top:var(--sp-el);
  display:flex;
  flex-direction:column;
  gap:22px;
}
.form-row{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.form-row label{
  font-weight:700;
  font-size:15px;
  color:var(--c-navy-ink);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.form-row label a{
  color:var(--c-teal-deep);
  text-decoration:underline;
  text-decoration-color:var(--c-sky);
}
.form-required,
.form-optional{
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  padding:2px 8px;
  border-radius:var(--radius-pill);
}
.form-required{ background:var(--c-teal-soft); color:var(--c-teal-deep); }
.form-optional{ background:var(--c-bg-soft); color:var(--c-muted); }

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form select,
.contact-form textarea{
  width:100%;
  font:inherit;
  font-size:16px;
  color:var(--c-ink);
  background:var(--c-white);
  border:1.5px solid var(--c-line);
  border-radius:var(--radius-sm);
  padding:12px 16px;
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.contact-form textarea{ resize:vertical; min-height:140px; line-height:1.7; }
.contact-form input:focus-visible,
.contact-form select:focus-visible,
.contact-form textarea:focus-visible{
  outline:none;
  border-color:var(--c-teal);
  box-shadow:0 0 0 3px rgba(57,184,200,.2);
}
.contact-form input[aria-invalid="true"],
.contact-form textarea[aria-invalid="true"]{
  border-color:var(--c-orange);
}

.form-row--checkbox{
  flex-direction:row;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:10px 8px;
}
.form-row--checkbox input[type="checkbox"]{
  width:20px;
  height:20px;
  margin-top:2px;
  accent-color:var(--c-teal-deep);
  flex-shrink:0;
}
.form-row--checkbox label{ font-weight:400; font-size:14px; color:var(--c-ink); }

.form-error{
  margin:0;
  font-size:13px;
  color:var(--c-orange);
}

.form-status{
  margin:0;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  font-size:14px;
  font-weight:700;
}
.form-status.is-error{
  background:#FFF4EA;
  color:var(--c-orange);
  border:1.5px solid var(--c-orange);
}
.form-status.is-success{
  background:var(--c-teal-soft);
  color:var(--c-teal-deep);
  border:1.5px solid var(--c-teal);
}

/* ハニーポット：視覚的にも支援技術的にも非表示 */
.hp{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
