/* 2案共通の土台（外部フォント・外部スクリプトなし） */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html[data-motion="static"],html[data-motion="reduced"]{scroll-behavior:auto}
body{margin:0;font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:15px;line-height:1.9;
  font-feature-settings:"palt" 0;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
h1,h2,h3,p,ul,ol{margin:0}
p,dd,li{text-wrap:pretty;line-break:strict}
h2,h3{text-wrap:balance}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--focus,#b8792f);outline-offset:3px}
.skip{position:absolute;left:8px;top:-60px;z-index:200;padding:8px 14px;background:#000;color:#fff}
.skip:focus{top:8px}
.serif,.dname,h1,h2{font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;font-weight:500}

/* 比較試作の印（静的・薄い帯。比較操作はHubだけに置く） */
.proto{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:4px 16px;font-size:11px;line-height:1.6;
  background:#3a3530;color:#e9e2d6;letter-spacing:.04em}
.proto a{color:#f1c88d;white-space:nowrap}
.proto{height:26px;white-space:nowrap;overflow:hidden}
.proto__s{display:none}
@media (max-width:767px){.proto__l{display:none}.proto__s{display:inline}}

/* 料理名：主名と副題を意味の単位で固定（単位の途中で改行しない） */
.dname{display:inline}
.dname__main,.dname__sub{display:inline-block;white-space:nowrap}
.dname__sub{display:block;font-size:.72em;letter-spacing:.06em;margin-top:.25em;opacity:.85}
@media (max-width:359px){.dname__main,.dname__sub{white-space:normal;word-break:keep-all;overflow-wrap:anywhere}}

/* ボタン・リンク */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 26px;border:1px solid currentColor;
  text-decoration:none;letter-spacing:.14em;font-size:14px;line-height:1.4;background:transparent;transition:background-color .3s,color .3s,border-color .3s}
.btn--lg{min-height:54px;padding:12px 34px;font-size:15px}
.tlink{display:inline-flex;align-items:center;gap:.6em;min-height:44px;text-decoration:none;letter-spacing:.1em;font-size:14px;position:relative}
.tlink::after{content:"";width:28px;height:1px;background:currentColor;transition:width .35s ease}
.tlink:hover::after,.tlink:focus-visible::after{width:44px}

/* ドロワー（開閉の動きは各案CSS） */
.dr[hidden]{display:none}
.dr{position:fixed;inset:0;z-index:120}
.dr__scrim{position:absolute;inset:0}
.dr__close{min-height:44px;padding:8px 14px;background:none;border:1px solid currentColor;letter-spacing:.1em}
.dr__list a{display:flex;align-items:baseline;gap:14px;text-decoration:none;min-height:48px;padding:8px 0}
.dr__note{font-size:12px;opacity:.7;margin-top:10px}
body.is-locked{overflow:hidden}

/* 予約（試作のため未接続） */
.rsv{max-width:min(92vw,460px);padding:28px;border:0;background:#fbf8f2;color:#1d1b18;line-height:1.9}
.rsv::backdrop{background:rgba(10,8,6,.6)}
.rsv h2{font-size:20px;margin-bottom:10px}
.rsv p{font-size:14px}
.rsv__sub{opacity:.75;margin:6px 0 18px}

/* SP固定予約バー */
.spbar{display:none}
@media (max-width:767px){
  .spbar{display:grid;grid-template-columns:1.4fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:90;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;transform:translateY(0);transition:transform .3s ease}
  .spbar a{display:flex;align-items:center;justify-content:center;min-height:46px;text-decoration:none;letter-spacing:.14em;font-size:14px}
  .spbar.is-hidden{transform:translateY(110%)}
  body{padding-bottom:72px}
}
html[data-motion="static"] .spbar,html[data-motion="reduced"] .spbar{transition:none}

/* 内部レビュー表示（?review=1 のときだけ） */
.rv-slot{display:none}
html.review .rv-slot{display:block;margin-top:24px;padding:14px 16px;border:1px dashed #3d7bd9;background:rgba(61,123,217,.08);font-size:12px;line-height:1.7}
html.review .rv-slot li{display:grid;gap:2px;padding:6px 0;border-top:1px dotted rgba(61,123,217,.5)}
html.review .rv-slot__h{font-weight:700;color:#3d7bd9}
html.review [data-draft]{outline:1px dashed #d98a3d;outline-offset:3px}

/* ── Motion の共通機構 ──
   初期状態は html.mo（通常の動き）のときだけ作る。静止・低減・JSなしでは最初から完成状態。
   料理名・予約・価格に相当する要素には data-rv を付けない（常に表示）。 */
.mask{overflow:hidden;position:relative}
.mo [data-rv="curtain"]{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.1,1)}
.mo [data-rv="curtain"] img{transform:scale(1.04);transition:transform 1.6s cubic-bezier(.2,.7,.1,1)}
.mo [data-rv="curtain"].in{clip-path:inset(0 0 0 0)}
.mo [data-rv="curtain"].in img{transform:none}
.mo [data-rv="text"]{opacity:0;transform:translateY(14px);transition:opacity .9s ease .25s,transform 1s cubic-bezier(.2,.7,.1,1) .25s}
.mo [data-rv="text"].in{opacity:1;transform:none}
.mo [data-rv="line"]{transform:scaleX(0);transform-origin:left center;transition:transform 1s cubic-bezier(.2,.7,.1,1) .2s}
.mo [data-rv="line"].in{transform:none}
.mo [data-rv="rise"]{opacity:0;transform:translateY(22px);transition:opacity .8s ease .15s,transform .9s cubic-bezier(.2,.7,.1,1) .15s}
.mo [data-rv="rise"].in{opacity:1;transform:none}
.mo [data-rv="lit"] img{filter:brightness(.18) saturate(.6);transform:scale(.985);transition:filter 1.1s ease,transform 1.3s cubic-bezier(.2,.7,.1,1)}
.mo [data-rv="lit"].in img{filter:none;transform:none}
.mo [data-rv="cut"]{clip-path:inset(50% 0 50% 0);transition:clip-path .85s cubic-bezier(.7,0,.2,1)}
.mo [data-rv="cut"].in{clip-path:inset(0 0 0 0)}
.mo [data-rv="amb"]{opacity:0;transition:opacity 1.6s ease}
.mo [data-rv="amb"].in{opacity:1}
.mo [data-rv="track"] span{letter-spacing:.42em;transition:letter-spacing 1.2s cubic-bezier(.2,.7,.1,1) .2s}
/* Heroの写真が1.2秒以内に読めなかった時は動かさず完成状態 */
.no-hero-anim [data-hero] [data-rv],.no-hero-anim [data-hero] [data-rv] *{transition:none!important}
/* 低減版：位置・マスクは使わず短い不透明度だけ */
html[data-motion="reduced"] [data-rv="text"],html[data-motion="reduced"] [data-rv="rise"]{animation:rvfade .2s ease both}
@keyframes rvfade{from{opacity:.4}to{opacity:1}}
/* 画像が読めなかった時：枠だけ残し、本文は通常どおり */
img.is-broken{min-height:120px;background:#8a8278;color:transparent}
@media print{.proto,.spbar,.dr,.rsv{display:none!important}}
.hd__logo{display:inline-flex;align-items:center;min-height:44px}
