:root{--bg:#15191d;--card:#1c2227;--ink:#ebe7e0;--mute:#a1a9a7;--line:#2d363d;--acc:#57b4a1;--acc-ink:#0c1715;--box:68rem;--pad:1rem;
--sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3",Meiryo,"メイリオ",system-ui,sans-serif;--num:"Helvetica Neue",Arial,var(--sans)}
*{box-sizing:border-box;border-radius:0}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.75 var(--sans)}
a{color:var(--ink);text-decoration-color:var(--mute);text-underline-offset:.2em}
header.top{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.4rem;padding:.6rem max(var(--pad),calc((100% - var(--box)) / 2 + var(--pad)));background:#15191df2;border-bottom:1px solid var(--line)}
header.top .logo{font-weight:700;color:var(--ink);text-decoration:none;font-size:1.15rem}
header.top nav{display:flex;gap:.9rem;font-size:.86rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%;white-space:nowrap}header.top nav::-webkit-scrollbar{display:none}header.top nav a{color:var(--mute);text-decoration:none}header.top nav a:hover{color:var(--ink)}
main{max-width:var(--box);margin:0 auto;padding:0 var(--pad) 1rem}
h1{font-size:1.45rem;line-height:1.45;margin:1.3rem 0 .6rem;font-weight:700}h2{font-size:1.08rem;font-weight:700;margin:2.2rem 0 .7rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}
.crumb{font-size:.82rem;color:var(--mute);margin:1rem 0 0}.crumb a{color:var(--mute)}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.6rem 0}@media(min-width:700px){.grid{grid-template-columns:repeat(5,1fr)}}
.grid a{display:block;background:var(--card);border:1px solid var(--line);padding:.65rem .6rem;text-decoration:none;font-weight:700;line-height:1.35}.grid a small{display:block;color:var(--mute);font-weight:400;font-size:.76rem;font-family:var(--num)}.grid a:hover{border-color:var(--mute)}
.stat{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.6rem 0}@media(min-width:700px){.stat{grid-template-columns:repeat(4,1fr)}}
.stat div{border:1px solid var(--line);padding:.55rem .7rem}.stat b{display:block;font-size:1.3rem;color:var(--acc);font-family:var(--num);font-weight:700}.stat span{color:var(--mute);font-size:.78rem}
.filters{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin:.6rem 0 .5rem}@media(min-width:700px){.filters{grid-template-columns:repeat(5,1fr)}}
.filters button{background:var(--card);color:var(--ink);border:1px solid var(--line);padding:.55rem .4rem;cursor:pointer;font:400 .88rem var(--sans);white-space:nowrap}.filters button[aria-pressed=true]{border-color:var(--acc);color:var(--acc);font-weight:700}
.count{font-size:.82rem;color:var(--mute);margin:.2rem 0 .4rem;font-family:var(--num)}
.wrap{overflow-x:auto}table.cmp{width:100%;border-collapse:collapse;font-size:.92rem}
table.cmp th,table.cmp td{padding:.6rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}table.cmp th{color:var(--mute);font-weight:400;font-size:.78rem;white-space:nowrap}
td.num{white-space:nowrap;font-family:var(--num)}td.p{color:var(--acc);font-weight:700}
.shop-name{font-weight:700;text-decoration:none}.shop-name:hover{text-decoration:underline}.sub{color:var(--mute);font-size:.8rem}
.tag{display:inline-block;font-size:.72rem;border:1px solid var(--line);padding:0 .35rem;margin:0 .2rem .2rem 0;color:var(--mute);white-space:nowrap}.tag.open{border-color:var(--acc);color:var(--acc)}
.facts{width:100%;border-collapse:collapse}.facts th,.facts td{padding:.6rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.facts th{width:7.5em;color:var(--mute);font-weight:400;font-size:.9rem}
.btn{display:block;max-width:26rem;background:var(--acc);color:var(--acc-ink);font-weight:700;text-align:center;padding:.85rem 1rem;text-decoration:none;margin:1.2rem 0 .6rem}
.note{color:var(--mute);font-size:.8rem}.promise{border:1px solid var(--line);padding:.6rem .8rem;font-size:.86rem;color:var(--mute);margin:.8rem 0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.prose{max-width:46em}.prose p{margin:.6rem 0}
footer{max-width:var(--box);margin:3rem auto 2rem;padding:1rem var(--pad);color:var(--mute);font-size:.8rem;border-top:1px solid var(--line)}footer a{color:var(--mute);margin-right:1rem}
#age{position:fixed;inset:0;z-index:50;background:#0d1012f8;display:flex;align-items:center;justify-content:center;padding:1rem}#age[hidden]{display:none}#age>div{width:100%;max-width:22rem;text-align:center}
#age button{display:block;width:100%;margin:.5rem 0;padding:.8rem;border:1px solid var(--line);font:700 1rem var(--sans);cursor:pointer}#age .yes{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}#age .no{background:var(--card);color:var(--mute)}
@media (max-width:640px){table.cmp .hide-sp{display:none}h1{font-size:1.28rem}}