@charset "UTF-8";

/*---------------------------- 共通部分 ----------------------------*/

html, body, header, nav, article, section, aside, footer,
div, span, p, h1, h2, h3, h4,
ul, ol, li, dl, dt, dd,
table, tr, th, td, tbody, thead, tfoot {
  margin: 0;
  padding: 0;
}

header, nav, article, section, aside, footer {
  display: block;
}

ol, ul {
  list-style: none;
}

img {

  max-width: 100%;
  height: auto;
  border: 0;
}

a:link,
a:visited {
  color: #583822; /* PCと統一 */
}

a:hover {
  color: #765c47; /* PCと統一 */
}

p {
  margin: 15px 0;
  line-height: 1.7;
  letter-spacing: 0.05em;
}

/*---------------------------- スマートフォン向けのスタイル ----------------------------*/
@media only screen and (max-width: 779px) {

/*---------- ページ全体 ----------*/
body {
  width: 100%;
  font: 87.5% 'ヒラギノ角ゴ pro W3', "Hiragino KaKu Gothic Pro", "メイリオ", Meiryo, Osaka, sans-serif;
  color: #333333;
  letter-spacing: 0.05em;
  -webkit-text-size-adjust: 100%;
  background-color: #ffffff; /* PCと統一 */
}

/*---------- コンテンツ ----------*/
#contents {
  padding: 13px 0 25px 0;
  font-size: 1em;
}

#contents h2 {
  margin: 0 0 10px 0;
  padding: 14px 0;
  font-size: 1.6em;
  color: #880000; /* PCと統一 */
  text-align: center;
  font-weight: bold;
  background: none;
}

#contents h3 {
  margin: 12px 0 14px 0;
  padding: 10px;
  line-height: 1.4;
  font-size: 1.2em;
  color: #54351f; /* PCと統一 */
  border-bottom: solid 4px #966934;
}

#contents p {
  margin: 0 4px;
  padding: 2px;
  line-height: 1.8;
}

/*---------- 背景エリア ----------*/
.flex_bg {
  padding: 14px 0 0 0;
  background-color: #f1f6f9; /* PCと統一 */
}

.flex_gold_bg {
  padding: 20px 0;
  background-color: #ebe6e0; /* PCと統一 */
}

.cream_bg {
  padding: 14px 0 0 0;
  background-color: #fbf5e2; /* PCと統一 */
}

/*---------- フッター ----------*/
#footer {
  padding: 20px 0 0 0;
  color: #333;
  text-align: center;
  background-color: #f9f0d6; /* PCと統一 */
}

#footer p {
  padding: 10px;
  color: #555;
}

#footer a {
  color: #555 !important;
}

#footer a:hover {
  color: #777 !important;
}

#footer .copy {
  margin: 10px 0 0 0;
  padding: 10px;
  font-size: 0.92em;
  color: #fff;
  background-color: #564732; /* PCと統一 */
}

/*---------- お問い合わせフォーム ----------*/
form.contact-form {
  background-color: #fff;
  padding: 15px;
  width: 95%;
  margin: 0 auto;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  text-align: left;
  font-size: 24px;
}

form.contact-form label {
  display: block;
  margin-top: 10px;
  font-weight: bold;
  font-size: 24px;
  color: #333;
}

form.contact-form input,
form.contact-form textarea {
  width: 100%;
  padding: 10px;
  margin-top: 8px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 24px;
}

form.contact-form textarea {
  resize: vertical;
  min-height: 120px;
}

form.contact-form button {
  margin-top: 15px;
  width: 100%;
  padding: 12px;
  border: none;
  border-radius: 6px;
  background: #28a745; /* PCと統一（緑ボタン） */
  color: white;
  font-size: 24px;
  cursor: pointer;
}

form.contact-form button:hover {
  background: #218838; /* PCと統一 */
}
/* ------------------ SP用ハンバーガーメニュー ------------------ */
@media only screen and (max-width: 779px) {
  .nav-pc {
    display: none; /* PCナビ非表示 */
  }

  .nav_icon {
    display: block;
    cursor: pointer;
    position: fixed;
    top: 12px;
    right: 15px;
    width: 40px;
    height: 30px;
    z-index: 2000;
    background: none;
    border: none;
  }

  .nav_icon span {
    display: block;
    width: 100%;
    height: 3px;
    margin: 6px 0;
    background-color: #333;
    transition: 0.3s;
  }

}/* ------------------ ハンバーガーメニュー（SPオーバーレイ） ------------------ */
@media only screen and (max-width: 779px) {
  .nav-pc {
    display: none; /* PCナビ非表示 */
  }

  /* ハンバーガーアイコン */
  .nav_icon {
    display: block;
    cursor: pointer;
    position: fixed;
    top: 15px;
    right: 20px;
    width: 30px;
    height: 25px;
    z-index: 2001;
    background: none;
    border: none;
  }

  .nav_icon span {
    display: block;
    width: 100%;
    height: 3px;
    margin: 5px 0;
    background-color: #333;
    transition: 0.3s;
  }

  /* オーバーレイ背景 */
  #nav-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.9);
    z-index: 2000;
    text-align: center;
  }

  #nav-overlay ul {
    list-style: none;
    padding: 0;
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  #nav-overlay ul li {
    margin: 20px 0;
  }

  #nav-overlay ul li a {
    color: #fff;
    font-size: 20px;
    text-decoration: none;
    letter-spacing: 0.1em;
  }

  #nav-overlay ul li a:hover {
    color: #ffcc00;
  }

  /* メニューがアクティブの時 */
  #nav-overlay.active {
    display: block;
  }

  /* アイコン変形（×にする） */
  .nav_icon.open .bar1 {
    transform: rotate(45deg) translate(5px, 5px);
  }
  .nav_icon.open .bar2 {
    opacity: 0;
  }
  .nav_icon.open .bar3 {
    transform: rotate(-45deg) translate(6px, -6px);
  }
}
/* お問い合わせ */
.btn-contact {
  display: inline-block;
  padding: 10px 20px;
  margin-top: 10px;
  background-color: #CC0000;
  color: #fff !important;
  text-decoration: none;
  border-radius: 5px;
  font-size: 12px;
}
.btn-contact:hover {
  background-color: #FF3333;
}
} /* ← @media の閉じカッコ */
@media only screen and (max-width: 779px) {
  #header h1 {
    font-size: 4vw;      /* 画面幅に応じたフォントサイズ */
    white-space: nowrap; /* 改行しない */
    overflow: hidden;    /* はみ出しを隠す（任意） */
    text-overflow: ellipsis; /* はみ出す場合は…表示（任意） */
  }
} 
@media only screen and (max-width: 779px) {
  /* ヘッダー全体 */
  #header_inner {
    display: flex;
    flex-direction: column; /* 縦方向に積む */
    align-items: flex-start; /* 左寄せ */
    padding: 5px 10px;
    gap: 5px;
  }
  /* 1行目：ハンバーガー＋ロゴ */
  .header-top {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
  /* ハンバーガーを左側に */
  .nav_icon {
    width: 30px;
    height: 25px;
    flex-shrink: 0;
    position: static;
  }

   #h_logo img {
    max-height: 40px;
    width: auto;
  }
  /* タイトル文字 */
  #header h1 {
    order: 2;
    font-size: 4vw;        /* 画面幅に応じて縮小 */
    white-space: nowrap;   /* 改行禁止 */
    overflow: hidden;
    text-overflow: ellipsis; /* どうしても収まらない場合は… */
    flex: 1;               /* 残り幅いっぱいに広がる */
    margin: 0;
    text-align: left;
  }
}
@media only screen and (max-width: 779px) {
  /* ヘッダー全体を横並びに */
  #header_inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 5px 10px;
    gap: 8px;
  }

  /* ハンバーガー */
  .nav_icon {
    order: 1;
    position: static;
    width: 30px;
    height: 25px;
    flex-shrink: 0;
  }

  /* ロゴ */
  #h_logo {
    order: 2;
    flex-shrink: 0;
  }
  
  /* キャッチコピー */
 #header h1 {
    font-size: 3.5vw;    /* 幅に応じて縮小 */
    white-space: nowrap; /* 改行禁止 */
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
    text-align: left;
    color: #333;
    width: 100%;
  }
}
}
@media only screen and (max-width: 779px) {

  /* テーブル全体 */
  table.table_line {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
    font-size: 14px;
  }

  /* 左列（見出しセル） */
  td.table_left {
    border: 1px solid #ccc;
    background-color: #EEFFFF; /* PCと同じ */
    padding: 8px;
    font-weight: bold;
    width: auto; /* 左列を固定幅に */
  }

  /* 右列（データセル） */
  td.table_right {
    border: 1px solid #ccc;
    background-color: #ffffff;
    padding: 8px;
    width: auto;
  }

  /* 共通セル */
  td.table_line {
    border: 1px solid #ccc;
    padding: 8px;
  }

  /* 横スクロール対応（列が多い場合） */
  .table-wrapper {
    overflow-x: auto;
  }

}
.align-form {
  margin-left: 0;
  padding-left: 0;
  display: block;
}
