/* LUA 共通（ヘッダー・フッター・トップ） */
:root {
  --ivory:#F7F2EA;
  --sand:#E8D8C7;
  --terra:#B9684F;
  --terra-d:#934F3D;
  --cacao:#4A372F;
  --mocha:#765C4E;
  --clay:#C9AD98;
  --white:#FFFDFC;
  --line-green:#06C755;
  --serif:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
}

html { scroll-padding-top:110px; }
body { margin:0; background:var(--ivory); }
img { max-width:100%; height:auto; }

/* ---------- header ---------- */
.site-header {
  position:sticky; top:0; z-index:50;
  background:var(--ivory);
  border-bottom:1px solid rgba(201,173,152,.5);
}
.site-header .inner {
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px; gap:20px;
}
.brand { display:flex; flex-direction:column; text-decoration:none; color:var(--cacao); line-height:1.2; }
.logo { display:inline-flex; align-items:center; gap:0; line-height:1; }
.logo b { font-family:"Cormorant Garamond","Times New Roman",serif; font-weight:500; font-size:52px; color:var(--cacao); letter-spacing:.02em; }
.logo img { width:52px; height:52px; margin-left:-6px; }
.brand .tag { font-size:15px; color:var(--terra-d); letter-spacing:.08em; margin-top:2px; }
.site-nav { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.site-nav ul { list-style:none; margin:0; padding:0; display:flex; gap:34px; }
.site-nav ul a { color:var(--cacao); text-decoration:none; font-size:17px; letter-spacing:.04em; }
.site-nav ul a:hover, .site-nav ul a[aria-current="page"] { color:var(--terra-d); }
.head-btns { display:flex; gap:22px; }
.hbtn {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:118px; padding:10px 18px; border-radius:4px;
  color:#fff; text-decoration:none; font-size:14px; font-weight:bold; letter-spacing:.04em;
}
.hbtn.tel { background:var(--terra); }
.hbtn.line { background:var(--line-green); }
.hbtn:hover { opacity:.88; }

.nav-toggle { display:none; }
.nav-btn { display:none; }

@media (max-width:860px) {
  .site-header .inner { padding:10px 16px; }
  .logo b { font-size:38px; }
  .logo img { width:38px; height:38px; }
  .brand .tag { font-size:12px; }
  .nav-btn {
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; cursor:pointer;
  }
  .nav-btn i { display:block; height:2px; background:var(--cacao); border-radius:2px; }
  .site-nav {
    display:none; position:absolute; left:0; right:0; top:100%;
    background:var(--ivory); border-bottom:1px solid var(--clay);
    padding:16px 20px 22px; align-items:stretch;
  }
  .nav-toggle:checked ~ .site-nav { display:flex; }
  .site-nav ul { flex-direction:column; gap:0; }
  .site-nav ul a { display:block; padding:12px 4px; border-bottom:1px dotted var(--clay); }
  .head-btns { justify-content:stretch; gap:10px; margin-top:6px; }
  .hbtn { flex:1; padding:13px 10px; font-size:15px; }
}

/* ---------- footer ---------- */
.site-footer {
  background:var(--sand);
  text-align:center;
  padding:46px 20px 30px;
  color:var(--cacao);
  font-family:"Yu Gothic","游ゴシック","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
}
.site-footer .logo { justify-content:center; }
.site-footer .name { font-size:15px; color:var(--terra-d); letter-spacing:.1em; margin:4px 0 10px; }
.site-footer address { font-style:normal; font-size:15px; line-height:1.8; }
.site-footer .fbtns { display:flex; justify-content:center; gap:16px; margin:20px 0 26px; flex-wrap:wrap; }
.site-footer .copy { font-size:12px; color:var(--mocha); }

/* ---------- 下部の固定予約ボタン（スマホのみ） ---------- */
.sp-reserve { display:none; }
@media (max-width:860px) {
  .sp-reserve {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
    box-shadow:0 -2px 10px rgba(74,55,47,.15);
  }
  .sp-reserve a { flex:1; text-align:center; padding:14px 6px; color:#fff; text-decoration:none; font-weight:bold; font-size:15px; }
  .sp-reserve .tel { background:var(--terra); }
  .sp-reserve .line { background:var(--line-green); }
  body { padding-bottom:52px; }
}

/* ---------- 下層ページ：スマホで文字が詰まらないように ---------- */
@media (max-width:860px) {
  body main { padding-left:22px; padding-right:22px; }
  body main p, body main li, body .page-head p, body .cta p,
  body main .desc, body main .say, body main .spec, body main dd {
    line-height:2.05; letter-spacing:.02em; text-wrap:pretty; word-break:auto-phrase;
  }
  body .page-head { padding:40px 22px 36px; }
  body .page-head p br, body .cta p br { display:none; }
  body main p { margin-bottom:18px; }
  body main .section-title h2 { line-height:1.5; }
  body main li { padding-top:9px; padding-bottom:9px; }

  /* メニュー・料金：名前の下に金額 */
  body .menu-item { display:block; padding:20px 20px 18px; }
  body .menu-item .price { text-align:right; margin-top:10px; }
  body .menu-item .price .tax { display:block; }

  /* アクセス：項目名と内容を縦に */
  body .info .row { display:block; }
  body .info dt { padding-bottom:2px; }
  body .info dd { margin:0; }
}