/* ===== 色・変数 ===== */
:root{
  --paper: #f3efe7;        /* 生成り */
  --ink: #1c1c1c;          /* 墨 */
  --muted:#6b6b66;         /* 灰緑 */
  --green:#28593c;         /* 深い森緑（タイトル） */
  --line:#e0dbd0;          /* 薄い線 */
  --shadow: 0 18px 40px rgba(0,0,0,.18);
}

/* ===== ベース ===== */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--ink);
  font-family:"Noto Sans JP", system-ui, -apple-system, Segoe UI, Roboto, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  position:relative;
  min-height:100vh;
  background:var(--paper); /* フォールバック */
}

/* 全体背景：Background.jpg をぼかして固定 */
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:url("./Background.jpg") center/cover no-repeat;
  filter:blur(12px) brightness(0.85);
  z-index:-1;
}

/* ===== ヘッダー ===== */
.wrap{max-width:1200px; margin:0 auto; padding:0 clamp(16px,3vw,32px)}
.site{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(243,239,231,.78);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(0,0,0,.05);
}
.head{display:flex; align-items:center; justify-content:space-between; padding:12px 0}
.brand{display:flex; align-items:center; gap:10px; font-family:"Noto Serif JP", serif}
.logo-dot{width:26px; height:26px; border-radius:8px; background:#2b3a2f}
.brand-name{font-weight:700; letter-spacing:.06em}
.nav a{
  display:inline-block;
  padding:8px 10px;
  text-decoration:none;
  opacity:.85;
  color:var(--ink);
}
.nav a:hover{opacity:1}
.btn{
  border:1px solid #2b3a2f;
  border-radius:999px;
  padding:8px 16px;
  text-decoration:none;
  color:var(--ink);
}
.btn.solid{background:#2b3a2f; color:#fff;border-color:#2b3a2f }
/*.btn.ghost{background:transparent}

/* ===== ページ骨格 ===== */
.sheet{padding-top:24px}

/* ===== ヒーロー（文字の後ろに写真は入れない） ===== */
.hero{
  /*position:relative;*/        /* ご要望通り位置指定は不要 */
  border-radius:0 0 22px 22px;
  overflow:hidden;
  min-height:20vh;              /* ← 指定どおり 20vh */
  background:rgba(243,239,231,.8); /* 生成りの和紙風 */
}
.hero-inner{
  position:relative;
  display:flex; flex-direction:column; align-items:flex-start;
  padding: clamp(28px, 8vw, 80px) 0;
}
.crumb{
  margin:0 0 10px;
  font-size:13px; color:var(--muted);
  border-bottom:2px dotted var(--muted);
  padding-bottom:2px;
}
.display{
  font-family:"Noto Serif JP", serif;
  font-weight:700;
  color:var(--green);
  letter-spacing:.18em;
  font-size:clamp(34px, 8vw, 96px);
  line-height:1.05;
  margin:0;
}

/* ===== access.jpg の大きな見せ方 ===== */
.lead{
  width:min(100%, 1080px);
  margin: clamp(-24px, -3vw, -12px) auto 0;   /* ヒーローと重なり過ぎない控えめなオーバーラップ */
  border-radius:14px;
  overflow:hidden;
  box-shadow: var(--shadow);
  background:#ffffff;
}
.lead img{display:block; width:100%; height:auto}

/* ===== 情報＋マップ（地図をより大きく） ===== */
.info-block{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;   /* ← 地図側を広めに */
  gap: clamp(20px, 4vw, 40px);
  align-items:start;
  margin: clamp(22px, 5vw, 60px) 0 clamp(40px, 8vw, 90px);
}
@media (max-width: 920px){
  .info-block{grid-template-columns:1fr}
}

.info-card{
  background: rgba(255,255,255,.9);
  border:1px solid var(--line);
  border-radius:14px;
  padding: clamp(16px, 2.4vw, 22px);
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.info-title{
  font-family:"Noto Serif JP", serif;
  font-weight:700;
  font-size: clamp(18px, 2.6vw, 22px);
  margin-bottom:10px;
}
.pairs{display:grid; gap:12px}
.row{display:grid; grid-template-columns: 84px 1fr; gap:14px; align-items:start}
.row dt{color:var(--muted)}
.row dd{margin:0}
.tel{text-decoration:none; border-bottom:1px dotted #999}
.btns{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px}
.notes{font-size:12px; color:#666; margin-top:10px}

/* 地図を縦にも広く（可視性アップ） */
.map{
  aspect-ratio: 4 / 3;                 /* ← 以前の16/10より背を高く */
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
@media (max-width: 920px){
  .map{ aspect-ratio: 3 / 2; }         /* スマホではさらに縦長に */
}
.map iframe{width:100%; height:100%; border:0}

/* ===== 経路図（access と同サイズ感の枠） ===== */
.route-block{ margin: clamp(28px, 6vw, 80px) auto 0; }
.route{ /* lead と合わせるための見た目調整は HTML で .lead を併記 */ }

.route-placeholder{
  display:grid; place-items:center;
  width:100%;
  aspect-ratio: 16 / 9;                 /* access.jpg が16:9想定。異なる場合は合わせて変更 */
  background:
    linear-gradient(0deg, rgba(255,255,255,.5), rgba(255,255,255,.5)),
    repeating-linear-gradient(45deg, #f0ebe1 0 10px, #e8e2d7 10px 20px);
  color:#666; font-size:14px;
}

/* ===== フッター ===== */
.foot{
  text-align:center;
  color:#777;
  border-top:1px solid rgba(0,0,0,.06);
  padding: 28px 0 60px;
}

/* ===== スマホ最適化の補助（細かい余白・文字サイズ） ===== */
@media (max-width: 600px){
  .display{letter-spacing:.14em}
  .row{grid-template-columns: 70px 1fr; gap:10px}
  .info-card{padding:16px}
  .lead{margin-top: clamp(-16px, -4vw, -8px)}
}









/*予約*/
/*-- 固定予約ボタン --*/
.fixed-reserve-button {
  position: fixed;
  right: 20px;
  bottom: 40px;
  background-color: #a96700; /* お好きな色に変更可能 */
  color: white;
  padding: 18px 40px;
  border-radius: 30px;
  font-weight: bold;
  font-size: 16px;
  z-index: 30;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  transition: background-color 0.3s;
}

.fixed-reserve-button:hover {
  background-color: #875800; /* ホバー時の色 */
}


.time-list{display:grid; gap:6px; margin-top:4px}
.time-row{display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center}
.time-row .label{white-space:nowrap; font-weight:500; color:var(--ink);}
.time-row .val{color:#333;}
