/* A paper menu, with a real cover and facing leaves. */
.menu.oshinagaki{padding:100px 8% 90px;background:#eeece3;overflow:clip;--menu-rule:#28271f30;--menu-muted:#656359;--menu-accent:#8d3a29;--paper:#faf8f0;color:#292820}
.oshinagaki [hidden]{display:none!important}
.oshinagaki .oshinagaki-heading{display:flex;align-items:center;justify-content:space-between;gap:50px;border-top:1px solid #28271f75;padding-top:44px;margin-bottom:48px}
.oshinagaki .oshinagaki-heading h2{font:500 clamp(42px,4.8vw,70px)/1.3 Shippori,serif;text-align:left;letter-spacing:.08em;margin:12px 0 0}
.menu-eyebrow{font:11px/1.5 sans-serif;letter-spacing:.17em}
.oshinagaki-heading>p{font:500 18px/2 Shippori,serif;letter-spacing:.08em;margin-right:5%}
.menu-city-tabs{display:flex;align-items:center;justify-content:center;gap:44px;margin-bottom:42px}
.menu-city-tabs>button{color:#57554e;min-width:180px;min-height:64px;background:none;border:0;border-bottom:1px solid #28271f40;display:flex;align-items:center;justify-content:space-between;gap:24px;font:500 29px/1.5 Shippori,serif;padding:8px 12px}
.menu-city-tabs>button small{font:10px/1.4 sans-serif;letter-spacing:.1em}
.menu-city-tabs>button[aria-selected=true]{color:#292820;border-bottom:2px solid #292820}
.menu-city-tabs>button::after{content:'○';font-size:9px;color:#78756a}
.menu-city-tabs>button[aria-selected=true]::after{content:'●';color:var(--menu-accent)}
.menu-city-panel+.menu-city-panel{margin-top:65px}.oshinagaki[data-enhanced] .menu-city-panel{margin-top:0}
.menu-book{max-width:1120px;margin:0 auto}
.book-stage{scroll-margin-top:85px;position:relative;perspective:2000px;isolation:isolate}
.book-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-radius:2px}
.book-page{position:relative;min-width:0;background:var(--paper);padding:30px 42px 24px;min-height:630px;display:flex;flex-direction:column;border:1px solid #aca48c42;box-shadow:0 4px 0 -2px #ded9c9,0 7px 0 -3px #c9c0ac;color:#292820}
.book-page:nth-child(odd){background:linear-gradient(90deg,var(--paper) 93%,#d8d2be 100%)}
.book-page:nth-child(even){background:linear-gradient(90deg,#e4dfd0 0%,var(--paper) 7%)}
.book-page-running{display:flex;justify-content:space-between;font:11px/1.6 sans-serif;letter-spacing:.12em;color:#676256;padding-bottom:18px;border-bottom:1px solid var(--menu-rule)}
.book-page-bottom{display:flex;justify-content:space-between;font:11px/1.5 Shippori,serif;letter-spacing:.12em;color:#736d5e;margin-top:auto;padding-top:20px}
.book-intro h3{font:500 34px/1.7 Shippori,serif;letter-spacing:.1em;margin:32px 0 24px}
.book-intro figure{margin:0;width:100%}
.book-intro figure img{display:block;width:100%;height:auto;aspect-ratio:1.72;object-fit:cover;backface-visibility:visible;filter:saturate(.86)}
.book-intro figcaption{font:10px/1.6 sans-serif;color:#716b5e;margin-top:7px;text-align:right}
.book-intro>p{font:400 15px/2 Shippori,serif;letter-spacing:.07em;margin:22px 0 10px}
.menu-group{margin-top:35px}
.menu-group h3{font:500 31px/1.5 Shippori,serif;letter-spacing:.07em;margin:0 0 25px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.menu-temperature{font:12px/1.4 sans-serif;display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid #747b8070;border-radius:50%;flex-shrink:0;color:#454d57}
.menu-temperature[data-temp="温"]{color:var(--menu-accent);border-color:#a66b5d70}
.menu-group ul{margin:0;padding:0;list-style:none}
.menu-group li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font:400 18px/1.7 Shippori,serif;letter-spacing:.015em;padding:12px 0;border-bottom:1px solid #29282113;min-width:0}
.menu-dish{min-width:0;overflow-wrap:anywhere}.dish-phrase{display:inline-block;white-space:nowrap}.menu-dish>small{font:11px/1.5 sans-serif;margin-left:6px}
.menu-price{font:400 17px/1.5 Shippori,serif;font-variant-numeric:tabular-nums;white-space:nowrap}.menu-price>small{font-size:11px;margin-left:4px}
.book-price-caption{font:10px/1.6 sans-serif;color:#716b5e;margin:18px 0 0;text-align:right}
.book-cover{position:absolute;right:0;top:0;width:50%;height:100%;z-index:5;border:1px solid #b6aa8d;background:repeating-linear-gradient(0deg,#bba77a04 0 1px,transparent 1px 3px),linear-gradient(100deg,#d4c9af 0%,#eee6d4 5%,#f0e9d9 65%,#e7ddc6 100%);box-shadow:12px 17px 30px #51442b20,2px 4px 0 #c0b49a,4px 7px 0 #e5dbc6;transform-origin:left center;color:#302e25;padding:35px;cursor:pointer;backface-visibility:hidden}
.book-cover-inner{height:100%;display:flex;align-items:center;flex-direction:column;border:1px solid #7c71554d;padding:36px 20px 28px}
.book-cover img{width:130px;height:44px;object-fit:contain;opacity:.85}
.book-cover-title{writing-mode:vertical-rl;font:500 42px/1.4 Shippori,serif;letter-spacing:.35em;margin:auto 0 24px}
.book-cover-city{font:500 17px/1.5 Shippori,serif;letter-spacing:.3em;padding-top:7px}
.book-cover-open{font:12px/1.5 sans-serif;letter-spacing:.1em;margin-top:auto;padding-top:35px;display:flex;gap:26px;align-items:center}
.book-cover-open>span{font-size:22px;transition:transform .35s}.book-cover:hover .book-cover-open>span{transform:translate(3px,-3px)}
.book-invitation{position:absolute;inset:0 50% 0 0;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:40px}
.book-invitation>span{font:12px/1.5 Shippori,serif;letter-spacing:.25em;color:#7a7465}
.book-invitation p{font:500 33px/1.9 Shippori,serif;letter-spacing:.13em;margin:27px 0}
.book-invitation-line{height:60px;width:1px;background:#9d9480;margin-top:15px}
.menu-book[data-ready] .book-pages{box-shadow:0 20px 30px -20px #4c402838}
.menu-book[data-open="false"] .book-pages{visibility:hidden;box-shadow:none}
.book-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-top:32px;border-bottom:1px solid #29282025;padding-bottom:20px}
.book-controls button{background:none;border:0;color:#292820;font:13px/1.6 sans-serif;letter-spacing:.08em;padding:10px 0;min-height:44px;display:flex;align-items:center;gap:18px;cursor:pointer}
.book-controls button:last-child{justify-self:end}.book-controls button:disabled{opacity:.28;cursor:default}.book-controls button>span{font:24px/1 serif}
.book-status{font:12px/1.7 sans-serif;letter-spacing:.08em;text-align:center;color:#6c6659}
.book-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:18px;font:11px/1.9 sans-serif;color:#716b5e}
.book-close{padding:10px 0;background:none;border:0;border-bottom:1px solid #8e8673;color:inherit;font:12px/1.5 sans-serif;white-space:nowrap;cursor:pointer;min-height:44px}
.menu-book[data-open="false"] .book-footer{margin-top:30px}
.book-flip{position:absolute;top:0;width:50%;height:100%;z-index:8;transform-style:preserve-3d;pointer-events:none}
.book-flip[data-direction="next"]{right:0;transform-origin:left center}
.book-flip[data-direction="prev"]{left:0;transform-origin:right center}
.book-flip-face{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden}
.book-flip-face.back{transform:rotateY(180deg)}
.book-flip-face>.book-page,.book-still>.book-page{height:100%;min-height:100%;box-shadow:none}
.book-flip-face::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#4a3d2b16,transparent 30%,#4a3d2b18);pointer-events:none}
.book-still{position:absolute;top:0;width:50%;height:100%;pointer-events:none;z-index:4}
.menu-source-links{display:flex;justify-content:flex-end;padding-top:26px;max-width:1120px;margin:auto}
.menu-source-links>a{font:12px/1.8 sans-serif;min-height:44px;display:flex;align-items:center;gap:25px;border-bottom:1px solid #28271f60}
.menu-source-links>a>span{font-size:20px}
.menu-price-reference{max-width:1120px;margin:0 auto 24px;padding:15px 18px;border:1px solid #a58b5f;background:#f6eedc;font:12px/1.8 sans-serif;color:#5c4a2c}
.oshinagaki a:focus-visible,.oshinagaki button:focus-visible{outline:2px solid var(--menu-accent);outline-offset:5px}
@media(min-width:1800px){.book-page{min-height:670px}}
@media(max-width:1100px){.menu.oshinagaki{padding-left:5%;padding-right:5%}.book-page{padding:26px 28px 22px}.menu-group li{font-size:16px;gap:12px}.menu-price{font-size:16px}.menu-group h3{font-size:28px}.book-intro h3{font-size:31px}.book-cover{padding:26px}}
@media(max-width:760px){
 .menu.oshinagaki{padding:65px 5% 60px}.oshinagaki .oshinagaki-heading{align-items:flex-start;padding-top:30px;margin-bottom:30px;gap:20px;flex-direction:column}.oshinagaki .oshinagaki-heading h2{font-size:44px}.oshinagaki-heading>p{font-size:16px;margin:0;line-height:1.85}
 .menu-city-tabs{gap:26px;margin-bottom:30px}.menu-city-tabs>button{min-width:0;width:50%;font-size:27px;gap:10px;padding:9px 5px;min-height:58px}.menu-city-tabs>button small{font-size:9px}
 /* Keep the same two facing leaves and centre hinge at every viewport size. */
 .book-pages{grid-template-columns:repeat(2,minmax(0,1fr))}
 .book-page{min-height:470px;padding:20px clamp(10px,2.8vw,24px) 16px}
 .book-page-running{font-size:clamp(8px,2.1vw,10px);letter-spacing:.02em;padding-bottom:12px;gap:4px;white-space:nowrap}
 .book-page-bottom{font-size:clamp(8px,2.1vw,10px);letter-spacing:0;gap:4px;padding-top:18px}
 .book-intro h3{font-size:clamp(16px,4.3vw,26px);letter-spacing:.015em;line-height:1.8;margin:24px 0 20px}
 .book-intro>p{font-size:clamp(11px,3vw,14px);line-height:2;letter-spacing:0;margin-top:20px}
 .book-intro figcaption{font-size:8px}
 .menu-group{margin-top:24px}
 .menu-group h3{font-size:clamp(16px,4.1vw,25px);letter-spacing:0;line-height:1.6;margin-bottom:20px;gap:5px}
 .menu-temperature{width:18px;height:18px;font-size:10px}
 .menu-group li{font-size:clamp(12px,3.2vw,16px);line-height:1.75;padding:11px 0;gap:6px;letter-spacing:0}
 .menu-price{font-size:clamp(11px,3vw,15px);flex-shrink:0;letter-spacing:0}
 .menu-price>small{font-size:9px;margin-left:1px}
 .book-cover{width:50%;padding:13px}
 .book-cover-inner{padding:25px 7px 20px}
 .book-cover img{width:min(100%,100px);height:34px}
 .book-cover-title{font-size:clamp(26px,6.8vw,35px);margin:auto 0 25px;letter-spacing:.3em}
 .book-cover-city{font-size:12px;letter-spacing:.12em}
 .book-cover-open{font-size:10px;gap:8px;letter-spacing:0;padding-top:25px}
 .book-cover-open>span{font-size:18px}
 .book-invitation{padding:15px 10px}
 .book-invitation>span{font-size:10px;letter-spacing:.08em}
 .book-invitation p{font-size:clamp(17px,4.5vw,25px);line-height:2;letter-spacing:.02em;margin:22px 0}
 .book-invitation-line{height:42px}
 .book-flip,.book-still{width:50%}
 .book-controls{gap:10px;margin-top:25px;padding-bottom:14px}.book-controls button{gap:10px;font-size:12px}.book-status{font-size:10px;max-width:120px}.book-footer{gap:14px;align-items:flex-start;font-size:10px}.book-close{font-size:11px;padding-top:0}.menu-source-links>a{width:100%;justify-content:space-between;font-size:12px}
}
@media(max-width:360px){
 .menu.oshinagaki{padding-inline:12px}
 .book-page{padding-inline:9px}
 .book-cover{padding:10px}.book-cover-inner{padding-inline:5px}.book-cover-open{font-size:9px;gap:4px}
 .menu-group li{gap:4px}.menu-temperature{width:16px;height:16px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.book-cover-open>span{transition:none}}

/* One shared menu. Prices accompany every dish in the ordinary public view. */
.menu-common-panel{margin-top:0}
.menu-group .book-price-caption{margin:-12px 0 8px;font-size:10px;letter-spacing:.04em}
.menu-price-note{max-width:1120px;margin:24px auto 0;font:11px/1.9 sans-serif;color:#6d6658}
.menu-price-note>p{max-width:740px}
.menu-price-sources{margin-top:8px;border:0;background:none;padding:0}
.menu-price-sources summary{cursor:pointer;list-style:revert;font:11px/1.9 sans-serif;min-height:36px;width:max-content;padding:5px 0}
.menu-price-sources p{font:11px/1.9 sans-serif;margin:7px 0;max-width:740px}
.menu-price-sources a{text-decoration:underline;text-underline-offset:3px}
.menu-price-sources summary:focus-visible{outline:2px solid var(--menu-accent);outline-offset:4px}
@media(max-width:760px){.menu-price-note{font-size:11px;margin-top:20px}.menu-group .book-price-caption{font-size:8px;letter-spacing:0;line-height:1.7;text-align:left;margin:-10px 0 7px}}

/* Turn the paper itself; keep the separate next action for keyboard access. */
.menu-book[data-ready][data-open="true"] .book-pages[data-turnable="true"] .book-page{cursor:pointer}
.book-pages:focus-visible{outline:2px solid var(--menu-accent);outline-offset:6px}
.book-controls{position:relative;grid-template-columns:1fr auto 1fr}
.book-turn-hint{justify-self:end;font:11px/1.7 sans-serif;letter-spacing:.05em;text-align:right;color:#6c6659}
.book-controls .book-next:not(:focus-visible){position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.book-controls .book-next:focus-visible{position:absolute;right:0;bottom:calc(100% + 14px);padding:12px 18px;background:var(--paper);box-shadow:0 4px 16px #4c402825;z-index:9}
@media(max-width:760px){.book-turn-hint{font-size:10px;max-width:112px}.book-controls{grid-template-columns:1fr auto 1fr;gap:9px}}
