.float-board{position:fixed;right:22px;bottom:22px;z-index:50;display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;}
.float-board .circle{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--gradient);box-shadow:0 8px 22px -6px rgba(193,36,110,0.5);transition:transform 0.15s ease;}
.float-board:hover .circle{transform:translateY(-2px);}
.float-board .circle-text{color:#fff;font-size:13px;font-weight:700;letter-spacing:0.02em;}
@media (max-width:560px){.float-board{right:16px;bottom:16px;}.float-board .circle{width:54px;height:54px;}.float-board .circle-text{font-size:13px;}}

*{box-sizing:border-box;}
.crumb{padding:14px 28px 0;font-size:13px;color:var(--muted);}
.crumb a{color:var(--muted);text-decoration:none;}
.crumb span{color:var(--ink);font-weight:600;}
.hub-head{padding:22px 28px 22px;}
.hub-head h1{font-size:clamp(26px,4.5vw,34px);font-weight:800;margin:0 0 10px;}
.hub-head p{font-size:16px;color:var(--muted);margin:0;max-width:60ch;}
.sec{padding:24px 28px;border-top:1px solid var(--line);}
.sec-title{font-size:17px;font-weight:800;margin:0 0 14px;}
.district-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:stretch;}
.district-card{
  display:flex;align-items:center;justify-content:space-between;gap:5px;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;
  padding:11px 10px;text-decoration:none;color:inherit;box-shadow:var(--shadow);
}
.district-card .arrow-row{
  font-size:13.5px;font-weight:700;color:var(--accent);line-height:1;flex:none;
}
.district-card:hover{border-color:var(--accent);}
.district-card .info h3{font-size:14px;font-weight:800;margin:0;white-space:nowrap;}
.list-toolbar-inline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.filter-chip{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:100px;
  padding:7px 14px;font-size:13.5px;font-weight:600;color:var(--ink);
  cursor:pointer;font-family:inherit;white-space:nowrap;text-decoration:none;
}
.filter-chip.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.shop-grid-full{display:grid;grid-template-columns:1fr;gap:14px;}
.shop-card-paid{border:1px solid var(--accent);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);text-decoration:none;display:block;color:inherit;}
.shop-card-paid .photo{height:110px;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted);position:relative;}
.shop-card-paid .gold-ribbon{position:absolute;top:9px;left:9px;font-size:13px;font-weight:800;color:#fff;background:var(--gradient);border-radius:100px;padding:4px 10px;letter-spacing:0.03em;}
.shop-card-paid .info{padding:14px 16px;}
.shop-card-paid .name{font-weight:800;font-size:16px;margin:0 0 5px;}
.shop-card-paid .tags{display:flex;gap:5px;margin-bottom:8px;flex-wrap:wrap;}
.shop-card-paid .tag{font-size:10px;color:var(--accent);background:var(--accent-soft);border-radius:100px;padding:3px 9px;}
.shop-card-paid .tag.area{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);}
.shop-card-paid .desc{font-size:13.5px;color:var(--muted);margin:0;}
.shop-card-free{border:1px dashed var(--line);border-radius:12px;padding:16px;background:var(--surface-2);text-decoration:none;display:block;color:inherit;}
.shop-card-free .name{font-weight:700;font-size:16px;margin:0 0 5px;}
.shop-card-free .tags{display:flex;gap:5px;margin-bottom:8px;flex-wrap:wrap;}
.shop-card-free .tag{font-size:9.5px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:100px;padding:2px 8px;}
.shop-card-free .tag.area{color:var(--accent);background:var(--accent-soft);border:none;}
.shop-card-free .desc{font-size:13px;color:var(--muted);margin:0;}
.shop-list-note{font-size:13px;color:var(--muted);margin-top:14px;}
.shop-list-note a{color:var(--accent);font-weight:600;text-decoration:none;}
.pf-tag{font-size:14px;color:rgba(255,255,255,0.55);margin:0 0 22px;line-height:1.7;}
@media (min-width:760px){
  .page-footer{padding:44px 24px 40px;}
  .pf-nav{flex-direction:row;flex-wrap:wrap;gap:0 26px;}
  .pf-nav a{border:none;padding:6px 0;}
  .pf-nav a:first-child{border-top:none;}
}
.area-group{margin-bottom:22px;}
.area-group:last-child{margin-bottom:0;}
.area-group-title{font-size:13.5px;font-weight:800;color:var(--accent);margin:0 0 10px;letter-spacing:0.03em;}
.area-chip-row{display:flex;flex-wrap:wrap;gap:8px;}
.area-chip{
  font-size:14px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:100px;padding:8px 15px;text-decoration:none;
}
.area-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}
.area-hero-photo{
  aspect-ratio:1/1;width:100%;margin:14px 0 0;overflow:hidden;
  background:
    linear-gradient(180deg, rgba(20,15,10,0.15) 0%, rgba(20,15,10,0.8) 100%),
    var(--hero) center 30% / cover no-repeat;
  display:flex;flex-direction:column;justify-content:flex-end;padding:20px;
  position:relative;
}
.area-hero-photo h1{
  font-family:'Inter','Noto Sans JP',-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:clamp(26px,6vw,34px);font-weight:800;color:#fff;margin:0 0 8px;
  text-shadow:0 2px 12px rgba(0,0,0,0.5);letter-spacing:-0.01em;
}
.area-hero-photo p{
  font-size:15px;color:rgba(255,255,255,0.92);margin:0;line-height:1.75;
  text-shadow:0 1px 8px rgba(0,0,0,0.5);max-width:52ch;
}
@media (min-width:760px){
  .area-hero-photo{aspect-ratio:16/7;padding:28px 32px 32px;}
}

/* ページ冒頭のスニペット文 */
.snippet-sec{padding-top:18px;padding-bottom:0;}
.page-snippet{font-size:16px;line-height:1.85;color:var(--ink);margin:0;}
