@charset "UTF-8";
/* =========================================
   共通設定（基本のフォームスタイル）
   ========================================= */
html {
  scroll-behavior: smooth;
}


#contacts {
    margin-top: 60px;
}

.contact-intro {
    font-size: 18px;
}

.contact_block {
  width: 100%;
  margin-top: 30px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 0;
  background-color: #E7E4D9;
  padding: 40px 0;
  box-sizing: border-box;
  z-index: 100;
  position: relative;
  max-width: 800px;
}
table.contacts {
  max-width: 720px;
  width: 88.26%;
  margin: 0 auto;
  box-sizing: border-box;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 190%;
}
/* 入力欄の基本設定 */
table.contacts input[type="text"], table.contacts input[type="email"], table.contacts input[type="tel"], select {
  height: 56px;
  width: 100%;
  border-radius: 8px;
  border-style: none;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  box-sizing: border-box;
  padding-left: 10px;
}
#message {
  width: 100%;
  height: 160px;
  border-style: none;
  border-radius: 8px;
  display: block;
  padding: 10px 20px;
  box-sizing: border-box;
}
/* 送信ボタンの基本設定 */
.submitBtn {
  height: 72px;
  font-size: 1.3rem;
  color: #FFFFFF;
  background-color: #604c3f;
  margin: 60px auto 20px auto;
  text-align: center;
  display: block;
  border-radius: 36px;
  border-style: none;
  line-height: normal;
  font-family: 'Noto Sans JP', sans-serif;
  cursor: pointer;
  transition: 0.3s;
}
.submitBtn:hover {
  opacity: 0.7;
}
/* 必須アイコン */
.required-icon {
  border-radius: 20px;
  color: #FFFFFF;
  background-color: #A8090B;
  padding: 1px 8px;
  font-size: 0.65rem;
  margin-left: 10px;
  display: inline-block;
  line-height: 14px !important;
}
/* =========================================
   スマホ用（縦並びレイアウト）
   ========================================= */
@media screen and (max-width: 767px) {
  table.contacts tr, table.contacts th, table.contacts td {
    display: block !important;
    width: 100% !important;
  }
  table.contacts tr {
    padding: 15px 0;
  }
  table.contacts th {
    text-align: left;
    margin-bottom: 5px;
    display: flex !important; /* ラベルと必須アイコンを並べる */
    margin-top: 0px;
    max-width: none;
  }
  .submitBtn {
    width: 100% !important;
  }
  /* 必須アイコン */
  .required-icon {
    /* 1. Flexboxのストレッチ（引き伸ばし）を止める */
    display: inline-block !important;
    align-self: center !important; /* これで縦に伸びなくなります */
    flex-shrink: 0 !important; /* アイコンが潰れないようにする */
    /* 2. 高さの調整 */
    height: auto !important; /* 高さを自動に */
    line-height: 1 !important; /* 文字の行間を詰める */
    padding: 3px 8px !important; /* 上下の値を小さくすると、アイコン自体がスリムになります */
    /* 3. その他デザイン */
    border-radius: 10px !important;
    color: #FFFFFF;
    background-color: #A8090B;
    font-size: 0.65rem;
    white-space: nowrap;
    vertical-align: middle;
    margin-left: 10px !important;
  }
}
/* =========================================
   PC用（横並びレイアウト）
   ========================================= */
@media screen and (min-width: 768px) {
  table.contacts tr {
    display: flex !important;
    align-items: center;
    padding: 20px 0;
  }
  table.contacts th {
    width: 30%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: 10px;
    line-height: normal;
    margin-top: 0px;
  }
  table.contacts td {
    flex-grow: 1;
    width: auto;
  }
  .submitBtn {
    width: 70% !important;
    background-color: #604c3f; /* PCは黒にするなどデザインに合わせる */
  }
}
/* --- エラー画面等の共通パーツは以下（そのまま残します） --- */

.contents {
    padding-bottom: 300px;
}

ul.errmsg li {
  list-style-type: disc;
  list-style-position: inside;
  color: #F33135;
  margin-bottom: 10px;
  font-size: 1.6rem;
}
.contacts-from-err {
    width: 100%;
    text-align: left;
    padding: 90px 5% 50px 5%;
    position: relative;
    z-index: 10;
    font-size: 18px;
}

.bottm_border {
    border-bottom: 1px solid #000000;
    margin-bottom: 30px;
    padding-bottom: 20px;
}

.contacts-from-err h3 {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 30px;
    text-align: center;
}

.catch {
    line-height: 200%;
    text-align: center;
    margin-top: 50px;
    position: relative;
    z-index: 10;
}

.complete_title {
    font-size: 1.5rem;
    font-weight: 900;
    color: #005b34;
}
/* ... (既存のエラー関連コードはすべてこの下に維持してください) ... */
