/* ======================
お問い合わせページ
====================== */

.contact-page{
margin-top:120px;
padding:140px 20px 80px;
max-width:700px;
margin-left:auto;
margin-right:auto;
}

/* フォーム */

.contact-form{
margin-top:40px;
background:#fff;
padding:40px;
border-radius:10px;
box-shadow:0 5px 15px rgba(0,0,0,0.05);
}

/* 入力ブロック */

.form-group{
margin-bottom:25px;
}

.form-group label{
display:block;
margin-bottom:8px;
font-weight:600;
}

/* 必須 */

.required{
color:#c0392b;
font-size:12px;
margin-left:5px;
}

/* 入力欄 */

input,
textarea{
width:100%;
padding:12px;
border:1px solid #ddd;
border-radius:6px;
font-family:"Noto Sans JP", sans-serif;
transition:0.3s;
}

input:focus,
textarea:focus{
border-color:#7b4f2a;
box-shadow:0 0 0 2px rgba(123,79,42,0.1);
outline:none;
}

/* テキストエリア */

textarea{
height:160px;
resize:vertical;
}

/* チェック */

.check{
font-size:14px;
line-height:1.6;
}

.check input{
margin-right:8px;
}

/* エラー */

.error{
color:#e74c3c;
font-size:13px;
margin-top:5px;
}

/* ======================
送信ボタン（完成版）
====================== */

.contact-btn{
position:relative;
display:flex;
align-items:center;
justify-content:center;
width:100%;
margin-top:30px;
padding:16px;
background:#8b5e3c;
color:#fff;
border:none;
border-radius:8px;
font-size:16px;
font-weight:600;
letter-spacing:0.05em;
cursor:pointer;
overflow:hidden;
transition:all 0.3s ease;
}

/* ホバー */

.contact-btn:hover{
background:#6f4626;
transform:translateY(-3px);
box-shadow:0 12px 25px rgba(0,0,0,0.2);
}

/* 押した時 */

.contact-btn:active{
transform:translateY(0);
box-shadow:0 5px 10px rgba(0,0,0,0.15);
}

/* テキスト */

.btn-text{
transition:0.3s;
}

/* ローディング */

.loading{
width:20px;
height:20px;
border:3px solid rgba(255,255,255,0.3);
border-top:3px solid #fff;
border-radius:50%;
position:absolute;
opacity:0;
animation:spin 1s linear infinite;
}

@keyframes spin{
0%{ transform:rotate(0deg); }
100%{ transform:rotate(360deg); }
}

/* 送信中 */

.contact-btn.loading .btn-text{
opacity:0;
}

.contact-btn.loading .loading{
opacity:1;
}

.contact-btn.loading{
pointer-events:none;
opacity:0.8;
}

/* 完了ページ */

.thanks-message{
text-align:center;
margin-top:40px;
line-height:1.8;
}

.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.recaptcha-wrap{
  margin:20px 0;
}

.contact-btn[disabled]{
  opacity:0.7;
  cursor:not-allowed;
}

.error{
  color:#c00;
  font-size:14px;
  margin-top:6px;
}