@charset "UTF-8";
/* ==========================================================
   static.css — 静的化に伴う補正・追加パーツ・スマホ対応
   （元テーマの CSS は変更せず、ここで上書き）
   ========================================================== */

html { scroll-behavior: smooth; }
body { font-family: "Trebuchet MS", Geneva, Arial, Helvetica, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; }

/* 検索フォーム廃止分の高さ補正（元: #searchForm margin-top -52px + height 15px） */
#contents { margin-top: 14px; }

/* ロゴ（h1 / p 共通） */
#pageTitle { margin: -5px 0 0 15px; width: 185px; height: 65px; }
#pageTitle a { display: block; width: 100%; height: 0; padding-top: 65px; overflow: hidden; }

/* 見出しタグ変更後も元の見た目を維持 */
.title { display: block; }
h1.title, h2.title { font-weight: bold; }
.newsTextBox .h4 { font-size: 16px; margin: 0; }
.newsTextBox .h5 { font-size: 14px; margin: 0; }
.newsTextBox .h4.bgTitle_01, .newsTextBox .h4.bgTitle_02 { font-size: 16px; }
.news { font-size: 12px; line-height: 20px; margin: 12px 0; }
.tc { text-align: center; }
.tl { text-align: left; }
#mainVisual.mvHeading { background: none; font-size: 0; line-height: 0; }
#mainVisual.mvHeading img { display: block; }

/* ページトップ */
.toTop { margin: 0 0 20px 0; }
.toTop img { vertical-align: middle; }

/* パンくず */
.breadcrumb { margin: 0 0 12px 11px; font-size: 11px; color: #888; }
.breadcrumb a { color: #006699; }

/* トップ：右側の紹介テキスト */
.topIntro { padding: 6px 4px 0 0; box-sizing: border-box; }
.topIntro h2 { font-size: 14px; line-height: 1.5; color: #333; margin: 0 0 8px; }
.topIntro p { font-size: 12px; line-height: 1.75; color: #555; margin: 0 0 6px; }

/* ご予約ボックス（旧 STAFF BLOG / MAIL MAGAZINE 枠の置き換え） */
#reserveBox {
  clear: both;
  margin: 25px 0 35px 0;
  padding: 6px;
  background: #fff;
  border: 1px solid #d6d6d6;
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
  width: 559px;
  box-sizing: border-box;
}
#reserveBox .reserveInner {
  background: #6f6f6f;
  background: linear-gradient(135deg, #7a7a7a 0%, #5d5d5d 100%);
  color: #fff;
  padding: 14px 22px 16px;
  min-height: 125px;
  box-sizing: border-box;
}
#reserveBox .reserveLabel { margin: 0 0 6px; font-size: 13px; letter-spacing: .12em; color: #d4d4d4; text-align: right; }
#reserveBox p { margin: 0; }
#reserveBox .reserveLead { font-size: 13px; }
#reserveBox .reserveTel { font-size: 26px; font-weight: bold; letter-spacing: .04em; margin: 4px 0 2px; }
#reserveBox .reserveTel span { font-size: 13px; margin-right: 8px; color: #ddd; }
#reserveBox a { color: #fff; text-decoration: none; }
#reserveBox a:hover { text-decoration: underline; }
#reserveBox .reserveMobile { font-size: 12px; }
#reserveBox .reserveAddr { font-size: 11px; color: #e6e6e6; margin-top: 6px; }

.tableWrap { max-width: 100%; }

/* フッター */
#footerBox p { margin: 0; }
#footerBox a { color: #006699; }

/* ==========================================================
   スマホ（768px以下）：1カラムに縦積み
   ========================================================== */
@media (max-width: 768px) {
  body { background-size: auto 180px; -webkit-text-size-adjust: 100%; }
  #allBox, #contents, #contentsTop { width: auto; }
  #headerBox { width: auto; height: auto; min-height: 90px; padding: 12px 0 0; background-size: cover; background-position: 30% center; }
  #pageTitle { margin: 0 0 12px 12px; width: 140px; height: 50px; background: none; }
  #pageTitle a { padding-top: 50px; }
  nav #g_navi { width: auto; height: auto; background: #111; display: flex; flex-wrap: wrap; margin: 0; }
  #g_navi li { float: none; width: 33.333%; }
  #g_navi li a { height: auto; padding: 12px 0; background: none !important; color: #fff !important; text-align: center; font-weight: bold; font-size: 13px; letter-spacing: .06em; border-bottom: 1px solid #333; }
  #g_navi li a[aria-current] { background: #333 !important; }
  #contents { margin: 0 0 20px; background: none; overflow: visible; }
  #contentsTop, #contentsBottom { display: none; }
  #mainBox, #subBox { float: none; width: auto; margin: 0; padding: 0 12px; top: 0; position: static; box-sizing: border-box; }
  #subBox { background: #f2f2f2; padding: 16px 12px 8px; margin-top: 10px; }
  #mainVisual { width: auto; height: auto; margin: 12px 0 18px; background-size: cover; aspect-ratio: 560 / 192; }
  #mainVisual a { padding-top: 34%; }
  img { max-width: 100%; height: auto; }
  .img { box-sizing: border-box; }
  .dateBox, .newsBox { width: auto; margin: 0; }
  .title { width: auto; margin: 0 0 10px; height: auto; min-height: 45px; line-height: 1.5; padding: 10px 0 8px; text-indent: 0; padding-left: 14px; background-size: 100% 100%; font-size: 16px; box-sizing: border-box; }
  .bgTitle_01, .bgTitle_02 { width: auto; margin-left: 0; background-size: auto 100%; height: auto; min-height: 57px; padding: 14px 0 0; line-height: 1.5; }
  .photoBoxL, .photoBoxC { float: none; width: auto !important; margin: 0 0 10px 0; }
  .photoBoxR { width: auto !important; max-width: 40%; }
  .tableWrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .tableWrap table { min-width: 520px; }
  #first_Left, #first_Right { float: none; width: auto; height: auto; margin: 0 0 12px; }
  #onlyOne { margin: 0 auto; }
  #reserveBox { width: auto; margin: 20px 0; }
  #reserveBox .reserveTel { font-size: 24px; }
  .photoBoxLog { margin-right: 6px; }
  #staff_bosyu, #headSpa { max-width: 100%; background-size: contain; }
  #footerBox { height: auto; padding: 16px 12px 24px; font-size: 11px; line-height: 1.7; background-size: auto 100%; }
}
.newsTextBox div.h5 { font-weight: bold; margin: 0; }
.topIntroLink a { text-decoration: underline; }
#subBox .photoBoxLog { height: 96px; }
@media (min-width: 769px) { #reserveBox { margin-left: 4px; width: 562px; } }
/* サイドバー STAFF：名前を1行に */
#subBox .photoBoxLog { height: 84px; }
#subBox .photoBoxLog .caption { clear: both; white-space: nowrap; letter-spacing: -0.02em; padding: 0; margin: 0 -4px 0 0; text-align: center; }
/* アクセスマップ（Googleマップ埋め込み） */
.accessMap { margin: 10px 0 20px; }
.accessMap .bgTitle_02 { margin-bottom: 10px; }
.mapFrame { width: 549px; height: 350px; padding: 5px; background: #fff; border: 1px solid #ddd; }
.mapFrame iframe { width: 100%; height: 100%; border: 0; display: block; }
.mapLink { text-align: right; font-size: 11px; margin: 6px 0 0; }
@media (max-width: 768px) { .mapFrame { width: auto; height: 300px; } }
/* 料金表 準備中 */
.pricePrep { margin: 20px 10px 30px; padding: 24px 20px; border: 1px solid #ddd; background: #f7f7f7; text-align: center; font-size: 13px; line-height: 1.9; }
.pricePrep p { margin: 0 0 10px; }
.pricePrepTitle { font-size: 18px; font-weight: bold; color: #333; letter-spacing: .05em; }
.pricePrepTel { font-size: 15px; font-weight: bold; }
