/* ============================================================
   お問い合わせ: フォームカード
   Figma: お問い合わせ PC版 569:5559 / カード 1100 / 入力 600x53
   数値・色・タイポは Figma REST API の実測値。
   ============================================================ */

.nv-contact-main{
  background:var(--nv-white);
  padding-block:16px 0;
}

/* ---- フォームカード ---- */
.nv-cform-card{
  margin:56px 0 88px;
  padding:64px 80px;
  background:var(--nv-white);
  border-radius:12px;
  box-shadow:0 0 20px rgba(42,103,212,.15);
}

/* 送信結果メッセージ */
.nv-cform-notice{
  margin:0 0 32px;
  padding:16px 24px;
  border-radius:8px;
  font-size:15px;
  line-height:1.7;
  letter-spacing:.02em;
}
.nv-cform-notice--ok{
  background:var(--nv-base);
  border:1px solid var(--nv-main);
  color:var(--nv-text);
}
.nv-cform-notice--ng{
  background:#FDECEC;
  border:1px solid #E5484D;
  color:#B4232A;
}

/* ---- 各行: ラベル左 + 入力右 ---- */
.nv-cform-row{
  display:grid;
  grid-template-columns:340px 600px;
  align-items:center;
  gap:0;
  padding:16px 0;
}
.nv-cform-row--textarea{align-items:start}

.nv-cform-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:16px;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--nv-text);
}
.nv-cform-row--textarea .nv-cform-label{padding-top:14px}
.nv-cform-req{
  display:inline-flex;
  align-items:center;
  height:18px;
  padding:0 8px;
  border-radius:4px;
  background:var(--nv-main);
  font-size:12px;
  line-height:18px;
  font-weight:700;
  color:var(--nv-white);
}

/* ---- 入力欄 ---- */
.nv-cform-input,
.nv-cform-select,
.nv-cform-textarea{
  width:600px;
  max-width:100%;
  padding:0 24px;
  height:53px;
  border:1px solid #D9D9D9;
  border-radius:8px;
  background:#F5F6F8;
  font-family:var(--nv-font);
  font-size:14px;
  line-height:21px;
  font-weight:500;
  color:var(--nv-text);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.nv-cform-textarea{
  height:179px;
  padding:16px 24px;
  resize:vertical;
}
.nv-cform-input::placeholder,
.nv-cform-textarea::placeholder{color:#C0C0C0}
.nv-cform-input:focus,
.nv-cform-select:focus,
.nv-cform-textarea:focus{
  outline:none;
  border-color:var(--nv-main);
  box-shadow:0 0 0 3px rgba(42,103,212,.12);
}

/* select のキャレット */
.nv-cform-select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%231F3A5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 20px center;
  padding-right:52px;
  cursor:pointer;
}

/* ---- プライバシー同意 (中央) ---- */
.nv-cform-agree{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:24px 0 0;
  font-size:16px;
  line-height:1.5;
  letter-spacing:.04em;
  color:var(--nv-text);
  cursor:pointer;
}
.nv-cform-agree input{
  width:24px;
  height:24px;
  flex:0 0 24px;
  border:2px solid #D9D9D9;
  border-radius:2px;
  accent-color:var(--nv-main);
  cursor:pointer;
}
.nv-cform-agree a{color:var(--nv-main);text-decoration:underline}

/* ---- 送信ボタン (全幅) ---- */
.nv-cform-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:72px;
  margin-top:32px;
  border:0;
  border-radius:8px;
  background:var(--nv-main);
  font-size:18px;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--nv-white);
  cursor:pointer;
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.nv-cform-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(42,103,212,.30);
}

/* ハニーポット (視覚・スクリーンリーダから隠す) */
.nv-cform-hp{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* ---- レスポンシブ ---- */
@media (max-width:1024px){
  .nv-cform-card{padding:48px}
  .nv-cform-row{grid-template-columns:200px 1fr}
  .nv-cform-input,
  .nv-cform-select,
  .nv-cform-textarea{width:100%}
}

@media (max-width:767px){
  .nv-contact-main{padding-block:8px 0}
  .nv-cform-card{margin:40px 0 56px;padding:28px 20px}
  .nv-cform-row{grid-template-columns:1fr;align-items:start;gap:8px;padding:12px 0}
  .nv-cform-row--textarea .nv-cform-label{padding-top:0}
  .nv-cform-agree{gap:12px;text-align:left}
}
