/* =========================================================
   炉ばた酒場 ともしび  ―  1ページ紹介サイト
   色・文字の設定はこの :root にまとめてあります
   ========================================================= */
:root{
  --board:#1b2b24;        /* 黒板の深緑 */
  --board-dark:#14211b;   /* 黒板の影 */
  --sumi:#111614;         /* 墨色（ページの地） */
  --wood:#6b4a2f;         /* 木の枠 */
  --wood-light:#8a6440;
  --chalk:#f2efe4;        /* チョークの白 */
  --chalk-dim:#bfc4b8;    /* うすいチョーク */
  --yellow:#f2cf5b;       /* チョークの黄 */
  --red:#e2907f;          /* うすい赤 */
  --bulb:#ffd98a;         /* 裸電球の灯り */

  --font-display:"Yusei Magic","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN",
                 "Yu Gothic","游ゴシック体",sans-serif;
  --font-hand:"Zen Kurenaido","Hiragino Sans","ヒラギノ角ゴシック",
              "Yu Gothic","游ゴシック体",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  padding:0;
  font-family:var(--font-hand);
  font-size:17px;
  line-height:1.9;
  color:var(--chalk);
  background-color:var(--sumi);
  /* 墨色の地に、うすい灯りのにじみ（画像は使わずCSSだけ） */
  background-image:
    radial-gradient(900px 500px at 50% -120px, rgba(255,217,138,.16), transparent 70%),
    radial-gradient(700px 700px at 110% 40%, rgba(255,217,138,.05), transparent 70%);
  background-attachment:scroll;
  overflow-x:hidden;      /* 念のため。横スクロールは出さない */
}

img,svg{max-width:100%;height:auto;}

a{color:var(--yellow);}
a:hover{color:var(--chalk);}

/* ---- 共通のレイアウト ---- */
.wrap{
  width:100%;
  max-width:880px;
  margin-inline:auto;
  padding-inline:20px;
}

section{ padding-block:clamp(40px,8vw,72px); }

.sec-title{
  font-family:var(--font-display);
  font-size:clamp(22px,5.2vw,30px);
  line-height:1.5;
  margin:0 0 6px;
  letter-spacing:.06em;
}
.sec-title .en{
  display:block;
  font-family:var(--font-hand);
  font-size:12px;
  letter-spacing:.32em;
  color:var(--chalk-dim);
  margin-bottom:2px;
}
/* 見出しの下のチョーク線 */
.chalk-rule{
  height:3px;
  width:100%;
  margin:14px 0 26px;
  border-radius:2px;
  background:
    repeating-linear-gradient(90deg,
      var(--chalk-dim) 0 22px,
      rgba(191,196,184,.35) 22px 30px,
      var(--chalk-dim) 30px 58px,
      rgba(191,196,184,.2) 58px 64px);
  opacity:.8;
}

/* =========================================================
   1. 店名とキャッチコピー
   ========================================================= */
.hero{
  position:relative;
  text-align:center;
  padding-block:clamp(56px,14vw,96px) clamp(30px,7vw,54px);
  overflow:hidden;
}
/* 裸電球（CSSだけで描いています） */
.bulb{
  width:2px;
  height:clamp(30px,8vw,56px);
  margin:0 auto;
  background:linear-gradient(var(--chalk-dim),rgba(191,196,184,.25));
}
.bulb-glass{
  position:relative;
  width:34px;height:42px;
  margin:0 auto;
  border-radius:50% 50% 46% 46% / 58% 58% 42% 42%;
  background:radial-gradient(circle at 50% 38%, #fff6de 0%, var(--bulb) 42%, rgba(255,193,102,.85) 72%, rgba(255,193,102,.4) 100%);
  box-shadow:0 0 30px 12px rgba(255,217,138,.32), 0 0 90px 40px rgba(255,217,138,.14);
}
.bulb-glass::after{
  content:"";
  position:absolute;
  left:50%;top:-7px;
  transform:translateX(-50%);
  width:14px;height:9px;
  border-radius:2px;
  background:linear-gradient(#9a9a8e,#6e6e63);
}

.shop-name{
  font-family:var(--font-display);
  font-size:clamp(30px,8.4vw,54px);
  line-height:1.35;
  margin:clamp(22px,5vw,34px) 0 0;
  letter-spacing:.1em;
  color:var(--chalk);
  text-shadow:0 0 22px rgba(255,217,138,.3);
}
.shop-name .small{
  display:block;
  font-size:clamp(14px,3.4vw,18px);
  letter-spacing:.34em;
  color:var(--yellow);
  margin-bottom:10px;
}
.catch{
  font-size:clamp(16px,4.2vw,22px);
  line-height:1.85;
  margin:20px auto 0;
  max-width:22em;
  color:var(--chalk);
}
.catch em{
  font-style:normal;
  color:var(--yellow);
  border-bottom:2px dotted rgba(242,207,91,.6);
  padding-bottom:1px;
}
.hero-note{
  font-size:13px;
  letter-spacing:.2em;
  color:var(--chalk-dim);
  margin-top:24px;
}

/* =========================================================
   2. 今日のおすすめ（このページの主役）
   ========================================================= */
.today{ padding-block:clamp(10px,3vw,20px) clamp(44px,9vw,80px); }

/* 木の枠 + 黒板 */
.board{
  border-radius:10px;
  padding:clamp(9px,2.4vw,14px);
  background:
    linear-gradient(160deg,var(--wood-light),var(--wood) 42%,#4e3521 100%);
  box-shadow:
    0 18px 40px rgba(0,0,0,.55),
    0 0 0 1px rgba(255,255,255,.06) inset;
}
.board-inner{
  position:relative;
  border-radius:4px;
  padding:clamp(26px,6vw,46px) clamp(18px,5vw,44px);
  background-color:var(--board);
  /* チョークの粉っぽさ */
  background-image:
    radial-gradient(420px 220px at 18% 12%, rgba(242,239,228,.07), transparent 70%),
    radial-gradient(380px 260px at 82% 88%, rgba(242,239,228,.05), transparent 70%),
    repeating-linear-gradient(115deg, rgba(255,255,255,.018) 0 2px, transparent 2px 7px);
  box-shadow:0 0 0 2px rgba(0,0,0,.35) inset, 0 10px 26px rgba(0,0,0,.4) inset;
}

.today-head{
  text-align:center;
  margin-bottom:clamp(20px,5vw,32px);
}
.today-label{
  display:inline-block;
  font-family:var(--font-display);
  font-size:clamp(26px,7.4vw,46px);
  line-height:1.3;
  letter-spacing:.1em;
  color:var(--yellow);
  margin:0;
  padding-bottom:8px;
  border-bottom:3px double rgba(242,207,91,.55);
}
.today-sub{
  font-size:13px;
  letter-spacing:.24em;
  color:var(--chalk-dim);
  margin:12px 0 0;
}
.today-date{
  font-size:clamp(14px,3.6vw,17px);
  color:var(--chalk);
  margin:6px 0 0;
  letter-spacing:.08em;
}

/* おすすめの一覧 */
.osusume{
  list-style:none;
  margin:0;
  padding:0;
}
.osusume-item{
  display:flex;
  flex-wrap:nowrap;          /* 品名と値段は同じ行に */
  align-items:baseline;
  gap:0 10px;
  padding:clamp(13px,3.4vw,17px) 0;
  border-bottom:1px dashed rgba(242,239,228,.28);
}
.osusume-item:last-child{ border-bottom:none; }
.osusume-item::before{
  content:"・";
  flex:0 0 auto;
  color:var(--red);
  font-size:1.1em;
  margin-right:-4px;
}
.osusume-name{
  flex:1 1 auto;
  min-width:0;
  font-size:clamp(17px,4.6vw,24px);
  line-height:1.6;
  color:var(--chalk);
  letter-spacing:.03em;
}
.osusume-dots{
  flex:0 1 70px;         /* 場所が足りないときは自然に縮みます */
  min-width:0;
  height:1px;
  align-self:center;
  margin-top:.4em;
  border-bottom:2px dotted rgba(242,239,228,.35);
}
/* 幅のせまい画面では点線をやめて、品名にゆとりを出します */
@media (max-width:560px){
  .osusume-dots{ display:none; }
  .osusume-item{ gap:0 12px; }
}
.osusume-price{
  flex:0 0 auto;
  font-family:var(--font-display);
  font-size:clamp(17px,4.6vw,24px);
  color:var(--yellow);
  white-space:nowrap;
  letter-spacing:.02em;
}
.osusume-price .yen{ font-size:.7em; margin-left:2px; }

.today-foot{
  margin:clamp(20px,5vw,30px) 0 0;
  padding-top:16px;
  border-top:1px solid rgba(242,239,228,.18);
  font-size:13px;
  line-height:1.8;
  color:var(--chalk-dim);
  text-align:center;
}

/* =========================================================
   3. お店の紹介（店主のひとこと）
   ========================================================= */
.about-body{
  font-size:clamp(15px,4vw,18px);
  line-height:2.1;
  margin:0;
  max-width:36em;
}
.about-body p{ margin:0 0 1.1em; }
.about-body p:last-child{ margin-bottom:0; }
.about-sign{
  margin-top:26px;
  font-family:var(--font-display);
  font-size:15px;
  letter-spacing:.14em;
  color:var(--yellow);
}
.about-seats{
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.tag{
  border:1px solid rgba(242,239,228,.4);
  border-radius:999px;
  padding:5px 15px;
  font-size:13px;
  letter-spacing:.06em;
  color:var(--chalk-dim);
}

/* =========================================================
   4. 定番メニュー
   ========================================================= */
.menu-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(26px,5vw,34px);
}
@media (min-width:760px){
  .menu-grid{ grid-template-columns:1fr 1fr; gap:40px; }
}
.menu-card{
  border:1px solid rgba(242,239,228,.24);
  border-radius:6px;
  padding:clamp(20px,4.6vw,28px);
  background:rgba(27,43,36,.55);
}
.menu-card h3{
  font-family:var(--font-display);
  font-size:clamp(17px,4.4vw,20px);
  margin:0 0 4px;
  color:var(--yellow);
  letter-spacing:.1em;
}
.menu-card .note{
  font-size:12.5px;
  color:var(--chalk-dim);
  letter-spacing:.14em;
  margin:0 0 16px;
}
.price-list{
  list-style:none;
  margin:0;
  padding:0;
}
.price-list li{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:0 8px;
  padding:9px 0;
  border-bottom:1px dotted rgba(242,239,228,.18);
  font-size:clamp(14.5px,3.8vw,16px);
}
.price-list li:last-child{ border-bottom:none; }
.price-list .n{ flex:1 1 auto; min-width:0; }
.price-list .p{ flex:0 0 auto; color:var(--chalk); white-space:nowrap; }
.price-list .p .yen{ font-size:.78em; margin-left:1px; color:var(--chalk-dim); }

.card-note{
  margin:18px 0 0;
  padding-top:14px;
  border-top:1px dashed rgba(242,239,228,.2);
  font-size:13px;
  line-height:1.85;
  color:var(--chalk-dim);
}

.otoshi{
  margin-top:clamp(24px,5vw,32px);
  border:2px dashed rgba(226,144,127,.55);
  border-radius:6px;
  padding:16px 20px;
  text-align:center;
  font-size:clamp(14.5px,3.8vw,16px);
  color:var(--chalk);
}
.otoshi strong{ color:var(--red); font-weight:normal; }
.menu-tax{
  margin:14px 0 0;
  font-size:12.5px;
  color:var(--chalk-dim);
  text-align:center;
}

/* =========================================================
   5. 営業時間と定休日
   ========================================================= */
.hours-box{
  margin:0;
  border-bottom:3px solid rgba(242,239,228,.3);
  padding:0 0 clamp(24px,5vw,32px);
}
.hours-row{
  display:flex;
  flex-wrap:wrap;
  gap:4px 18px;
  padding:10px 0;
}
.hours-row dt{
  flex:0 0 auto;
  min-width:6.5em;
  font-size:13.5px;
  letter-spacing:.18em;
  color:var(--chalk-dim);
  padding-top:.35em;
}
.hours-row dd{
  flex:1 1 220px;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(19px,5vw,26px);
  letter-spacing:.06em;
  color:var(--chalk);
}
.hours-row dd .lo{
  display:block;
  font-family:var(--font-hand);
  font-size:13.5px;
  letter-spacing:.08em;
  color:var(--chalk-dim);
  margin-top:2px;
}
.hours-row dd.closed{ color:var(--red); }
.hours-note{
  margin:18px 0 0;
  font-size:13.5px;
  line-height:1.9;
  color:var(--chalk-dim);
}

/* =========================================================
   6. アクセス
   ========================================================= */
.access-list{
  list-style:none;
  margin:0 0 clamp(30px,6vw,40px);
  padding:0;
}
.access-list li{
  display:flex;
  flex-wrap:wrap;
  gap:2px 16px;
  padding:13px 0;
  border-bottom:1px dotted rgba(242,239,228,.2);
}
.access-list dt,.access-list .k{
  flex:0 0 auto;
  min-width:5.5em;
  font-size:13px;
  letter-spacing:.18em;
  color:var(--chalk-dim);
  padding-top:.3em;
}
.access-list .v{
  flex:1 1 200px;
  font-size:clamp(15px,4vw,17px);
  line-height:1.8;
}
.tel-link{
  font-family:var(--font-display);
  font-size:clamp(20px,5.6vw,26px);
  letter-spacing:.05em;
  color:var(--yellow);
  text-decoration:none;
  border-bottom:1px solid rgba(242,207,91,.5);
  display:inline-block;
  padding:6px 2px;      /* 指でタップしやすく */
  min-height:44px;
  line-height:1.6;
}
.tel-link:hover,.tel-link:focus{ color:var(--chalk); }
.tel-hint{
  display:block;
  font-family:var(--font-hand);
  font-size:12.5px;
  letter-spacing:.1em;
  color:var(--chalk-dim);
}

/* 文字と線だけの道案内図 */
.map{
  border:1px solid rgba(242,239,228,.28);
  border-radius:6px;
  padding:clamp(22px,5vw,32px) clamp(16px,4vw,28px);
  background:rgba(27,43,36,.5);
}
.map-title{
  font-family:var(--font-display);
  font-size:15px;
  letter-spacing:.16em;
  color:var(--yellow);
  margin:0 0 4px;
  text-align:center;
}
.map-cap{
  font-size:12.5px;
  color:var(--chalk-dim);
  text-align:center;
  margin:0 0 24px;
  letter-spacing:.1em;
}
.steps{
  list-style:none;
  margin:0;
  padding:0;
}
.step{
  position:relative;
  padding:0 0 0 clamp(40px,10vw,52px);
}
.step:not(:last-child){ padding-bottom:clamp(22px,5vw,28px); }
/* たての道（線） */
.step:not(:last-child)::before{
  content:"";
  position:absolute;
  left:clamp(15px,3.9vw,19px);
  top:30px;
  bottom:0;
  width:2px;
  background:repeating-linear-gradient(180deg,
     rgba(242,239,228,.5) 0 7px, transparent 7px 14px);
}
/* まるい目印 */
.step-mark{
  position:absolute;
  left:0;top:0;
  width:clamp(32px,8vw,40px);
  height:clamp(32px,8vw,40px);
  border-radius:50%;
  border:2px solid rgba(242,239,228,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-size:14px;
  color:var(--chalk);
  background:var(--board-dark);
}
.step-name{
  font-size:clamp(15.5px,4.2vw,18px);
  line-height:1.6;
  margin:0;
  padding-top:.25em;
  color:var(--chalk);
}
.step-desc{
  font-size:13.5px;
  line-height:1.85;
  color:var(--chalk-dim);
  margin:4px 0 0;
}
.step.goal .step-mark{
  border-color:var(--yellow);
  border-style:solid;
  border-width:2px;
  color:var(--yellow);
  box-shadow:0 0 18px rgba(242,207,91,.35);
}
.step.goal .step-name{
  font-family:var(--font-display);
  color:var(--yellow);
  letter-spacing:.06em;
}
.map-foot{
  margin:26px 0 0;
  padding-top:16px;
  border-top:1px dashed rgba(242,239,228,.22);
  font-size:13px;
  line-height:1.9;
  color:var(--chalk-dim);
  text-align:center;
}

/* =========================================================
   7. フッター
   ========================================================= */
.site-foot{
  text-align:center;
  padding:clamp(34px,7vw,50px) 20px clamp(40px,8vw,60px);
  border-top:1px solid rgba(242,239,228,.14);
}
.foot-name{
  font-family:var(--font-display);
  font-size:16px;
  letter-spacing:.2em;
  color:var(--chalk);
  margin:0 0 6px;
}
.foot-sub{
  font-size:13px;
  color:var(--chalk-dim);
  margin:0 0 22px;
  line-height:1.9;
}
.disclaimer{
  font-size:11.5px;
  line-height:1.8;
  color:#7c8279;
  margin:0;
  letter-spacing:.06em;
}

/* =========================================================
   ページ上部のメニュー（3ページ共通）
   ========================================================= */
.site-nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(17,22,20,.92);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(242,239,228,.16);
}
.site-nav .inner{
  width:100%;
  max-width:880px;
  margin-inline:auto;
  padding:10px 20px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:2px 20px;
}
.nav-brand{
  font-family:var(--font-display);
  font-size:15px;
  letter-spacing:.14em;
  color:var(--chalk);
  text-decoration:none;
  white-space:nowrap;
  padding:8px 0;
  min-height:44px;
  display:flex;
  align-items:center;
}
.nav-brand:hover{ color:var(--yellow); }
.site-nav ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 4px;
  margin:0;
  padding:0;
}
.site-nav a.nav-link{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:6px 12px;
  font-size:15px;
  letter-spacing:.1em;
  color:var(--chalk-dim);
  text-decoration:none;
  border-bottom:2px solid transparent;
}
.site-nav a.nav-link:hover,
.site-nav a.nav-link:focus{ color:var(--chalk); }
.site-nav a.nav-link[aria-current="page"]{
  color:var(--yellow);
  border-bottom-color:rgba(242,207,91,.7);
}
@media (max-width:560px){
  /* スマホでは画面をひろく使えるよう、上に貼りつかせません */
  .site-nav{ position:static; }
  .site-nav .inner{
    flex-direction:column;
    justify-content:center;
    padding:2px 12px 4px;
  }
  .nav-brand{ font-size:14.5px; padding:10px 0 6px; }
  .site-nav ul{ justify-content:center; }
  .site-nav a.nav-link{ padding:6px 10px; font-size:14.5px; }
}

/* =========================================================
   下層ページの見出し
   ========================================================= */
.page-head{
  text-align:center;
  padding:clamp(44px,10vw,76px) 0 clamp(26px,6vw,40px);
}
.page-head .kicker{
  font-size:12px;
  letter-spacing:.34em;
  color:var(--chalk-dim);
  margin:0 0 10px;
}
.page-head h1{
  font-family:var(--font-display);
  font-size:clamp(28px,7.4vw,44px);
  line-height:1.35;
  letter-spacing:.1em;
  margin:0;
  color:var(--chalk);
  text-shadow:0 0 24px rgba(255,217,138,.22);
}
.page-head .lead{
  font-size:clamp(14.5px,3.8vw,16.5px);
  line-height:2;
  color:var(--chalk-dim);
  max-width:28em;
  margin:18px auto 0;
}
.page-head .rule{
  width:60px;
  height:3px;
  margin:26px auto 0;
  border-radius:2px;
  background:repeating-linear-gradient(90deg,
    var(--yellow) 0 12px, rgba(242,207,91,.25) 12px 18px);
}

/* 黒板への呼び水（下層ページ → トップの今日のおすすめ） */
.today-callout{
  border:2px dashed rgba(242,207,91,.45);
  border-radius:6px;
  padding:clamp(20px,4.6vw,26px);
  text-align:center;
  background:rgba(27,43,36,.45);
}
.today-callout p{
  margin:0 0 14px;
  font-size:clamp(14.5px,3.8vw,16.5px);
  line-height:1.9;
  color:var(--chalk);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:10px 26px;
  border:1px solid rgba(242,207,91,.6);
  border-radius:4px;
  font-family:var(--font-display);
  font-size:15px;
  letter-spacing:.12em;
  color:var(--yellow);
  text-decoration:none;
  background:rgba(242,207,91,.06);
}
.btn:hover,.btn:focus{
  background:rgba(242,207,91,.16);
  color:var(--chalk);
}

/* =========================================================
   お品書きページ
   ========================================================= */
.dish-block{ margin-bottom:clamp(34px,7vw,52px); }
.dish-block:last-child{ margin-bottom:0; }
.dish-head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:2px 14px;
  border-bottom:2px solid rgba(242,239,228,.3);
  padding-bottom:8px;
  margin-bottom:6px;
}
.dish-head h3{
  font-family:var(--font-display);
  font-size:clamp(19px,5vw,24px);
  letter-spacing:.1em;
  color:var(--yellow);
  margin:0;
}
.dish-head .sub{
  font-size:12px;
  letter-spacing:.24em;
  color:var(--chalk-dim);
}
.dish-lead{
  font-size:13.5px;
  line-height:1.9;
  color:var(--chalk-dim);
  margin:12px 0 4px;
}
/* 串ものなど、短い品名を2列に */
.dish-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:0 clamp(20px,4vw,44px);
}
@media (min-width:640px){
  .dish-list.two{ grid-template-columns:1fr 1fr; }
}
.dish-list li{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:0 10px;
  padding:11px 0;
  border-bottom:1px dotted rgba(242,239,228,.2);
  font-size:clamp(15px,4vw,16.5px);
}
.dish-list .n{ flex:1 1 auto; min-width:0; }
.dish-list .d{
  display:block;
  font-size:12.5px;
  line-height:1.7;
  color:var(--chalk-dim);
  margin-top:1px;
}
.dish-list .p{
  flex:0 0 auto;
  white-space:nowrap;
  color:var(--chalk);
}
.dish-list .p .yen{ font-size:.78em; color:var(--chalk-dim); margin-left:1px; }
.dish-list .mark{
  display:inline-block;
  margin-left:6px;
  font-size:11px;
  letter-spacing:.08em;
  color:var(--red);
  border:1px solid rgba(226,144,127,.5);
  border-radius:3px;
  padding:0 5px;
  vertical-align:.12em;
}

/* =========================================================
   行き方ページ
   ========================================================= */
.route-group{ margin-bottom:clamp(34px,7vw,50px); }
.route-group:last-child{ margin-bottom:0; }
.route-title{
  font-family:var(--font-display);
  font-size:clamp(17px,4.4vw,21px);
  letter-spacing:.1em;
  color:var(--yellow);
  margin:0 0 6px;
}
.route-meta{
  font-size:12.5px;
  letter-spacing:.14em;
  color:var(--chalk-dim);
  margin:0 0 20px;
}

/* 席の案内図（文字と線だけ） */
.seat-map{
  border:1px solid rgba(242,239,228,.26);
  border-radius:6px;
  padding:clamp(22px,5vw,30px) clamp(16px,4vw,26px);
  background:rgba(27,43,36,.5);
}
.seat-room{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:460px;
  margin:0 auto;
}
.seat-row{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(4px,1.4vw,8px);
  justify-content:center;
}
.seat{
  width:clamp(26px,7.2vw,38px);
  height:clamp(26px,7.2vw,38px);
  flex:0 0 auto;
  border:1px solid rgba(242,239,228,.45);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;
  color:var(--chalk-dim);
}
.counter-bar{
  border:2px solid rgba(242,207,91,.55);
  border-radius:4px;
  padding:12px 10px;
  text-align:center;
  font-family:var(--font-display);
  font-size:14px;
  letter-spacing:.16em;
  color:var(--yellow);
  background:rgba(242,207,91,.06);
}
.kitchen-bar{
  border:1px dashed rgba(242,239,228,.4);
  border-radius:4px;
  padding:10px;
  text-align:center;
  font-size:12.5px;
  letter-spacing:.16em;
  color:var(--chalk-dim);
}
.seat-tables{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
}
.table-box{
  flex:1 1 140px;
  max-width:200px;
  border:1px solid rgba(242,239,228,.4);
  border-radius:4px;
  padding:14px 8px;
  text-align:center;
  font-size:13px;
  color:var(--chalk);
}
.table-box span{
  display:block;
  font-size:11.5px;
  color:var(--chalk-dim);
  margin-top:2px;
}
.entrance{
  text-align:center;
  font-size:12.5px;
  letter-spacing:.2em;
  color:var(--chalk-dim);
  padding-top:4px;
}
.seat-legend{
  margin:22px 0 0;
  padding-top:16px;
  border-top:1px dashed rgba(242,239,228,.22);
  font-size:13px;
  line-height:1.9;
  color:var(--chalk-dim);
  text-align:center;
}

/* 混みあう時間の目安（文字と帯だけ） */
.busy{
  list-style:none;
  margin:0;
  padding:0;
}
.busy li{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 14px;
  padding:9px 0;
}
.busy .t{
  flex:0 0 auto;
  min-width:7.5em;
  font-size:13.5px;
  letter-spacing:.08em;
  color:var(--chalk-dim);
}
.busy .bar{
  flex:1 1 140px;
  height:12px;
  border-radius:2px;
  background:rgba(242,239,228,.12);
  overflow:hidden;
}
.busy .bar i{
  display:block;
  height:100%;
  background:repeating-linear-gradient(115deg,
    var(--yellow) 0 6px, rgba(242,207,91,.55) 6px 11px);
}
.busy .lv{
  flex:0 0 auto;
  font-size:12.5px;
  color:var(--chalk-dim);
  min-width:5em;
}

/* よくある質問 */
.faq{ margin:0; }
.faq dt{
  font-size:clamp(15px,4vw,17px);
  line-height:1.8;
  color:var(--yellow);
  margin-top:24px;
  padding-left:1.6em;
  text-indent:-1.6em;
}
.faq dt::before{ content:"Q．"; font-family:var(--font-display); }
.faq dt:first-child{ margin-top:0; }
.faq dd{
  margin:6px 0 0;
  padding-left:1.6em;
  text-indent:-1.6em;
  font-size:clamp(14.5px,3.8vw,16px);
  line-height:1.95;
  color:var(--chalk);
}
.faq dd::before{ content:"A．"; font-family:var(--font-display); color:var(--chalk-dim); }

/* ページの下の「戻る」 */
.page-foot-nav{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
  padding:clamp(36px,7vw,56px) 0 0;
}

/* フッターの小さなリンク */
.foot-links{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:0 6px;
  margin:0 0 20px;
  padding:0;
}
.foot-links a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:4px 12px;
  font-size:13.5px;
  letter-spacing:.12em;
  color:var(--chalk-dim);
  text-decoration:none;
}
.foot-links a:hover,.foot-links a:focus{ color:var(--yellow); }
