/*
 Theme Name: 楽器買取マップ Cocoon Child
 Template: cocoon-master
 Description: 全国楽器店ディレクトリサイト用 Cocoon子テーマ
 Version: 3.1.0 — モダン音楽スタジオ（ダークネイビー×アンバー）
*/
:root {
  --site-primary: #D4920A;
  --site-primary-light: #E8A832;
  --site-primary-glow: #F5C841;
  --site-primary-bg: #FEF8E8;
  --site-dark: #0B1426;
  --site-navy: #121D33;
  --site-navy-light: #1A2942;
  --site-navy-mid: #243552;
  --site-body: #2D3142;
  --site-mid: #5C6478;
  --site-slate: #8B95A8;
  --site-light: #F7F5F0;
  --site-cream: #F0ECE3;
  --site-border: #D6D2C9;
  --site-copper: #B87333;
  --site-premium: #D4920A;
}
body { font-family:'Noto Sans JP','Hiragino Sans',sans-serif; color:var(--site-body); background:var(--site-light); line-height:1.7; }
.site-container { max-width:1080px; margin:0 auto; padding:0 24px; }

/* ═══ Cocoon: サイドバー非表示 & 1カラム強制 ═══ */
#sidebar, .sidebar, .sidebar-menu-content,
#sidebar-in, .sidebar-in { display:none !important; width:0 !important; }
#main, .main { width:100% !important; max-width:100% !important; margin:0 !important; float:none !important; }
#content-in, .content-in { display:block !important; flex-wrap:nowrap !important; }
.no-sidebar #main { width:100% !important; }
#content { background:var(--site-light); max-width:1080px; margin:0 auto; padding:0; }
/* Cocoon wrapper の余計なborder/padding を除去 */
.wrap { max-width:100%; padding:0; }
#content-in { column-gap:0 !important; }
.content { margin:0; padding:0; border:none; }

/* ═══ Cocoon: その他上書き ═══ */
.header,.header-container,#header { background:var(--site-dark)!important; }
.header .site-name-text,.header a,
.header .tagline, .header .site-description,
#header .site-name-text { color:#fff !important; }
.header .tagline, .site-description { color:var(--site-slate) !important; }
.entry-content { margin:0; padding:0; }
.article { background:transparent; box-shadow:none; border:none; padding:0; margin:0; }
.breadcrumb { display:none; }
.sns-share,.sns-follow,.under-entry-content,.pager-post-navi,.post-date,.post-update,.eye-catch { display:none; }
.footer-bottom { background:var(--site-dark); }
.copyright { color:var(--site-slate); }
a { color:var(--site-primary); }

/* ═══ Cocoon: 目次(TOC)スタイリング ═══ */
/* Cocoon標準目次 */
.toc {
  background:var(--site-navy) !important;
  border:none !important;
  border-radius:12px !important;
  padding:24px 28px !important;
  margin-bottom:24px !important;
}
.toc-title {
  font-size:16px !important;
  font-weight:700 !important;
  color:#fff !important;
  margin-bottom:16px !important;
  padding-bottom:12px !important;
  border-bottom:1px solid var(--site-navy-mid) !important;
}
.toc .toc-content {
  background:transparent !important;
  border:none !important;
  padding:0 !important;
}
.toc-list {
  list-style:none !important;
  padding-left:0 !important;
  margin:0 !important;
}
.toc-list li {
  margin:0 !important;
  padding:0 !important;
}
.toc a {
  display:block !important;
  padding:8px 12px !important;
  color:var(--site-slate) !important;
  text-decoration:none !important;
  font-size:14px !important;
  font-weight:500 !important;
  border-radius:6px !important;
  transition:all .2s !important;
}
.toc a:hover {
  background:var(--site-navy-light) !important;
  color:var(--site-primary-glow) !important;
}
.toc-list > li > a {
  font-weight:700 !important;
  color:#fff !important;
  font-size:15px !important;
}
.toc-list > li li a {
  font-size:13px !important;
  padding:6px 12px 6px 24px !important;
  color:var(--site-slate) !important;
}
.toc-list > li li a:hover {
  color:var(--site-primary-glow) !important;
}

/* カスタム目次（page-city.php） */
.toc-box {
  background:var(--site-navy);
  border-radius:12px;
  padding:24px 28px;
  margin-bottom:24px;
}
.toc-box__title {
  font-size:16px;
  font-weight:700;
  color:#fff;
  margin:0 0 16px;
  padding-bottom:12px;
  border-bottom:1px solid var(--site-navy-mid);
}
.toc-box__section {
  font-size:14px;
  font-weight:700;
  color:var(--site-primary-light);
  margin:14px 0 6px;
  padding:0;
}
.toc-box__section--general {
  color:var(--site-slate);
}
.toc-box__item {
  margin:0;
  padding:0;
}
.toc-box__item a {
  display:block;
  padding:7px 12px;
  color:var(--site-slate);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  border-radius:6px;
  transition:all .2s;
}
.toc-box__item a:hover {
  background:var(--site-navy-light);
  color:var(--site-primary-glow);
  text-decoration:none;
}

/* ═══ Outfit フォント ═══ */
.site-hero__stat-number,.shop-card__number,.pref-card__count,.region-label,.featured-card__count { font-family:'Outfit','Noto Sans JP',sans-serif; }

/* ═══ Shop Card ═══ */
.shop-card { background:#fff; border-radius:12px; border:1px solid var(--site-border); overflow:hidden; margin-bottom:16px; transition:box-shadow .2s; }
.shop-card:hover { box-shadow:0 4px 20px rgba(0,0,0,.06); }
.shop-card--premium { border:2px solid var(--site-primary); box-shadow:0 2px 16px rgba(212,146,10,.1); }
.shop-card--premium:hover { box-shadow:0 8px 25px rgba(212,146,10,.18); }
.shop-card__header { padding:16px 20px 12px; border-bottom:1px solid var(--site-border); background:#FAFAF8; }
.shop-card__header--specialty { background:linear-gradient(135deg,var(--site-dark),var(--site-navy-light)); border-bottom-color:var(--site-navy-mid); }
.shop-card__header--specialty .shop-card__name,.shop-card__header--specialty .shop-card__name a { color:#fff; }
.shop-card--premium .shop-card__header { background:linear-gradient(135deg,var(--site-dark),var(--site-navy-light)); border-bottom-color:var(--site-navy-mid); }
.shop-card__header-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.shop-card__header-left { flex:1; }
.shop-card__title-row { display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap; }
.shop-card__number { background:var(--site-primary-bg); color:var(--site-primary); width:28px; height:28px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; flex-shrink:0; }
.shop-card__header--specialty .shop-card__number { background:rgba(212,146,10,.2); color:var(--site-primary-glow); }
.shop-card__name { font-size:17px; font-weight:700; color:var(--site-navy); margin:0; line-height:1.3; }
.shop-card__name a { color:inherit; text-decoration:none; transition:color .2s; }
.shop-card__name a:hover { color:var(--site-primary); text-decoration:underline; }
.shop-card__badges { display:flex; flex-wrap:wrap; gap:6px; margin-left:38px; }
.shop-card__features { display:flex; gap:6px; flex-shrink:0; flex-wrap:wrap; justify-content:flex-end; margin-top:8px; }
.shop-card__body { padding:16px 20px 4px; }
.shop-card__info-grid { display:grid; grid-template-columns:1fr; gap:6px; font-size:13px; margin-bottom:12px; color:var(--site-mid); }
.shop-card__info-grid span { font-weight:600; margin-right:6px; }
.shop-card__description { margin-top:12px; margin-bottom:14px; font-size:14px; line-height:1.85; color:var(--site-body); }
.shop-card__genres { display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }

/* ═══ Badges ═══ */
.genre-badge,.genre-tag { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:4px; font-size:11px; font-weight:600; background:rgba(212,146,10,.08); color:var(--site-primary); border:none; }
.shop-card__header--specialty .genre-badge,.shop-card__header--specialty .genre-tag { background:rgba(212,146,10,.15); color:var(--site-primary-glow); }
.shop-category { font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; display:inline-block; }
.shop-category--specialty { background:var(--site-primary); color:var(--site-dark); }
.shop-category--general { background:var(--site-cream); color:var(--site-mid); border:1px solid var(--site-border); }
.feature-badge { font-size:11px; font-weight:600; padding:3px 10px; border-radius:20px; }
.feature-badge--kaitori { background:#E8F5E9; color:#2D7A3E; }
.feature-badge--event { background:#FFF3E0; color:var(--site-copper); }
.feature-badge--used { background:#E3F2FD; color:#1565C0; }
.feature-badge--repair { background:#FCE4EC; color:#C62828; }
.feature-badge--lesson { background:#F3E5F5; color:#7B1FA2; }
.premium-badge { font-size:11px; font-weight:700; color:var(--site-primary-glow); background:rgba(212,146,10,.15); padding:3px 10px; border-radius:20px; }

/* ═══ PR Block & Gallery ═══ */
.shop-pr-block { background:var(--site-primary-bg); border:1px solid rgba(212,146,10,.2); border-radius:10px; padding:14px 18px; margin-bottom:14px; line-height:1.8; }
.shop-pr-block__label { font-size:12px; font-weight:700; color:var(--site-primary); margin-bottom:4px; }
.shop-photo-gallery { display:flex; gap:8px; overflow-x:auto; margin-bottom:14px; padding-bottom:6px; }
.shop-photo-gallery img { height:110px; width:auto; border-radius:8px; object-fit:cover; flex-shrink:0; }

/* ═══ Map Toggle ═══ */
.shop-map-toggle { display:block; width:100%; padding:10px; background:var(--site-cream); border:1px solid var(--site-border); border-radius:8px; font-size:13px; font-weight:600; color:var(--site-mid); cursor:pointer; margin-top:12px; font-family:'Noto Sans JP',sans-serif; transition:background .2s; }
.shop-map-toggle:hover { background:var(--site-primary-bg); color:var(--site-primary); }
.shop-map-container { display:none; margin-top:8px; border-radius:8px; overflow:hidden; }
.shop-map-container.is-open { display:block; }
.shop-map-container iframe { display:block; width:100%; height:200px; border:0; }

/* ═══ External Links ═══ */
.external-links { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.external-link { display:inline-flex; align-items:center; gap:4px; padding:6px 14px; border-radius:8px; font-size:12px; font-weight:600; text-decoration:none; transition:transform .15s,box-shadow .15s; }
.external-link:hover { transform:translateY(-1px); box-shadow:0 2px 8px rgba(0,0,0,.08); }
.external-link--web { background:var(--site-navy); color:#fff; }
.external-link--x { background:#0F1419; color:#fff; }
.external-link--instagram { background:linear-gradient(135deg,#833AB4,#E1306C); color:#fff; }
.external-link--maps { background:#DCFCE7; color:#166534; }

/* ═══ Detail Link ═══ */
.shop-card__detail-link { display:block; text-align:center; padding:12px 16px; margin:16px 20px 20px; background:var(--site-navy); color:#fff; font-size:14px; font-weight:700; border-radius:8px; text-decoration:none; transition:all .2s; position:relative; overflow:hidden; }
.shop-card__detail-link::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--site-primary); transform:scaleX(0); transition:transform .3s; }
.shop-card__detail-link:hover { background:var(--site-navy-light); color:#fff; text-decoration:none; }
.shop-card__detail-link:hover::after { transform:scaleX(1); }
.shop-card--premium .shop-card__detail-link { background:linear-gradient(135deg,var(--site-primary),var(--site-copper)); }
.shop-card--premium .shop-card__detail-link:hover { background:linear-gradient(135deg,var(--site-primary-light),var(--site-primary)); }

/* ═══ Genre Filter ═══ */
.genre-filter-bar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; padding:16px; background:#fff; border-radius:10px; border:1px solid var(--site-border); }
.genre-filter-btn { padding:6px 14px; border-radius:20px; border:1px solid var(--site-border); background:#fff; color:var(--site-mid); font-size:12px; font-weight:600; cursor:pointer; transition:all .2s; font-family:'Noto Sans JP',sans-serif; }
.genre-filter-btn:hover { border-color:var(--site-primary); color:var(--site-primary); }
.genre-filter-btn.is-active { background:var(--site-primary); border-color:var(--site-primary); color:var(--site-dark); font-weight:700; }

/* ═══ Hero ═══ */
.site-hero { background:linear-gradient(160deg,var(--site-dark) 0%,var(--site-navy) 40%,var(--site-navy-light) 100%); padding:48px 24px 40px; text-align:center; position:relative; overflow:hidden; }
.site-hero::before { content:''; position:absolute; top:-200px; right:-200px; width:600px; height:600px; background:radial-gradient(circle,rgba(212,146,10,.08) 0%,transparent 70%); pointer-events:none; }
.site-hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--site-primary),var(--site-primary-glow),var(--site-primary)); }
.site-hero__icon { font-size:48px; display:block; margin-bottom:12px; animation:hero-float 3s ease-in-out infinite; }
@keyframes hero-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.site-hero__title { font-size:36px; font-weight:800; color:#fff; letter-spacing:-.5px; margin-bottom:10px; }
.site-hero__title .accent { background:linear-gradient(135deg,var(--site-primary),var(--site-primary-glow)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.site-hero__subtitle { font-size:15px; color:var(--site-slate); line-height:1.8; }
.site-hero__stats { display:flex; justify-content:center; gap:40px; margin-top:24px; }
.site-hero__stat-number { font-size:32px; font-weight:800; color:var(--site-primary-glow); display:block; }
.site-hero__stat-label { font-size:12px; color:var(--site-slate); font-weight:500; }

/* ═══ Section Title ═══ */
.site-section { padding:32px 0; }
.site-section__title { font-size:20px; font-weight:800; color:var(--site-navy); margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.site-section__title::after { content:''; flex:1; height:2px; background:linear-gradient(90deg,var(--site-primary),transparent); }

/* ═══ Prefecture Grid ═══ */
.region-block { margin-bottom:28px; }
.region-label { font-size:13px; font-weight:700; color:var(--site-primary); text-transform:uppercase; letter-spacing:2px; margin-bottom:10px; }
.pref-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; }
.pref-card { display:flex; justify-content:space-between; align-items:center; background:#fff; border:1px solid var(--site-border); border-radius:8px; padding:12px 14px; text-decoration:none; color:var(--site-body); font-size:14px; font-weight:600; transition:all .2s; }
.pref-card:hover { border-color:var(--site-primary); background:var(--site-primary-bg); transform:translateY(-2px); box-shadow:0 4px 12px rgba(212,146,10,.12); color:var(--site-body); text-decoration:none; }
.pref-card__count { font-size:12px; color:var(--site-primary); font-weight:700; }

/* ═══ Featured Areas ═══ */
.featured-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.featured-card { background:var(--site-navy); border-radius:10px; padding:20px; text-decoration:none; color:#fff; transition:all .2s; position:relative; overflow:hidden; }
.featured-card::before { content:''; position:absolute; top:0; right:0; width:60px; height:60px; background:radial-gradient(circle at top right,rgba(212,146,10,.15),transparent); }
.featured-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(11,20,38,.3); color:#fff; text-decoration:none; }
.featured-card__name { font-size:16px; font-weight:700; margin-bottom:6px; }
.featured-card__count { font-size:13px; color:var(--site-primary-light); font-weight:600; }

/* ═══ Nearby Grid ═══ */
.nearby-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.nearby-card { display:block; background:#fff; border:1px solid var(--site-border); border-radius:10px; padding:16px; text-decoration:none; color:var(--site-body); transition:all .2s; }
.nearby-card:hover { border-color:var(--site-primary); background:var(--site-primary-bg); transform:translateY(-2px); box-shadow:0 4px 12px rgba(212,146,10,.12); color:var(--site-body); text-decoration:none; }
.nearby-card__name { font-size:16px; font-weight:700; color:var(--site-navy); margin-bottom:4px; }
.nearby-card__count { font-size:13px; color:var(--site-mid); }
.nearby-area-links { margin-top:32px; padding:24px; background:#fff; border-radius:12px; border:1px solid var(--site-border); }
.nearby-area-links__title { font-size:16px; font-weight:700; color:var(--site-navy); margin-bottom:12px; }
.nearby-area-links__list { display:flex; flex-wrap:wrap; gap:8px; }
.nearby-area-links__item { display:inline-block; padding:6px 16px; border-radius:20px; font-size:13px; font-weight:600; background:var(--site-cream); color:var(--site-body); text-decoration:none; transition:all .2s; }
.nearby-area-links__item:hover { background:var(--site-primary); color:var(--site-dark); text-decoration:none; }

/* ═══ CTA ═══ */
.cta-service { background:linear-gradient(135deg,var(--site-dark),var(--site-navy)); border-radius:16px; padding:28px 24px; margin-top:32px; position:relative; overflow:hidden; }
.cta-service::before { content:''; position:absolute; top:-50px; right:-50px; width:200px; height:200px; background:radial-gradient(circle,rgba(212,146,10,.1),transparent); pointer-events:none; }
.cta-service__title { font-size:18px; font-weight:800; color:#fff; margin-bottom:16px; }
.cta-service-card { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:20px; margin-bottom:12px; transition:background .2s; }
.cta-service-card:hover { background:rgba(255,255,255,.1); }
.cta-service-card__badge { display:inline-block; font-size:11px; font-weight:600; background:var(--site-primary); color:var(--site-dark); padding:2px 10px; border-radius:20px; margin-bottom:8px; }
.cta-service-card__name { font-size:16px; font-weight:700; color:#fff; margin-bottom:4px; }
.cta-service-card__desc { font-size:13px; color:var(--site-slate); line-height:1.7; margin-bottom:12px; }
.cta-service-card__btn { display:inline-block; background:var(--site-primary); color:var(--site-dark); padding:10px 24px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:all .2s; }
.cta-service-card__btn:hover { background:var(--site-primary-glow); transform:translateY(-1px); box-shadow:0 4px 16px rgba(212,146,10,.3); color:var(--site-dark); text-decoration:none; }
.cta-secondary { background:linear-gradient(135deg,var(--site-dark),var(--site-navy)); border-radius:16px; padding:32px; margin-top:32px; display:flex; justify-content:space-between; align-items:center; gap:24px; position:relative; overflow:hidden; }
.cta-secondary::before { content:''; position:absolute; top:-50px; right:-50px; width:200px; height:200px; background:radial-gradient(circle,rgba(212,146,10,.1),transparent); pointer-events:none; }
.cta-secondary__sub { font-size:13px; color:var(--site-primary-light); margin-bottom:4px; font-weight:600; }
.cta-secondary__title { font-size:20px; font-weight:800; color:#fff; margin-bottom:6px; }
.cta-secondary__desc { font-size:13px; color:rgba(255,255,255,.7); }
.cta-secondary__button { display:inline-block; background:var(--site-primary); color:var(--site-dark); padding:14px 28px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; white-space:nowrap; transition:all .2s; }
.cta-secondary__button:hover { background:var(--site-primary-glow); transform:translateY(-1px); box-shadow:0 4px 16px rgba(212,146,10,.3); color:var(--site-dark); text-decoration:none; }

/* ═══ City & Breadcrumb ═══ */
.city-page__title { font-size:24px; font-weight:800; color:var(--site-navy); margin-bottom:6px; }
.city-page__year { font-size:14px; font-weight:600; color:var(--site-primary); }
.city-page__intro { font-size:14px; line-height:1.85; color:var(--site-mid); margin-bottom:20px; }
.city-page__meta { display:flex; flex-wrap:wrap; gap:16px; font-size:13px; color:var(--site-mid); margin-bottom:24px; padding:12px 16px; background:#fff; border-radius:8px; border:1px solid var(--site-border); }
.single-shop-breadcrumb,.city-page__breadcrumb,.breadcrumb-nav { font-size:13px; color:var(--site-mid); margin-bottom:16px; }
.single-shop-breadcrumb a,.city-page__breadcrumb a,.breadcrumb-nav a { color:var(--site-primary); text-decoration:none; }
.single-shop-breadcrumb a:hover,.city-page__breadcrumb a:hover,.breadcrumb-nav a:hover { text-decoration:underline; }

/* ═══ Single Shop Page ═══ */
.single-shop-header { background:linear-gradient(135deg,var(--site-dark),var(--site-navy-light)); border-radius:16px; padding:28px; margin-bottom:24px; color:#fff; position:relative; overflow:hidden; }
.single-shop-header::before { content:''; position:absolute; top:-100px; right:-100px; width:300px; height:300px; background:radial-gradient(circle,rgba(212,146,10,.08),transparent); pointer-events:none; }
.single-shop-header--premium { border:2px solid var(--site-primary); }
.single-shop-premium-label { display:inline-block; font-size:12px; font-weight:700; background:var(--site-primary); color:var(--site-dark); padding:4px 12px; border-radius:20px; margin-bottom:8px; }
.single-shop-title { font-size:26px; font-weight:800; color:#fff; margin-bottom:12px; }
.single-shop-badges { display:flex; gap:8px; flex-wrap:wrap; }
.single-shop-info-table { width:100%; background:#fff; border-radius:12px; border:1px solid var(--site-border); overflow:hidden; margin-bottom:24px; }
.single-shop-info-table th { background:var(--site-cream); padding:12px 16px; font-size:13px; font-weight:700; color:var(--site-navy); text-align:left; width:120px; border-bottom:1px solid var(--site-border); }
.single-shop-info-table td { padding:12px 16px; font-size:14px; border-bottom:1px solid var(--site-border); }
.single-shop-description { background:#fff; border-radius:12px; border:1px solid var(--site-border); padding:24px; margin-bottom:24px; font-size:15px; line-height:1.9; }
.single-shop-description h2 { font-size:18px; font-weight:700; color:var(--site-navy); margin-bottom:12px; }
.single-shop-map { border-radius:12px; overflow:hidden; margin-bottom:24px; border:1px solid var(--site-border); }
.single-shop-map iframe { display:block; width:100%; height:350px; border:0; }
.single-shop-links { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.single-shop-links a { padding:10px 20px; border-radius:8px; font-size:14px; font-weight:600; text-decoration:none; transition:all .2s; }
.single-shop-related { background:#fff; border-radius:12px; border:1px solid var(--site-border); padding:24px; margin-bottom:24px; }
.single-shop-related__title { font-size:18px; font-weight:700; color:var(--site-navy); margin-bottom:16px; }
.single-shop-related__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.single-shop-related__card { display:block; padding:14px; border:1px solid var(--site-border); border-radius:8px; text-decoration:none; color:var(--site-body); transition:all .2s; }
.single-shop-related__card:hover { border-color:var(--site-primary); background:var(--site-primary-bg); color:var(--site-body); text-decoration:none; }
.single-shop-related__card-name { font-size:14px; font-weight:700; color:var(--site-navy); margin-bottom:4px; }
.single-shop-related__card-address { font-size:12px; color:var(--site-mid); }
.single-shop-related__all { display:block; text-align:center; margin-top:16px; padding:12px; background:var(--site-cream); border-radius:8px; color:var(--site-navy); font-weight:700; font-size:14px; text-decoration:none; transition:all .2s; }
.single-shop-related__all:hover { background:var(--site-primary); color:var(--site-dark); text-decoration:none; }
.single-shop-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; margin-bottom:24px; }
.single-shop-gallery img { width:100%; height:150px; object-fit:cover; border-radius:8px; }

/* ═══ Comparison Table ═══ */
.comparison-table { width:100%; background:#fff; border-radius:12px; border:1px solid var(--site-border); overflow:hidden; margin:24px 0; }
.comparison-table th { background:var(--site-navy); color:#fff; padding:12px 16px; font-size:13px; font-weight:700; }
.comparison-table td { padding:12px 16px; border-bottom:1px solid var(--site-border); font-size:14px; }

/* ═══ About / Empty ═══ */
.about-box { background:#fff; border:1px solid var(--site-border); border-radius:12px; padding:28px; font-size:14px; line-height:1.9; }
.about-box h3 { font-size:18px; font-weight:700; color:var(--site-navy); margin-bottom:12px; }
.empty-state { text-align:center; padding:60px 20px; color:var(--site-mid); }
.empty-state__icon { font-size:48px; margin-bottom:12px; opacity:.5; }
.empty-state__title { font-size:16px; font-weight:600; margin-bottom:8px; }
.empty-state__link a { color:var(--site-primary); text-decoration:underline; }

/* ═══ Responsive ═══ */
@media(max-width:768px){
  .site-hero__title{font-size:26px} .site-hero__stats{gap:20px} .site-hero__stat-number{font-size:24px}
  .pref-grid{grid-template-columns:repeat(3,1fr)} .featured-grid{grid-template-columns:repeat(2,1fr)}
  .nearby-grid{grid-template-columns:repeat(2,1fr)} .cta-secondary{flex-direction:column;text-align:center}
  .single-shop-title{font-size:20px} .single-shop-header{padding:20px} .single-shop-related__grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .pref-grid{grid-template-columns:repeat(2,1fr)} .featured-grid{grid-template-columns:1fr}
  .nearby-grid{grid-template-columns:1fr} .shop-card__header-top{flex-direction:column} .shop-card__features{justify-content:flex-start}
}

.kaitori-card--highlight { border: 2px solid var(--site-primary, #D4920A); position: relative; }
.kaitori-card__recommend { position: absolute; top: -12px; left: 16px; background: linear-gradient(135deg, #D4920A, #F5C842); color: #0B1426; font-size: 11px; font-weight: 800; padding: 3px 14px; border-radius: 20px; z-index: 1; }

.speciality-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.speciality-tag { display: inline-block; font-size: 13px; font-weight: 600; color: #334155; background: #f1f5f9; border: 1px solid #cbd5e1; padding: 6px 16px; border-radius: 50px; }

