/* ========================
   CONTACT FORM
   基調: #002c6a / #e9f4ff / 角丸10px
======================== */
.contact{ font-family:"Noto Sans", "Noto Sans JP", sans-serif; color:#000; background:#fff; }
.contact .inner{ 
  padding-bottom: 80px;
}

.contact__head{ text-align:center; padding:80px 0 8px; }
.contact__title{
  font-size:28px; font-weight:700; line-height:1.4; color:#002c6a; margin:0 0 8px; letter-spacing:.02em;
}
.contact__logo{
  width: 220px;
  margin: 0 auto 24px;
}
.contact__lead{ text-align:center; margin:32px auto 16px; line-height:1.9; max-width:720px; font-size:16px; color:#606060; }

.contact__form{ max-width:840px; margin:0 auto; }
.c-form__row{
  display:grid; grid-template-columns:200px 1fr; gap:12px 20px; padding:14px 0; align-items:center;
  border-bottom:1px solid #e9f4ff;
}
.c-form__label{ font-weight:700; line-height:1.6; color:#002c6a; }
.c-form__label .is-required{
  display:inline-block; font-size:12px; font-weight:700; color:#fff; background:#fc445d;
  border-radius:4px; padding:2px 6px; margin-left:8px; vertical-align:middle;
}
.c-form__field input[type="text"],
.c-form__field input[type="email"],
.c-form__field input[type="tel"],
.c-form__field select,
.c-form__field textarea{
  width:100%; padding:12px 14px; border:1px solid #cfd8dc; border-radius:10px; background:#fff;
  font-size:16px; line-height:1.6; transition:border-color .2s ease, box-shadow .2s ease;
}
.c-form__field textarea{ min-height:160px; resize:vertical; }
.c-form__field input:focus,
.c-form__field textarea:focus,
.c-form__field select:focus{
  outline:none; border-color:#8095b4; box-shadow:0 0 0 3px rgba(233,244,255,.9);
}

.c-form__field input[type="text"]::placeholder,
.c-form__field input[type="email"]::placeholder,
.c-form__field input[type="tel"]::placeholder,
.c-form__field select::placeholder,
.c-form__field textarea::placeholder{
  color:#a3a3a3;
  font-weight: 400;
  letter-spacing: .075em;
}

.c-form__hint{ font-size:12px; color:#607d8b; margin-top:6px; }
.c-form__error{ color:#fc445d; font-size:14px; margin-top:6px; display:none; }

/* プライバシー同意 */
.c-form__policy{
  background:#f7fbff; border:1px solid #e0ecff; border-radius:10px; padding:16px; margin:20px 0;
}
.c-form__policy label{ display:flex; gap:10px; align-items:center; line-height:1.7; color:#606060; }
.c-form__policy a{ color:#002c6a; text-decoration:underline !important; }

.c-form__policy span.txt{
  font-size: 12px;
  color: #606060;
  margin-top: 6px;
  padding-left: 24px;
  display: block;
}
.c-form__policy span.txt a{
  color: #002c6a;
  text-decoration: underline !important;
}

/* 送信ボタン */
.c-form__actions{ text-align:center; padding:24px 0 40px; }
.c-btn{
  display:inline-block; min-width:220px; padding:14px 22px; border-radius:10px;
  background:#002c6a; color:#fff; font-weight:700; letter-spacing:.02em; border:1px solid #002c6a;
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.c-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.12); opacity:.95; }
.c-btn[disabled]{ opacity:.6; cursor:not-allowed; }

/* ハニーポット（視覚的に非表示） */
.u-visually-hidden{ position:absolute !important; clip:rect(1px,1px,1px,1px); padding:0; border:0; height:1px; width:1px; overflow:hidden; white-space:nowrap; }

/* SP */
@media (max-width: 768px){
  .contact__title{ font-size:22px; }
  .contact__lead{ padding:0 16px; font-size:14px; margin-top: 16px; margin-bottom: 0;}
  .c-form__row{ grid-template-columns:1fr; }
  .c-form__label{ color:#002c6a; }
}
