@charset "utf-8";
/* おっパブ.com — おっパブ／セクキャバランキング
   写真素材を持たないので、階調・余白・タイポグラフィ・図形で見せる。
   入力欄は16px以上（iOSが拡大するため）／タップ領域は44px以上 */

:root{
  --bg:#0a0e14;
  --bg2:#111823;
  --bg3:#18212e;
  --bg4:#1f2a39;
  --line:#22303f;
  --line2:#32465b;
  --fg:#eef4fa;
  --fg2:#c3d0dd;
  --muted:#8699ac;
  --accent:#ffb02e;
  --accent2:#ffc966;
  --accent-dim:#6d4a08;
  --teal:#4fd1c5;
  --rose:#ff6b8a;
  --ok:#48c78e;
  --wrap:70rem;
  --r:14px;
  --r2:22px;
  --shadow:0 24px 60px rgba(0,0,0,.55);
  --glow:0 0 0 1px rgba(255,176,46,.25), 0 12px 40px rgba(255,176,46,.10);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--fg);line-height:1.85;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;
  font-size:16px;letter-spacing:.01em;
  background-image:
    radial-gradient(120% 70% at 88% -12%, rgba(255,176,46,.16), transparent 62%),
    radial-gradient(90% 55% at -6% 4%, rgba(79,209,197,.10), transparent 58%),
    radial-gradient(70% 40% at 50% 100%, rgba(255,107,138,.06), transparent 60%);
  background-attachment:fixed;background-repeat:no-repeat;
}
a{color:var(--accent2);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--accent)}
img{max-width:100%;height:auto;display:block}
strong{color:#fff;font-weight:700}
small{color:var(--muted)}

/* 18禁バー */
.r18-bar{
  margin:0;background:#05080c;color:#7d8fa1;text-align:center;
  font-size:.75rem;padding:.45rem .75rem;letter-spacing:.12em;
  border-bottom:1px solid var(--line);
}

/* ヘッダー */
.site-header{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.7rem clamp(1rem,4vw,2rem);
  background:rgba(10,14,20,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:baseline;gap:.6rem;text-decoration:none;color:var(--fg)}
.brand strong{font-size:1.15rem;letter-spacing:.02em;color:#fff}
.brand span{font-size:.7rem;color:var(--accent2);letter-spacing:.18em}
.global-nav{display:flex;gap:.15rem;flex-wrap:wrap}
.global-nav a{
  position:relative;color:var(--fg2);text-decoration:none;font-size:.8125rem;
  padding:.5rem .7rem;border-radius:999px;min-height:44px;display:inline-flex;align-items:center;
}
.global-nav a:hover{color:#fff;background:var(--bg3)}
.global-nav a[aria-current="page"]{color:#0a0e14;background:linear-gradient(135deg,var(--accent2),var(--accent));font-weight:700}

/* パンくず */
.crumb{max-width:var(--wrap);margin:1rem auto -.4rem;padding:0 clamp(1rem,4vw,2rem);font-size:.75rem;color:var(--muted)}
.crumb a{color:var(--muted);text-decoration:none}
.crumb a:hover{color:var(--accent2)}
.crumb a::after,.crumb span::before{content:"›";margin:0 .45rem;color:var(--line2)}
.crumb span::before{content:"›"}
.crumb a::after{content:""}
.crumb > *+*::before{content:"›";margin:0 .45rem;color:var(--line2)}

/* ★採点フォームは <main> の外の <aside> に出してある（重複計算から外すため）。
   幅と余白は main と同じ扱いにしないと、幅0で潰れる。 */
main{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1rem,4vw,2rem) 4rem}
main{padding-bottom:1rem}
.vote-aside{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1rem,4vw,2rem) 3rem}

/* ヒーロー */
.hero{
  position:relative;margin:1.5rem 0 2.5rem;padding:clamp(1.6rem,5vw,3.2rem);
  border-radius:var(--r2);overflow:hidden;
  background:
    radial-gradient(90% 120% at 100% 0%, rgba(255,176,46,.20), transparent 60%),
    radial-gradient(70% 100% at 0% 100%, rgba(79,209,197,.14), transparent 62%),
    linear-gradient(160deg,var(--bg3),var(--bg2) 60%,var(--bg));
  border:1px solid var(--line2);box-shadow:var(--shadow);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(90% 80% at 80% 10%,#000,transparent 72%);
}
.hero-sub{position:relative;z-index:1}
.eyebrow{
  display:inline-block;margin:0 0 .8rem;font-size:.68rem;color:var(--accent2);
  letter-spacing:.24em;border:1px solid var(--accent-dim);border-radius:999px;padding:.28rem .85rem;
  background:rgba(255,176,46,.07);
}
.hero h1{
  margin:0 0 .7rem;font-size:clamp(1.65rem,5.4vw,3rem);line-height:1.22;letter-spacing:-.01em;
  background:linear-gradient(180deg,#fff,#c9d7e5);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.lead{margin:0;font-size:clamp(.95rem,2.4vw,1.075rem);color:var(--fg2);max-width:46em}
.badges{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin:1.3rem 0 0;padding:0}
.badges li{
  font-size:.75rem;color:var(--fg2);background:rgba(255,255,255,.05);
  border:1px solid var(--line2);border-radius:999px;padding:.32rem .8rem;
}
.badges li.gold{color:#0a0e14;background:linear-gradient(135deg,var(--accent2),var(--accent));border-color:transparent;font-weight:700}

/* 統計タイル */
.stats{list-style:none;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));margin:1.6rem 0 0;padding:0;position:relative;z-index:1}
.stats li{background:rgba(255,255,255,.04);border:1px solid var(--line2);border-radius:var(--r);padding:.85rem 1rem}
.stats b{display:block;font-size:clamp(1.35rem,4vw,1.9rem);line-height:1.2;color:#fff;font-weight:800;letter-spacing:-.02em}
.stats b i{font-style:normal;font-size:.68em;color:var(--accent2);margin-left:.15em}
.stats span{display:block;font-size:.7rem;color:var(--muted);letter-spacing:.06em;margin-top:.2rem}

/* セクション */
.block{margin:0 0 2.6rem}
.block > h2{
  display:flex;align-items:center;gap:.7rem;margin:0 0 1rem;
  font-size:clamp(1.15rem,3.2vw,1.45rem);letter-spacing:-.01em;
}
.block > h2::before{
  content:"";width:.3rem;height:1.15em;border-radius:99px;flex:none;
  background:linear-gradient(180deg,var(--accent2),var(--accent-dim));
}
.block h3{font-size:1.05rem;margin:1.6rem 0 .6rem}
p{margin:0 0 1rem}

/* ── ランキング ─────────────────────────────────────────── */
.rank{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.55rem}
.rank li{
  display:grid;grid-template-columns:2.5rem 3rem 1fr auto;align-items:center;gap:.75rem;
  background:linear-gradient(180deg,var(--bg2),var(--bg3));
  border:1px solid var(--line);border-radius:var(--r);padding:.8rem .9rem;min-height:64px;
  transition:border-color .16s, transform .16s;
}
.rank li:hover{border-color:var(--line2);transform:translateY(-1px)}
.rank .rk{
  display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:12px;flex:none;
  background:var(--bg);border:1px solid var(--line2);font-weight:800;font-size:.95rem;color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.rank li:nth-child(1){border-color:rgba(255,176,46,.42);box-shadow:var(--glow)}
.rank li:nth-child(1) .rk{background:linear-gradient(160deg,#ffe08a,#e0a020);border-color:#b07c14;color:#241703}
.rank li:nth-child(2) .rk{background:linear-gradient(160deg,#e6ecf3,#a8b6c4);border-color:#7d8a97;color:#1b2129}
.rank li:nth-child(3) .rk{background:linear-gradient(160deg,#e9b98a,#b4794a);border-color:#8a5a32;color:#241503}
.rank.overall li:nth-child(n+4) .rk{background:var(--bg);border-color:var(--line2);color:var(--muted)}
.rank .ri{width:3rem;height:3rem;border-radius:11px;display:block}
.rank .rn{min-width:0}
.rank .rn a{color:#fff;text-decoration:none;font-weight:700;word-break:break-word;line-height:1.35;display:block}
.rank .rn a:hover{color:var(--accent2)}
.rank .rn em{display:block;font-style:normal;font-size:.7rem;color:var(--accent2);letter-spacing:.08em;margin-top:.1rem}
.rank .rp{
  text-align:right;font-weight:800;font-size:1.35rem;color:#fff;line-height:1;
  font-variant-numeric:tabular-nums;min-width:3.4rem;
}
.rank .rv{display:block;font-size:.62rem;color:var(--muted);font-weight:400;letter-spacing:.1em;margin-top:.2rem}
/* 点数バー */
.rank .bar{grid-column:3 / -1;height:4px;border-radius:99px;background:var(--bg);overflow:hidden;margin-top:.15rem}
.rank .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent-dim),var(--accent2))}

/* 表彰台（街ページの上位3） */
.podium{list-style:none;display:grid;gap:.8rem;grid-template-columns:1fr;margin:0 0 1.6rem;padding:0}
@media (min-width:44rem){.podium{grid-template-columns:repeat(3,1fr);align-items:end}}
.podium li{
  position:relative;text-align:center;border-radius:var(--r2);padding:1.4rem 1rem 1.2rem;
  background:linear-gradient(180deg,var(--bg3),var(--bg2));border:1px solid var(--line);
}
.podium li:nth-child(1){border-color:rgba(255,176,46,.45);box-shadow:var(--glow)}
@media (min-width:44rem){
  .podium li:nth-child(1){order:2;padding-top:2.2rem;padding-bottom:1.8rem}
  .podium li:nth-child(2){order:1}
  .podium li:nth-child(3){order:3}
}
.podium img{width:4.2rem;height:4.2rem;border-radius:15px;margin:0 auto .7rem}
.podium li:nth-child(1) img{width:5.2rem;height:5.2rem}
.podium .pm{
  display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;
  font-size:.8rem;font-weight:800;margin-bottom:.6rem;background:var(--bg);border:1px solid var(--line2);color:var(--muted);
}
.podium li:nth-child(1) .pm{background:linear-gradient(160deg,#ffe08a,#e0a020);color:#241703;border-color:#b07c14}
.podium li:nth-child(2) .pm{background:linear-gradient(160deg,#e6ecf3,#a8b6c4);color:#1b2129;border-color:#7d8a97}
.podium li:nth-child(3) .pm{background:linear-gradient(160deg,#e9b98a,#b4794a);color:#241503;border-color:#8a5a32}
.podium a{color:#fff;text-decoration:none;font-weight:700;display:block;line-height:1.35}
.podium a:hover{color:var(--accent2)}
.podium .ps{display:block;margin-top:.5rem;font-size:1.8rem;font-weight:800;color:var(--accent2);line-height:1;font-variant-numeric:tabular-nums}
.podium .ps span{font-size:.6rem;color:var(--muted);font-weight:400;letter-spacing:.1em;margin-left:.2em}
.podium .pn{display:block;margin-top:.5rem;font-size:.72rem;color:var(--muted);line-height:1.6}

/* 採点バー（店ページ） */
.crit{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.crit li{display:grid;grid-template-columns:1fr auto;gap:.3rem .8rem;align-items:baseline}
.crit .cl{font-size:.9rem;color:var(--fg)}
.crit .cv{font-weight:800;font-variant-numeric:tabular-nums;color:#fff;font-size:.95rem}
.crit .cv small{color:var(--muted);font-weight:400;font-size:.7rem}
.crit .bar{grid-column:1 / -1;height:8px;border-radius:99px;background:var(--bg);overflow:hidden;border:1px solid var(--line)}
.crit .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent-dim),var(--accent2))}
.crit .bar.full i{background:linear-gradient(90deg,#2f7a5c,var(--ok))}
.crit .bar.zero i{background:var(--line2)}
.crit .cd{grid-column:1 / -1;font-size:.78rem;color:var(--muted);line-height:1.7}

/* 大きな点数（店ページの頭） */
.shop-head{display:grid;grid-template-columns:4.5rem 1fr;gap:1rem;align-items:start}
.shop-logo{width:4.5rem;height:4.5rem;border-radius:15px}
@media (min-width:48rem){.shop-head{grid-template-columns:6.5rem 1fr;gap:1.4rem}.shop-logo{width:6.5rem;height:6.5rem;border-radius:20px}}
.shop-head h2{margin-top:0}
.bigscore{
  display:flex;align-items:baseline;gap:.5rem;margin:0 0 .8rem;
  font-size:clamp(2.4rem,9vw,3.6rem);font-weight:800;line-height:1;color:#fff;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.bigscore em{font-style:normal;font-size:.32em;color:var(--muted);font-weight:400;letter-spacing:.06em}
.bigscore .rkp{font-size:.28em;color:var(--accent2);font-weight:700;letter-spacing:.04em}

/* ── カード・一覧 ─────────────────────────────────────── */
.area-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.area-list a{
  display:block;height:100%;text-decoration:none;color:var(--fg);
  background:linear-gradient(180deg,var(--bg2),var(--bg3));
  border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;
  transition:border-color .16s,transform .16s;
}
.area-list a:hover{border-color:var(--accent-dim);transform:translateY(-2px)}
.area-list strong{display:block;color:#fff;font-size:1rem;margin-bottom:.2rem}
.area-list span{display:block;font-size:.78rem;color:var(--muted);line-height:1.65}

.check-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.check-list li{
  position:relative;padding:.75rem .95rem .75rem 2.3rem;
  background:var(--bg2);border:1px solid var(--line);border-radius:12px;font-size:.9rem;line-height:1.75;
}
.check-list li::before{
  content:"";position:absolute;left:.95rem;top:1.15rem;width:.5rem;height:.5rem;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 3px rgba(255,176,46,.14);
}

/* キャスト（掲載イメージ） */
.cast-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}
.cast-list li{position:relative;background:linear-gradient(180deg,var(--bg2),var(--bg3));border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cast-list img{width:100%;height:auto;display:block;opacity:.9}
.cast-list .rk{
  position:absolute;left:.6rem;top:.6rem;width:2rem;height:2rem;display:grid;place-items:center;
  border-radius:50%;background:rgba(10,14,20,.85);border:1px solid var(--line2);font-weight:800;font-size:.85rem;
}
.cast-list .cn{display:block;padding:.75rem .85rem 1rem;font-size:.78rem;color:var(--muted);line-height:1.7}
.cast-list .cn strong{display:block;font-size:1rem;color:#fff}
.cast-list .cn em{display:block;font-style:normal;font-size:.7rem;color:var(--rose);margin:.15rem 0 .4rem;letter-spacing:.04em}

/* 表 */
table{width:100%;border-collapse:collapse;font-size:.875rem;margin:0 0 1rem;
  background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
thead th{
  background:var(--bg4);color:var(--fg);font-size:.75rem;letter-spacing:.08em;text-align:left;
  padding:.7rem .9rem;border-bottom:1px solid var(--line2);
}
tbody th{
  text-align:left;font-weight:600;color:var(--fg2);vertical-align:top;white-space:nowrap;
  padding:.7rem .9rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.018);font-size:.82rem;
}
td{padding:.7rem .9rem;border-bottom:1px solid var(--line);vertical-align:top;color:var(--fg2);line-height:1.75}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
.price td:nth-child(2){white-space:nowrap;font-variant-numeric:tabular-nums;color:#fff;font-weight:700}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Q&A */
.faq-list{margin:0;padding:0;display:grid;gap:.7rem}
.faq-list dt{
  font-weight:700;color:#fff;background:var(--bg3);border:1px solid var(--line);
  border-radius:12px 12px 0 0;padding:.8rem 1rem;font-size:.92rem;margin:0;
}
.faq-list dd{
  margin:-1px 0 0;padding:.9rem 1rem 1rem;font-size:.875rem;color:var(--fg2);line-height:1.85;
  background:var(--bg2);border:1px solid var(--line);border-radius:0 0 12px 12px;
}

/* ボタン */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:48px;
  padding:0 1.4rem;border-radius:999px;text-decoration:none;font-weight:700;font-size:.9rem;
  background:linear-gradient(135deg,var(--accent2),var(--accent));color:#14100a;border:0;
  box-shadow:0 8px 24px rgba(255,176,46,.20);transition:transform .14s,box-shadow .14s;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(255,176,46,.28);color:#14100a}
.btn.ghost{background:transparent;color:var(--accent2);border:1px solid var(--line2);box-shadow:none}
.btn.ghost:hover{border-color:var(--accent-dim);background:rgba(255,176,46,.06);color:var(--accent)}

/* 締めの帯 */
.cta-band{
  margin:3rem 0 0;padding:clamp(1.4rem,4vw,2.4rem);border-radius:var(--r2);text-align:center;
  background:
    radial-gradient(80% 140% at 50% 0%, rgba(255,176,46,.16), transparent 65%),
    linear-gradient(180deg,var(--bg3),var(--bg2));
  border:1px solid var(--line2);
}
.cta-band h2{margin:0 0 .5rem;font-size:1.2rem}
.cta-band p{color:var(--fg2);margin:0 0 1.2rem;font-size:.9rem}

/* フッター */
.site-footer{border-top:1px solid var(--line);background:#070a0f;padding:2.4rem clamp(1rem,4vw,2rem) 3rem;margin-top:2rem}
.foot-nav{max-width:var(--wrap);margin:0 auto 1.2rem;display:flex;flex-wrap:wrap;gap:.2rem;justify-content:center}
.foot-nav a{color:var(--fg2);text-decoration:none;font-size:.8125rem;padding:.5rem .8rem;min-height:44px;display:inline-flex;align-items:center;border-radius:999px}
.foot-nav a:hover{color:var(--accent2);background:var(--bg2)}
.foot-mail,.foot-r18,.foot-copy{max-width:var(--wrap);margin:0 auto;text-align:center}
.foot-mail{font-size:.85rem;color:var(--fg2);margin-bottom:.7rem}
.mail-obf{color:var(--accent2);font-weight:700;letter-spacing:.02em}
.foot-r18{font-size:.72rem;color:var(--muted);line-height:1.8;max-width:44rem;margin-bottom:1rem}
.foot-copy{font-size:.72rem;color:var(--line2);letter-spacing:.12em}

@media (max-width:34rem){
  .rank li{grid-template-columns:2.1rem 2.4rem 1fr auto;gap:.55rem;padding:.7rem}
  .rank .ri{width:2.4rem;height:2.4rem}
  .rank .rp{font-size:1.15rem;min-width:2.8rem}
  .global-nav a{padding:.5rem .55rem;font-size:.75rem;min-height:44px}
}

/* ── 店のロゴ（各店の公式サイトのもの）───────────────────── */
.rank li{grid-template-columns:2.4rem 6.2rem 1fr auto}
.rank .ri{
  width:6.2rem;height:3.7rem;border-radius:10px;display:block;object-fit:contain;
  background:#fff;padding:4px;border:1px solid var(--line2);
}
.rank .ri:not(.real){background:transparent;padding:0;border:0;width:3.4rem;height:3.4rem;border-radius:11px;object-fit:cover}
.podium .pl{
  width:100%;max-width:11rem;height:6.4rem;object-fit:contain;border-radius:12px;margin:0 auto .8rem;
  background:#fff;padding:6px;border:1px solid var(--line2);
}
.podium li:nth-child(1) .pl{height:7.4rem;max-width:12.5rem}
.shop-logo{object-fit:contain;background:#fff;padding:6px;border:1px solid var(--line2)}
.shop-logo.badge{background:transparent;padding:0;border:0}
@media (max-width:34rem){
  .rank li{grid-template-columns:2rem 4.6rem 1fr auto;gap:.5rem}
  .rank .ri{width:4.6rem;height:2.8rem}
  .rank .ri:not(.real){width:2.6rem;height:2.6rem}
}

/* ── 期間・指標の切り替え（アクセス数ランキング）──────────── */
.tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .8rem}
.tabs a{
  display:inline-flex;align-items:center;min-height:42px;padding:0 1rem;border-radius:999px;
  text-decoration:none;font-size:.85rem;color:var(--fg2);background:var(--bg2);border:1px solid var(--line);
}
.tabs a:hover{border-color:var(--line2);color:#fff}
.tabs a[aria-current="true"]{background:linear-gradient(135deg,var(--accent2),var(--accent));color:#14100a;font-weight:700;border-color:transparent}
.tabs.metric a[aria-current="true"]{background:linear-gradient(135deg,var(--teal),#2f9d94);color:#06231f}
.rank .rn em{white-space:normal}

/* ── 利用者の採点・口コミ ─────────────────────────────── */
.vote{display:grid;gap:.9rem;background:linear-gradient(180deg,var(--bg2),var(--bg3));border:1px solid var(--line);border-radius:var(--r2);padding:1.2rem}
.vote .now{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin:0}
.vote .now b{font-size:2rem;font-weight:800;color:var(--accent2);line-height:1;font-variant-numeric:tabular-nums}
.vote .now span{font-size:.78rem;color:var(--muted)}
.stars{display:inline-flex;gap:.1rem;color:var(--accent);font-size:1.1rem;letter-spacing:.06em}
.stars i{font-style:normal;opacity:.28}
.stars i.on{opacity:1}
.vform{display:grid;gap:.7rem}
.vform label{font-size:.82rem;color:var(--fg2);display:grid;gap:.3rem}
.vform select,.vform textarea,.vform input[type="text"]{
  font-size:16px;font-family:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line2);
  border-radius:10px;padding:.65rem .8rem;min-height:48px;width:100%;
}
.vform textarea{min-height:7rem;line-height:1.8;resize:vertical}
.vform .hp{position:absolute;left:-9999px}
.vote-ok{background:#0d2a1e;border:1px solid #2a6b48;border-radius:12px;padding:.9rem 1rem;margin:0 0 1rem}
.vote-ng{background:#2d1119;border:1px solid #6d2b3c;border-radius:12px;padding:.9rem 1rem;margin:0 0 1rem}
.reviews{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.reviews li{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem}
.reviews .rh{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}
.reviews .rd{font-size:.72rem;color:var(--muted)}
.reviews p{margin:0;font-size:.88rem;line-height:1.85;color:var(--fg2)}

/* ── 嬢ランキングの掲載イメージ（登録募集中）───────────────── */
.podium.cast li{border-style:dashed;border-color:var(--line2)}
.podium.cast .cast-img{background:transparent;border:0;padding:0;height:auto;max-width:9rem;opacity:.9}
.podium.cast li:nth-child(1) .cast-img{max-width:10.5rem}
.podium.cast .wanted{
  display:inline-block;margin:0 0 .5rem;font-size:.7rem;font-weight:700;letter-spacing:.1em;
  color:#14100a;background:linear-gradient(135deg,var(--accent2),var(--accent));
  border-radius:999px;padding:.25rem .8rem;
}
.podium.cast a{color:var(--muted);font-weight:700}
.podium.cast a:hover{color:var(--accent2)}
.podium.cast .pn strong{color:var(--rose)}

/* ── 確認した店の全一覧 ─────────────────────────────── */
.reg{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
.reg li{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:.55rem .8rem;font-size:.85rem;min-height:44px;
}
.reg .rn2{min-width:0;word-break:break-word}
.reg .rn2 a{color:#fff;text-decoration:none;font-weight:700}
.reg .rn2 a:hover{color:var(--accent2)}
.reg .rs{flex:none;font-size:.68rem;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:.15rem .55rem}
.reg .rs.ok{color:#14100a;background:linear-gradient(135deg,var(--accent2),var(--accent));border-color:transparent;font-weight:700}
.block > h2 .cnt{font-size:.72rem;color:var(--muted);font-weight:400;letter-spacing:.06em;margin-left:.2rem}

/* ── お問い合わせフォーム ───────────────────────────────
   ★スマホで16px未満だと入力時に拡大される。タップ領域は48px以上。 */
.f{display:grid;gap:.7rem;max-width:44rem}
.f label{font-size:.82rem;color:var(--fg2)}
.f select,.f textarea,.f input[type="text"],.f input[type="email"]{
  font-size:16px;font-family:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line2);
  border-radius:10px;padding:.65rem .8rem;min-height:48px;width:100%;
}
.f textarea{min-height:9rem;line-height:1.8;resize:vertical}
.f .hp{position:absolute;left:-9999px}
.f .note{font-size:.78rem;color:var(--muted);margin:.2rem 0 0}
.f button{justify-self:start;min-height:48px}
.flash{border-radius:12px;padding:.9rem 1rem;margin:0 0 1.2rem;line-height:1.8}
.flash.ok{background:#0d2a1e;border:1px solid #2a6b48}
.flash.ng{background:#2d1119;border:1px solid #6d2b3c}

/* ── 札はどこを押しても店ページへ（JSで移動。文字の選択は残す）───────── */
.go{cursor:pointer}
.go:hover{border-color:var(--accent-dim)}
.rank li.go:hover{transform:translateY(-1px)}
/* ★キーボードの人には中のリンクが入口。札そのものはフォーカスを取らない */
.go a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
