/* えぞまつ v3 共通スタイル（v2のインラインCSSを抽出し、3ページ構成用の部品を追記）
   追記部品: .topnav / .page-hero / .price / .gates / .open-policy */

/* ── フォント: いろは角クラシック（MODI工場・OFL 1.1）に全書体を統一（2026-08-25 本人指示）──
   woff2 は v3 の HTML に登場する文字＋かな・約物のサブセット。
   本文に新しい漢字を足したら scripts/build-fonts.py を再実行すること。
   ライセンス: fonts/LICENSE-irohakakuC.txt */
@font-face{font-family:"IrohaKakuC";font-weight:400;font-style:normal;font-display:swap;
  src:url("fonts/irohakakuC-Regular.woff2") format("woff2")}
@font-face{font-family:"IrohaKakuC";font-weight:500;font-style:normal;font-display:swap;
  src:url("fonts/irohakakuC-Medium.woff2") format("woff2")}
@font-face{font-family:"IrohaKakuC";font-weight:600 800;font-style:normal;font-display:swap;
  src:url("fonts/irohakakuC-Bold.woff2") format("woff2")}

:root{
  --yellow:#f6df3e; --yellow-soft:#fcf2af; --yellow-deep:#ecd11c;
  /* --ink-faint は注記・免責に使うので AA(4.5:1) を満たす濃さにする。
     旧 #8c8270 は paper 上 3.57:1 で不合格だった */
  --ink:#17140e; --ink-2:#2b2620; --ink-soft:#534b3e; --ink-faint:#6f6656;
  --paper:#fcf8ee; --paper-2:#f4ecd8; --paper-3:#efe6d2; --white:#fff;
  --line:rgba(23,20,14,.14); --line-soft:rgba(23,20,14,.08);
  --fs-xs:12.5px; --fs-sm:14px; --fs-base:16.5px; --fs-lg:20px;
  --e-out:cubic-bezier(.22,1,.36,1);
  --gap-s:clamp(52px,10vw,76px); --gap-m:clamp(76px,14vw,112px); --gap-l:clamp(96px,18vw,150px);
  --bar-h:56px; --tick-h:34px;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 .045'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);background-image:var(--grain);color:var(--ink);
  font-family:"IrohaKakuC","Zen Kaku Gothic New",sans-serif;font-size:var(--fs-base);line-height:1.9;
  letter-spacing:.02em;-webkit-font-smoothing:antialiased;overflow-x:clip;
  padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom))}
h1,h2,h3,h4{margin:0;font-feature-settings:"palt" 1;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:inherit}
ul,ol,dl,dd{margin:0;padding:0}
li{list-style:none}
/* height:auto を必ず添える。width/height属性の presentational hint が残ると
   aspect-ratio が無視されて画像が実寸の高さで表示される */
img{display:block;max-width:100%;height:auto}
.wrap{width:min(90%,1060px);margin-inline:auto}
section{position:relative}
.brush{font-family:"IrohaKakuC",sans-serif;font-weight:700}
.scribble{font-family:"IrohaKakuC",sans-serif;font-weight:600;line-height:1.7}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 要確認バッジ（事実未確定の可視化） */
.tbc{display:inline-block;font-family:"IrohaKakuC","Zen Kaku Gothic New",sans-serif;font-weight:700;
  font-size:10.5px;letter-spacing:.1em;line-height:1.6;color:var(--ink);background:var(--yellow);
  border:1px solid var(--ink);border-radius:2px;padding:.05em .5em;margin-left:.45em;vertical-align:.14em}
.on-photo .tbc{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}

/* 黄色マーカー（※文字色は必ず濃色。黄色地に白は読めないため） */
.mk{background:linear-gradient(transparent 58%,var(--yellow) 58% 94%,transparent 94%);
  color:var(--ink);padding:0 .12em;border-radius:1px}

.eyebrow{font-weight:700;font-size:11px;letter-spacing:.2em;color:var(--ink-faint);
  display:flex;align-items:center;gap:.8em;margin-bottom:1.2rem}
.eyebrow::after{content:"";height:1px;flex:1;background:var(--line)}
.h2{font-family:"IrohaKakuC",sans-serif;font-weight:800;
  font-size:clamp(25px,5.8vw,44px);line-height:1.5;letter-spacing:.01em}
.lede{font-family:"IrohaKakuC",sans-serif;font-weight:600;font-size:clamp(15px,3.6vw,18px);line-height:2.05;color:var(--ink-2)}

/* ── 流れるお知らせ帯 ── */
.ticker{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--tick-h);display:flex;align-items:center;
  background:rgba(23,20,14,.94);color:var(--paper);overflow:hidden}
.ticker .tag{flex:none;font-weight:700;font-size:10.5px;letter-spacing:.14em;
  background:var(--yellow);color:var(--ink);padding:6px 9px;margin-left:10px;border-radius:2px}
.ticker .vp{flex:1;overflow:hidden;margin-left:10px}
/* width:max-content が無いと ul が親幅に固定され、translateX(-50%) が
   実コンテンツの継ぎ目とズレて毎周ガクッと戻る */
.ticker .run{display:flex;width:max-content;white-space:nowrap;animation:run 34s linear infinite}
.ticker .run li{padding:0 2.2em;font-size:12.5px}
.ticker:hover .run,.ticker.paused .run{animation-play-state:paused}
@keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* WCAG 2.2.2：自動で動く表示には、ページ上に止める手段が要る */
.tick-pause{flex:none;width:44px;height:34px;min-width:44px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:0;cursor:pointer;color:var(--paper);padding:0}
.tick-pause:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
.tick-pause i{display:block;width:9px;height:11px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.tick-pause[aria-pressed="true"] i{width:0;height:0;border:0;
  border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}
/* 動きを抑える設定では「止めて読めなくする」のではなく、横スクロールできる一覧にする */
@media(prefers-reduced-motion:reduce){
  .ticker .vp{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ticker .run{animation:none}
  .ticker .run li[aria-hidden="true"]{display:none}
  .tick-pause{display:none}
}

/* ── 共通ナビ（3ページ切替。ticker の下に通常フローで置く） ── */
.topnav{margin-top:var(--tick-h);background:var(--paper);border-bottom:1px solid var(--line)}
.topnav .in{display:flex;align-items:center;gap:14px;min-height:52px;padding:6px 0}
.topnav .logo{font-family:"IrohaKakuC",sans-serif;font-size:17px;letter-spacing:.06em;text-decoration:none;
  display:flex;align-items:baseline;gap:.5em}
.topnav .logo small{font-size:10px;letter-spacing:.18em;color:var(--ink-faint)}
.topnav ul{display:flex;gap:2px;margin-left:auto}
.topnav a.nv{display:inline-flex;align-items:center;min-height:44px;padding:0 .8em;
  font-size:12.5px;font-weight:700;letter-spacing:.08em;text-decoration:none;color:var(--ink-soft);
  border-radius:3px}
.topnav a.nv:hover{background:rgba(23,20,14,.06);color:var(--ink)}
.topnav a.nv[aria-current="page"]{color:var(--ink);
  background:linear-gradient(transparent 62%,var(--yellow) 62% 92%,transparent 92%)}
@media(max-width:480px){
  .topnav .in{flex-wrap:wrap}
  .topnav .logo small{display:none}
}

/* ── 下層ページの小型ヒーロー ── */
.page-hero{padding:clamp(40px,8vw,72px) 0 clamp(30px,5vw,48px);border-bottom:1px solid var(--line-soft)}
.page-hero .crumb{font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--ink-faint);margin-bottom:1rem}
.page-hero .crumb a{text-decoration:none}
.page-hero .crumb a:hover{text-decoration:underline}
.page-hero h1{font-family:"IrohaKakuC",sans-serif;font-weight:800;
  font-size:clamp(27px,6.4vw,48px);line-height:1.45;letter-spacing:.01em}
.page-hero .lead{margin-top:1rem;font-size:14.5px;line-height:2;color:var(--ink-soft);max-width:36em}

/* ── 価格の空き枠（ヒアリング確定後に数字を入れる） ── */
.price{display:inline-flex;align-items:baseline;gap:.4em;margin-top:.55rem;
  font-family:"IrohaKakuC",sans-serif;font-weight:700;font-size:13px;color:var(--ink-faint);
  border-top:1px dashed var(--line);padding-top:.5rem;width:100%}
.price b{font-size:14px;color:var(--ink-2);letter-spacing:.06em}

/* ── 追従CTAバー（予約導線＝電話のみ） ── */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:60;height:calc(var(--bar-h) + env(safe-area-inset-bottom));
  padding:0 12px env(safe-area-inset-bottom);display:flex;align-items:center;gap:10px;
  background:rgba(252,248,238,.96);border-top:1px solid var(--line);backdrop-filter:blur(8px)}
.bar .txt{flex:1;font-size:12px;line-height:1.5;color:var(--ink-soft)}
.bar .txt b{display:block;font-size:13px;color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:44px;
  font-weight:700;font-size:14px;letter-spacing:.04em;color:var(--yellow);background:var(--ink);
  border-radius:3px;padding:.7em 1.3em;text-decoration:none;transition:background .25s var(--e-out)}
.btn:hover{background:var(--ink-2)}
.btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.btn.ghost{color:var(--ink);background:transparent;border:1px solid var(--ink)}
.btn.ghost:hover{background:rgba(23,20,14,.06)}

/* ── FV ── */
.hero{position:relative;height:100svh;min-height:540px;overflow:hidden;background:var(--ink)}
.hero .shot{position:absolute;inset:-10% 0;will-change:transform}
.hero .shot img{width:100%;height:100%;object-fit:cover;object-position:50% 46%}
.hero .scrim{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(23,20,14,.9) 3%,rgba(23,20,14,.36) 42%,rgba(23,20,14,.06) 66%,rgba(23,20,14,.42) 100%)}
.hero .cap{position:absolute;left:0;right:0;bottom:clamp(66px,12vh,104px);z-index:3;color:var(--paper)}
.hero .mark{font-weight:700;font-size:11px;letter-spacing:.22em;opacity:.85;display:block;margin-bottom:1rem}
.hero .logo{font-family:"IrohaKakuC",sans-serif;font-size:clamp(19px,4.4vw,26px);letter-spacing:.08em;
  display:block;margin-bottom:.9rem;opacity:.95}
.hero .logo small{display:block;font-size:.52em;letter-spacing:.18em;opacity:.8;margin-bottom:.2em}
.hero h1{font-family:"IrohaKakuC",sans-serif;font-weight:700;font-size:clamp(33px,8.6vw,72px);
  line-height:1.32;letter-spacing:.05em}
.hero .lead{margin-top:1.3rem;font-family:"IrohaKakuC",sans-serif;font-size:clamp(14px,3.5vw,17px);
  line-height:2;max-width:25em;opacity:.95}
/* 店を言い当てる3語（本人指定: ひとり飲み・ローカル・音楽コミュニティ） */
.hero .words{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:8px}
.hero .words li{font-family:"IrohaKakuC",sans-serif;font-weight:600;font-size:12.5px;letter-spacing:.08em;
  color:var(--paper);border:1px solid rgba(252,248,238,.55);border-radius:999px;padding:.35em .95em}
.hero .scroll{position:absolute;left:50%;bottom:16px;z-index:3;transform:translateX(-50%);
  color:var(--paper);opacity:.68;font-size:9.5px;letter-spacing:.2em;text-align:center}
.hero .scroll i{display:block;width:1px;height:32px;background:currentColor;margin:8px auto 0;
  transform-origin:top;animation:drop 2.2s var(--e-out) infinite}
@keyframes drop{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}

/* ── 看板が点灯する ── */
.sign{position:relative;height:100svh;min-height:500px;overflow:hidden;background:#0d0b07}
.sign .shot{position:absolute;inset:-9% 0;will-change:transform}
.sign .shot img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.js .sign .shot img{filter:brightness(.45) saturate(.65);transition:filter 1.6s var(--e-out)}
.js .sign.lit .shot img{filter:none}
.sign .glow{position:absolute;inset:0;opacity:1;
  background:radial-gradient(56% 40% at 50% 42%,rgba(246,223,62,.4),transparent 72%)}
.js .sign .glow{opacity:0;transition:opacity 1.8s var(--e-out)}
.js .sign.lit .glow{opacity:1}
.sign .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,11,7,.88),transparent 56%)}
.sign .cap{position:absolute;left:0;right:0;bottom:clamp(58px,10vh,94px);z-index:3;color:var(--paper)}
.sign h2{font-family:"IrohaKakuC",sans-serif;font-weight:700;font-size:clamp(27px,7.2vw,58px);line-height:1.36;letter-spacing:.05em}
.sign .scribble{margin-top:1.2rem;font-size:14.5px;opacity:.92;max-width:23em}
.shot-note{margin-top:1.1rem;font-size:11.5px;line-height:1.8;max-width:26em;
  color:var(--paper);background:rgba(23,20,14,.62);border-left:3px solid var(--yellow);
  padding:.6em .8em;border-radius:2px}

/* ── 営業時間の考え方（固定の時間表は載せない） ── */
.open-policy{margin-top:1.3rem;max-width:27em;font-size:13px;line-height:1.95;
  color:var(--paper);background:rgba(23,20,14,.55);border:1px solid rgba(252,248,238,.28);
  border-radius:3px;padding:.9em 1.1em}
.open-policy b{color:var(--yellow)}
.open-policy .btn{margin-top:.8em;background:var(--yellow);color:var(--ink)}
.open-policy .btn:hover{background:var(--yellow-deep)}

/* ── 3軸のブランドメッセージ ── */
.axis{padding:var(--gap-m) 0 var(--gap-s)}
.axis .h2{margin-bottom:2.4rem}
.axis-grid{display:grid;gap:clamp(30px,5vw,44px)}
@media(min-width:820px){.axis-grid{grid-template-columns:repeat(3,1fr);gap:44px}}
.axis-item{position:relative;padding-top:1.5rem;border-top:2px solid var(--ink)}
.axis-item .no{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:13px;letter-spacing:.16em;
  color:var(--ink-faint);display:block;margin-bottom:.7rem}
.axis-item h3{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:clamp(19px,4.4vw,24px);
  line-height:1.6;margin-bottom:.8rem}
.axis-item p{font-size:14.5px;line-height:2;color:var(--ink-soft)}

/* ── 看板4品 ── */
.menu{padding:var(--gap-s) 0 var(--gap-m);background:var(--paper-3);background-image:var(--grain)}
.menu .h2{margin-bottom:.9rem}
.menu .note{font-size:13.5px;color:var(--ink-soft);margin-bottom:2.6rem;max-width:34em}
.hero-dish{display:grid;gap:clamp(26px,5vw,52px);align-items:center;margin-bottom:clamp(46px,8vw,78px)}
@media(min-width:860px){.hero-dish{grid-template-columns:1.05fr .95fr}}
.hero-dish figure{margin:0;position:relative;border-radius:2px;overflow:hidden;
  box-shadow:0 24px 56px rgba(23,20,14,.24)}
.js .hero-dish figure{clip-path:inset(100% 0 0 0);transform:translateY(34px);
  transition:clip-path 1.2s var(--e-out),transform 1.2s var(--e-out)}
.js .hero-dish.in figure{clip-path:inset(0 0 0 0);transform:none}
.hero-dish figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.js .hero-dish .txt{opacity:0;transform:translateY(18px);transition:opacity 1s var(--e-out) .3s,transform 1s var(--e-out) .3s}
.js .hero-dish.in .txt{opacity:1;transform:none}
.hero-dish h3{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:clamp(23px,5.4vw,38px);line-height:1.55}
.hero-dish p{margin-top:1.1rem;font-size:15px;line-height:2.05;color:var(--ink-soft);max-width:25em}
.hero-dish .name{margin-top:1.5rem;font-family:"IrohaKakuC",sans-serif;font-weight:600;font-size:13.5px;color:var(--ink-faint)}
.dishes{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}
.dish{background:var(--white);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.dish img{width:100%;aspect-ratio:4/3;object-fit:cover}
.dish .b{padding:14px 15px 17px}
.dish h4{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:16.5px;margin-bottom:.35rem}
.dish p{font-size:13px;line-height:1.85;color:var(--ink-soft)}
.menu .more{margin-top:2.2rem;font-size:13.5px;color:var(--ink-soft)}

/* ── 名物ドリンク3種 ── */
.drink{padding:var(--gap-s) 0}
.drink .h2{margin-bottom:.9rem}
.drink .note{font-size:13.5px;color:var(--ink-soft);margin-bottom:2.2rem;max-width:34em}
.dr-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}
.dr{position:relative;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--white)}
/* 写真がまだ無い枠。実物が届くまでは、それと分かる形で空けておく */
.ph{background:
  radial-gradient(120% 70% at 50% 8%,rgba(246,223,62,.34),transparent 60%),
  linear-gradient(160deg,var(--paper-2),var(--paper-3));
  display:flex;align-items:center;justify-content:center;padding:16px;text-align:center}
.ph span{font-size:11.5px;line-height:1.7;letter-spacing:.06em;color:var(--ink-soft);
  background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:2px;padding:.35em .7em}
.dr .ph{aspect-ratio:4/3}
.hero-dish .ph{aspect-ratio:4/3;border-radius:2px}
.dr img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.dr .b{padding:14px 15px 18px}
.dr h3{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:17px;margin-bottom:.4rem}
.dr p{font-size:13px;line-height:1.85;color:var(--ink-soft)}

/* ── ひとりでも、ちゃんと居られる ── */
.solo{position:relative;min-height:74svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.solo .shot{position:absolute;inset:-8% 0;will-change:transform}
.solo .shot img{width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.solo .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(23,20,14,.9) 6%,rgba(23,20,14,.18) 58%,transparent 82%)}
.solo .cap{position:relative;z-index:3;color:var(--paper);padding:clamp(76px,14vw,120px) 0 clamp(48px,8vw,76px);width:100%}
.solo h2{font-family:"IrohaKakuC",sans-serif;font-weight:700;font-size:clamp(27px,7.2vw,58px);line-height:1.36;letter-spacing:.05em}
.solo .scribble{margin-top:1.2rem;font-size:14.5px;opacity:.92;max-width:24em}
.solo ul{margin-top:1.9rem;display:grid;gap:11px;max-width:34em}
.solo li{position:relative;padding-left:1.5em;font-size:14px;line-height:1.9;opacity:.95}
.solo li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:8px;background:var(--yellow);border-radius:50%}

/* ── 店名の由来（about） ── */
.story{padding:var(--gap-s) 0}
.story .h2{margin-bottom:1.1rem}
.story .note{font-size:14.5px;line-height:2.05;color:var(--ink-soft);max-width:38em;margin-bottom:1.1rem}

/* ── 今夜のえぞまつ（カレンダー＋イベント） ── */
.now{padding:var(--gap-m) 0 var(--gap-s)}
.now .h2{margin-bottom:.9rem}
.now .note{font-size:13.5px;color:var(--ink-soft);margin-bottom:2.2rem;max-width:34em}
.now-grid{display:grid;gap:clamp(26px,4vw,40px)}
@media(min-width:900px){.now-grid{grid-template-columns:minmax(0,340px) 1fr}}
.cal-wrap{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:16px 16px 18px}
.cal-legend{display:flex;flex-wrap:wrap;gap:.5em 1.1em;font-size:11.5px;color:var(--ink-soft);margin-bottom:.9rem}
.cal-legend span{display:inline-flex;align-items:center;gap:.4em}
.cal-legend i{width:11px;height:11px;border-radius:2px;background:var(--paper-2);border:1px solid var(--line)}
.cal-legend i.off{background:var(--ink);border-color:var(--ink)}
.cal-legend i.ev{background:var(--yellow);border-color:var(--yellow-deep)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{text-align:center;font-size:10.5px;font-weight:700;color:var(--ink-faint);padding:.3em 0}
.cal-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;line-height:1;border:1px solid var(--line-soft);border-radius:2px;background:var(--paper)}
.cal-cell small{position:absolute;bottom:2px;font-size:8.5px;letter-spacing:0;line-height:1}
/* 「休」は絶対配置で下に置くため、日付が本文の行高のままだと重なる。
   行高を詰めたうえで下に余白をとり、中央寄せの数字を少し上へ逃がす
   （375px幅で7px重なって読めなくなっていた） */
.cal-cell:has(small){padding-bottom:8px}
.cal-cell.off{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cal-cell.ev{background:var(--yellow);border-color:var(--yellow-deep);font-weight:700}
.cal-cell.empty{background:transparent;border-color:transparent}
.cal-closed{margin-top:.9rem;font-size:12.5px;color:var(--ink-soft)}
.events{display:grid;gap:14px;align-content:start}
.event{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:16px 17px 18px}
.event .d{font-weight:700;font-size:11px;letter-spacing:.13em;color:var(--ink);
  background:var(--yellow);display:inline-block;padding:5px 8px;border-radius:2px;margin-bottom:.8rem}
.event h3{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:17.5px;margin-bottom:.4rem}
.event p{font-size:13.5px;line-height:1.85;color:var(--ink-soft)}
/* 全体で a{color:inherit} にしているため、本文中のリンクは
   下線と太さで「押せる」ことを示す（色だけに頼らない） */
.event p a{color:var(--ink);font-weight:700;text-decoration:underline;
  text-underline-offset:.22em;text-decoration-thickness:1.5px}
.event p a:hover{background:var(--yellow-soft)}
.event p b{color:var(--ink)}

/* ── 店内を見る（間取り図） ── */
.floor{padding:var(--gap-s) 0;background:var(--paper-2);background-image:var(--grain)}
.floor .h2{margin-bottom:.9rem}
.floor .note{font-size:13.5px;color:var(--ink-soft);margin-bottom:2.2rem;max-width:36em}
.floor-grid{display:grid;gap:clamp(24px,4vw,40px);align-items:center}
@media(min-width:860px){.floor-grid{grid-template-columns:1.15fr .85fr}}
.floor-map{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:16px}
.floor-map svg{width:100%;height:auto;display:block}
.floor dl{display:grid;gap:14px}
.floor dt{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:15.5px;margin-bottom:.15rem}
.floor dd{font-size:14px;line-height:1.95;color:var(--ink-soft)}

/* ── FAQ ── */
.faq{padding:var(--gap-s) 0}
.faq .h2{margin-bottom:.9rem}
.faq .note{font-size:13.5px;color:var(--ink-soft);margin-bottom:2rem;max-width:34em}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.15em 2.2em 1.15em 2em;position:relative;
  font-family:"IrohaKakuC",sans-serif;font-weight:700;font-size:15.5px;line-height:1.7;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";position:absolute;left:0;top:1.15em;font-size:13px;color:var(--ink-faint);font-weight:800}
.faq summary::after{content:"";position:absolute;right:.4em;top:1.75em;width:8px;height:8px;
  border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);
  transform:rotate(45deg);transition:transform .3s var(--e-out)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .a{padding:0 0 1.4em 2em;font-size:14px;line-height:2;color:var(--ink-soft);position:relative}
/* 黄色の文字は紙色の上で 1.44:1 しかない。地色を反転してコントラストを確保する */
.faq .a::before{content:"A";position:absolute;left:0;top:.35em;font-size:11px;font-weight:800;line-height:1;
  color:var(--ink);background:var(--yellow);padding:.25em .4em;border-radius:2px}

/* ── 店舗情報・アクセス ── */
.info{padding:var(--gap-m) 0 var(--gap-s);background:var(--paper-3);background-image:var(--grain)}
.info-grid{display:grid;gap:clamp(30px,5vw,52px)}
@media(min-width:900px){.info-grid{grid-template-columns:1.05fr .95fr}}
.info dl{display:grid;grid-template-columns:5.2em 1fr;gap:.75em 1em;font-size:14.5px;
  border-top:1px solid var(--line);padding-top:1.3rem}
.info dt{font-weight:700;color:var(--ink-2)}
.info dd{color:var(--ink-soft);line-height:1.9}
.info dd small{display:block;font-size:12px;color:var(--ink-faint);margin-top:.15rem}
.landmark{margin-top:1.8rem;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--white)}
.landmark img{width:100%;aspect-ratio:16/10;object-fit:cover}
.landmark figcaption{padding:12px 14px 15px;font-size:13.5px;line-height:1.85;color:var(--ink-soft)}
.map{margin-top:1.2rem;aspect-ratio:16/10;border:1px solid var(--line);border-radius:3px;
  background:repeating-linear-gradient(45deg,var(--paper-2) 0 12px,var(--paper) 12px 24px);
  display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}
.map p{font-size:13px;color:var(--ink-faint);line-height:1.85}
.map:has(iframe){padding:0;overflow:hidden}
.map iframe{width:100%;height:100%;border:0;display:block}
.cta-card{background:var(--ink);color:var(--paper);border-radius:3px;padding:clamp(24px,5vw,34px);align-self:start}
.cta-card h2{font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:clamp(20px,4.6vw,27px);line-height:1.6;margin-bottom:1rem}
/* 濃色地では下線風マーカーだと帯の外が ink on ink（1:1）になって文字の上半分が消える。
   暗い背景の上ではベタ塗りにする（黄色地に濃色＝13.6:1） */
.cta-card h2 .mk{background:var(--yellow);color:var(--ink);padding:.06em .28em;border-radius:2px;
  -webkit-box-decoration-break:clone;box-decoration-break:clone}
.cta-card p{font-size:14px;line-height:1.95;color:rgba(252,248,238,.86)}
.cta-card .tel{display:block;margin:1.4rem 0 .3rem;font-family:"IrohaKakuC",sans-serif;font-weight:800;
  font-size:clamp(23px,6vw,32px);letter-spacing:.04em;color:var(--yellow);text-decoration:none}
.cta-card .small{font-size:12.5px;color:rgba(252,248,238,.7);margin-bottom:1.4rem}
.cta-card .btn{background:var(--yellow);color:var(--ink);width:100%}
.cta-card .btn:hover{background:var(--yellow-deep)}
.cta-card .btn:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}

/* ── 入口カード（下層ページへの導線） ── */
.gates{padding:var(--gap-s) 0}
.gates .h2{margin-bottom:2rem}
.gates-grid{display:grid;gap:14px}
@media(min-width:720px){.gates-grid{grid-template-columns:1fr 1fr}}
.gate{display:block;position:relative;background:var(--white);border:1px solid var(--line);border-radius:3px;
  padding:22px 23px 24px;text-decoration:none;transition:border-color .25s var(--e-out)}
.gate:hover{border-color:var(--ink)}
.gate .tag{font-weight:700;font-size:10.5px;letter-spacing:.16em;color:var(--ink-faint);display:block;margin-bottom:.7rem}
.gate b{display:block;font-family:"IrohaKakuC",sans-serif;font-weight:800;font-size:clamp(19px,4.4vw,24px);
  line-height:1.6;margin-bottom:.5rem}
.gate p{font-size:13.5px;line-height:1.9;color:var(--ink-soft)}
.gate .go{display:inline-block;margin-top:1rem;font-weight:700;font-size:12.5px;letter-spacing:.1em;
  background:linear-gradient(transparent 62%,var(--yellow) 62% 92%,transparent 92%)}

/* ── SNS ── */
.sns{padding:var(--gap-s) 0}
.sns .h2{margin-bottom:.9rem}
.sns .note{font-size:13.5px;color:var(--ink-soft);margin-bottom:2rem;max-width:34em}
.sns-grid{display:grid;gap:14px}
@media(min-width:720px){.sns-grid{grid-template-columns:1fr 1fr}}
.sns-card{display:block;background:var(--white);border:1px solid var(--line);border-radius:3px;
  padding:18px 19px 20px;text-decoration:none;transition:border-color .25s var(--e-out)}
.sns-card:hover{border-color:var(--ink)}
.sns-card b{display:block;font-family:"IrohaKakuC",sans-serif;font-size:16.5px;margin-bottom:.35rem}
.sns-card span{font-size:13px;line-height:1.85;color:var(--ink-soft)}

/* ── フッター ── */
.ft{padding:var(--gap-s) 0 var(--gap-s);border-top:1px solid var(--line);background:var(--paper-2)}
.ft .brand{font-family:"IrohaKakuC",sans-serif;font-size:clamp(23px,5.4vw,30px);letter-spacing:.06em;margin-bottom:1.2rem}
.ft .brand .sub{display:block;font-size:.44em;letter-spacing:.2em;color:var(--ink-faint);margin-bottom:.2em}
.ft .brand small{display:block;font-size:.4em;font-family:"IrohaKakuC","Zen Kaku Gothic New",sans-serif;
  letter-spacing:.06em;color:var(--ink-faint);margin-top:.5em}
.ft-nav{display:flex;flex-wrap:wrap;gap:.2em 1.4em;font-size:13px;margin-bottom:1.2rem}
.ft-nav a{font-weight:700;text-decoration:none;color:var(--ink-soft);min-height:44px;display:inline-flex;align-items:center}
.ft-nav a:hover{color:var(--ink);text-decoration:underline}
.ft-nap{font-size:13.5px;line-height:1.95;color:var(--ink-soft);padding-top:1.2rem;border-top:1px solid var(--line)}
.ft-meta{margin-top:1.6rem;font-size:11.5px;line-height:1.85;color:var(--ink-faint)}
.ft-meta .disc{display:block;margin-bottom:.6rem}

/* reveal（JSがある時だけ。無い時は最初から見える） */
.js [data-rv]{opacity:0;transform:translateY(20px);transition:opacity .85s var(--e-out),transform .85s var(--e-out)}
.js [data-rv].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js [data-rv]{opacity:1;transform:none}
  .js .hero-dish figure{clip-path:none;transform:none}
  .js .hero-dish .txt{opacity:1;transform:none}
  .js .sign .shot img{filter:none}
  .js .sign .glow{opacity:1}
}
