/* 高級店.com — 数字が主役。装飾より読みやすさ。
   ★スマホの本文は16px以上（[[mobile-form-16px-and-tap-size]]）。 */
:root{
  --bg:#0f1013; --panel:#171920; --panel2:#1e212a; --line:#2b2f3a;
  --ink:#e8e6e1; --ink2:#a9a49b; --ink3:#7e7a72;
  --gold:#c8a15a; --gold2:#e0be7d;
  --ok:#5ea87a; --warn:#c98b3c; --bad:#8d8781;
  --maxw:1060px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:16px/1.85 "Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
}
a{color:var(--gold2)}
a:hover{color:#fff}
img{max-width:100%;height:auto}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:99;background:var(--gold);color:#111;padding:8px 14px;border-radius:4px}

/* ---- ヘッダー ---- */
.site-header{border-bottom:1px solid var(--line);background:rgba(15,16,19,.96);position:sticky;top:0;z-index:20}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:12px 18px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.brand{text-decoration:none;color:inherit;display:block}
.brand-text b{display:block;font-size:19px;letter-spacing:.06em;color:var(--gold2)}
.brand-text em{display:block;font-style:normal;font-size:12px;color:var(--ink3);letter-spacing:.04em}
.nav-toggle{margin-left:auto;background:none;border:1px solid var(--line);border-radius:6px;
  width:44px;height:44px;cursor:pointer;display:grid;place-items:center}
.nav-toggle i{display:block;width:20px;height:2px;background:var(--ink);margin:3px 0}
.nav{display:none;width:100%;flex-direction:column;gap:2px;padding-top:8px}
.site-header.is-open .nav{display:flex}
.nav a{display:block;padding:11px 4px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);font-size:15px}
@media(min-width:820px){
  .nav-toggle{display:none}
  .nav{display:flex;flex-direction:row;width:auto;margin-left:auto;padding:0;gap:4px}
  .nav a{border:0;padding:8px 11px;font-size:14px;color:var(--ink2)}
  .nav a:hover{color:var(--gold2)}
}

/* ---- 本文 ---- */
main{max-width:var(--maxw);margin:0 auto;padding:0 18px 64px}
.crumbs{font-size:13px;color:var(--ink3);padding:14px 0 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"›";margin-right:6px;color:var(--ink3)}
.crumbs a{color:var(--ink2);text-decoration:none}
h1{font-size:26px;line-height:1.45;margin:20px 0 6px;letter-spacing:.02em}
@media(min-width:700px){h1{font-size:32px}}
.lede{color:var(--ink2);font-size:16px;margin:0 0 8px}
.stamp{color:var(--ink3);font-size:13px;margin:0 0 26px}
h2{font-size:21px;margin:44px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);letter-spacing:.02em}
h3{font-size:17px;margin:28px 0 8px;color:var(--gold2)}
p{margin:0 0 15px}
ul,ol{margin:0 0 16px;padding-left:1.35em}
li{margin:0 0 7px}

/* ---- 数字の見出し ---- */
.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:26px 0 8px}
.fig{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 14px}
.fig b{display:block;font-size:30px;line-height:1.15;color:var(--gold2);letter-spacing:.01em}
.fig span{display:block;font-size:13px;color:var(--ink2);margin-top:5px}

/* ---- 店カード ---- */
.rank{list-style:none;margin:18px 0 0;padding:0;counter-reset:r}
.rank>li{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:16px 16px 14px;margin:0 0 12px;position:relative}
.rank>li.is-top{border-color:#3d3524;background:linear-gradient(180deg,#1c1a16,var(--panel))}
.r-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.r-no{font-size:13px;color:var(--ink3);font-variant-numeric:tabular-nums;min-width:2.2em}
.r-name{font-size:18px;font-weight:700;letter-spacing:.02em}
.r-area{font-size:12px;color:var(--ink3);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.r-price{margin:10px 0 6px;font-size:15px;color:var(--ink)}
.r-price b{font-size:23px;color:var(--gold2);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.r-price em{font-style:normal;color:var(--ink3);font-size:13px}
.r-rows{margin:8px 0 0;font-size:13px;color:var(--ink2)}
.r-rows span{display:inline-block;border:1px solid var(--line);border-radius:5px;padding:1px 8px;margin:0 6px 6px 0;font-variant-numeric:tabular-nums}
.r-src{font-size:12px;color:var(--ink3);margin:8px 0 0;word-break:break-all}
.r-src a{color:var(--ink2)}
.tag{display:inline-block;font-size:12px;border-radius:5px;padding:2px 9px;letter-spacing:.02em}
.tag-total{background:#1c2b22;color:#8fd0a8;border:1px solid #2c4636}
.tag-phone{background:#2b2418;color:#e0b273;border:1px solid #46381f}
.tag-part{background:#2a2320;color:#d09b86;border:1px solid #453029}
.tag-none{background:#232326;color:var(--ink3);border:1px solid var(--line)}

/* ---- 表 ---- */
.tw{overflow-x:auto;margin:16px 0 20px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:14px}
th,td{border:1px solid var(--line);padding:9px 11px;text-align:left;vertical-align:top}
th{background:var(--panel2);color:var(--ink2);font-weight:600;white-space:nowrap}
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---- 補足ブロック ---- */
.note{background:var(--panel);border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:14px 16px;margin:20px 0;font-size:15px}
.note p:last-child{margin-bottom:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:18px 0 6px}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;text-decoration:none;color:inherit}
.card:hover{border-color:var(--gold);color:inherit}
.card b{display:block;font-size:16px;color:var(--gold2);margin-bottom:5px}
.card span{display:block;font-size:13px;color:var(--ink2);line-height:1.7}

/* ---- フッター ---- */
.site-footer{border-top:1px solid var(--line);background:#0b0c0f;margin-top:40px}
.footer-inner{max-width:var(--maxw);margin:0 auto;padding:28px 18px 40px;font-size:13.5px;color:var(--ink2)}
.foot-lead{color:var(--ink);font-size:14px}
.foot-facts{list-style:none;padding:0;margin:0 0 16px}
.foot-facts li{padding-left:18px;position:relative}
.foot-facts li::before{content:"—";position:absolute;left:0;color:var(--ink3)}
.foot-nav{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 14px}
.foot-nav a{color:var(--ink2);text-decoration:none;font-size:13px}
.foot-note,.foot-age{font-size:12.5px;color:var(--ink3);margin:0 0 8px}
.copy{font-size:12px;color:var(--ink3);margin:14px 0 0}
