:root {
  --ink: #24211e;
  --muted: #6a625a;
  --paper: #fffdf8;
  --sand: #f5ede0;
  --line: #ded2c1;
  --red: #c94b31;
  --red-dark: #96321f;
  --teal: #31736b;
  --green-soft: #e4f1e9;
  --gold: #d69a36;
  --shadow: 0 14px 30px rgba(76, 50, 24, .10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif; line-height: 1.65; }
a { color: var(--teal); text-underline-offset: 3px; }
a:hover { color: var(--red-dark); }
button, input, select, textarea { font: inherit; }
.container { width: min(1160px, calc(100% - 40px)); margin: 0 auto; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 99; background: var(--ink); color: #fff; padding: 8px 14px; }
.skip-link:focus { left: 8px; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(255,253,248,.96); border-bottom: 1px solid rgba(222,210,193,.75); backdrop-filter: blur(10px); }
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; line-height: 1.25; }
.brand:hover { color: var(--ink); }
.brand strong { display: block; font-family: Georgia, "Yu Mincho", serif; font-size: 1.2rem; letter-spacing: .06em; }
.brand small { display: block; color: var(--muted); font-size: .7rem; margin-top: 4px; letter-spacing: .03em; }
.brand-mark { display: grid; place-items: center; width: 39px; height: 39px; color: #fffaf1; background: var(--red); border-radius: 50% 45% 50% 43%; font-family: Georgia, serif; font-weight: bold; font-size: 1.15rem; transform: rotate(-8deg); }
nav { display: flex; align-items: center; gap: 20px; font-size: .9rem; white-space: nowrap; }
nav a { color: var(--ink); text-decoration: none; border-bottom: 2px solid transparent; padding: 27px 0 24px; }
nav a.active, nav a:hover { color: var(--red-dark); border-bottom-color: var(--red); }
.hero { position: relative; min-height: 468px; display: grid; align-items: center; color: #fff; background: #172631 url('/assets/images/hero-dagashiya.jpg') center/cover no-repeat; }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,28,37,.94) 0%, rgba(15,28,37,.77) 38%, rgba(15,28,37,.12) 76%, rgba(15,28,37,.03) 100%); }
.hero > .container { position: relative; padding: 72px 0 78px; }
.eyebrow { margin: 0 0 12px; color: #f7c36a; font-size: .83rem; font-weight: 700; letter-spacing: .12em; }
h1, h2, h3 { font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif; line-height: 1.32; }
h1 { margin: 0; max-width: 680px; font-size: clamp(2.15rem, 5vw, 4rem); letter-spacing: .04em; }
.hero p:not(.eyebrow) { max-width: 520px; margin: 18px 0 0; color: rgba(255,255,255,.88); font-size: 1.03rem; }
.search-panel { position: relative; z-index: 5; width: min(1020px, calc(100% - 40px)); margin: -38px auto 0; padding: 20px; border: 1px solid #eadfce; border-radius: 16px; background: #fffdf9; box-shadow: var(--shadow); }
.search-form { display: grid; grid-template-columns: 1.5fr 1fr 1fr auto; gap: 10px; }
.field { display: grid; gap: 5px; }
.field label { color: #5a5148; font-size: .78rem; font-weight: 700; }
input, select, textarea { width: 100%; color: var(--ink); border: 1px solid #cdbfab; border-radius: 8px; background: #fff; padding: 11px 12px; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(49,115,107,.25); border-color: var(--teal); }
textarea { min-height: 120px; resize: vertical; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 45px; border: 1px solid var(--red); border-radius: 8px; padding: 0 18px; background: var(--red); color: #fff; cursor: pointer; font-weight: 700; text-decoration: none; transition: transform 160ms ease, background 160ms ease; }
.button:hover { color: #fff; background: var(--red-dark); transform: translateY(-1px); }
.button:active { transform: scale(.98); }
.button-secondary { background: #fffdf8; border-color: var(--teal); color: var(--teal); }
.button-secondary:hover { background: var(--teal); color: #fff; }
.search-button { align-self: end; }
.home-section { padding: 68px 0; }
.section-top { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 26px; }
.section-top h2 { margin: 0; font-size: clamp(1.55rem, 3vw, 2.3rem); letter-spacing: .03em; }
.section-top p { max-width: 530px; margin: 0; color: var(--muted); }
.results-meta { margin: 0 0 18px; color: var(--muted); font-size: .9rem; }
.store-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.store-card { display: flex; flex-direction: column; min-height: 276px; padding: 22px; border: 1px solid #e3d8c8; border-radius: 13px; background: #fff; box-shadow: 0 5px 15px rgba(64,41,20,.04); }
.store-card:hover { border-color: #c5a983; box-shadow: var(--shadow); }
.store-card-top { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.store-card h3 { margin: 0; font-size: 1.32rem; }
.store-card h3 a { color: var(--ink); text-decoration: none; }
.store-card h3 a:hover { color: var(--red-dark); }
.badge { display: inline-block; flex: none; padding: 4px 8px; border-radius: 100px; font-size: .72rem; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; font-weight: 700; line-height: 1.35; }
.badge-good { color: #1c674d; background: var(--green-soft); }
.badge-warn { color: #875900; background: #fff1d1; }
.badge-muted { color: #665f57; background: #eee9e1; }
.store-address { margin: 10px 0 0; color: #5d554e; font-size: .9rem; }
.store-data { margin: 16px 0 0; padding: 0; list-style: none; font-size: .88rem; }
.store-data li { display: grid; grid-template-columns: 5.4em 1fr; gap: 8px; margin-top: 6px; }
.store-data span { color: var(--muted); }
.card-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; font-size: .82rem; }
.card-footer a { font-weight: 700; }
.info-band { background: var(--sand); }
.info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.info-card { padding: 24px; border-left: 4px solid var(--gold); background: rgba(255,255,255,.63); }
.info-card h3 { margin: 0; font-size: 1.25rem; }
.info-card p { margin-bottom: 0; color: #544b43; }
.notice { margin: 20px 0; padding: 16px 18px; border-left: 4px solid var(--gold); background: #fff7e9; }
.notice.error { border-color: var(--red); background: #fff0ed; }
.notice.success { border-color: var(--teal); background: #edf8f4; }
.page-hero { padding: 62px 0 52px; background: #f5ede0; border-bottom: 1px solid var(--line); }
.page-hero .container { max-width: 900px; }
.page-hero h1 { max-width: none; font-size: clamp(2rem, 4vw, 3.15rem); color: var(--ink); }
.page-hero p { max-width: 660px; margin-bottom: 0; color: var(--muted); }
.content-wrap { width: min(890px, calc(100% - 40px)); margin: 0 auto; padding: 52px 0 72px; }
.content-wrap h2 { margin-top: 42px; font-size: 1.6rem; }
.content-wrap h3 { margin-top: 28px; font-size: 1.22rem; }
.content-wrap p, .content-wrap li { color: #423c37; }
.content-wrap table { width: 100%; border-collapse: collapse; margin: 22px 0; font-size: .92rem; }
.content-wrap th, .content-wrap td { padding: 12px; vertical-align: top; text-align: left; border: 1px solid var(--line); }
.content-wrap th { background: #faf3e9; }
.form-card { padding: 30px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(76,50,24,.06); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.form-grid .wide { grid-column: 1 / -1; }
.check-row { display: flex; align-items: flex-start; gap: 9px; margin-top: 22px; font-size: .9rem; }
.check-row input { width: 18px; height: 18px; margin-top: 3px; flex: none; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.detail-header { display: grid; grid-template-columns: 1fr auto; gap: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.detail-header h1 { font-size: clamp(2rem, 4vw, 3rem); }
.detail-header p { margin: 10px 0 0; color: var(--muted); }
.detail-actions { display: flex; flex-direction: column; justify-content: end; gap: 8px; min-width: 180px; }
.detail-table { width: 100%; border-collapse: collapse; margin: 28px 0; }
.detail-table th, .detail-table td { padding: 15px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.detail-table th { width: 150px; color: var(--muted); font-weight: 600; }
.source-box { margin-top: 36px; padding: 20px; background: #f8f4ed; border-radius: 10px; }
.source-box h2 { margin-top: 0; }
.google-live { margin-top: 38px; padding: 26px; border: 1px solid #cfd8e0; border-radius: 14px; background: #f7fafc; }
.google-live-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.google-live h2 { margin: 0; font-size: 1.6rem; }
.google-live h3 { margin: 30px 0 12px; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; font-size: 1rem; }
.google-maps-attribution { margin: 0 0 2px; color: #5f6368; font-family: Roboto, Arial, sans-serif; font-size: .82rem; font-weight: 400; letter-spacing: normal; }
.google-live-notice { margin: 14px 0 0; color: #565f68; font-size: .89rem; }
.google-rating { margin: 18px 0 0; color: #30343a; }
.google-rating strong, .google-stars { color: #b16f00; }
.google-rating span { color: #5f6368; font-size: .9rem; }
.google-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.google-photo-card { overflow: hidden; margin: 0; border: 1px solid #d6dce2; border-radius: 10px; background: #fff; }
.google-photo-card > a { display: block; height: 150px; background: #e6ebef; }
.google-photo-card > a:focus-visible { outline: 3px solid var(--teal); outline-offset: -3px; }
.google-photo-card > a img { display: block; width: 100%; height: 100%; object-fit: cover; }
.google-photo-card figcaption { display: grid; gap: 5px; padding: 9px; color: #59636e; font-size: .74rem; line-height: 1.45; }
.google-author { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.google-author img { width: 20px; height: 20px; flex: none; border-radius: 50%; object-fit: cover; }
.google-review-list { display: grid; gap: 12px; }
.google-review { padding: 16px; border: 1px solid #d6dce2; border-radius: 10px; background: #fff; }
.google-review-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: #59636e; font-size: .82rem; }
.google-review p { margin: 12px 0 0; color: #30343a; font-size: .91rem; }
.google-review-links { color: #59636e !important; font-size: .8rem !important; }
.site-footer { padding: 45px 0 20px; background: #263c3a; color: #e6efe9; font-size: .88rem; }
.admin-body { background: #f4f5f0; color: #24211e; }
.admin-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100vh; }
.admin-sidebar { position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh; padding: 28px 18px; background: #263c3a; color: #e6efe9; }
.admin-brand { display: block; margin: 0 8px 38px; color: #fff5df; font-family: "Noto Serif JP", Georgia, serif; font-size: 1.28rem; font-weight: 700; line-height: 1.25; text-decoration: none; }
.admin-brand small { display: block; margin-top: 5px; color: #bcd0ca; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; font-size: .72rem; font-weight: 600; letter-spacing: .08em; }
.admin-sidebar nav { display: grid; gap: 5px; }
.admin-sidebar nav a { padding: 10px 12px; border-radius: 8px; color: #cfe0d9; font-size: .93rem; text-decoration: none; }
.admin-sidebar nav a:hover, .admin-sidebar nav a:focus-visible, .admin-sidebar nav a.active { background: #3d5b55; color: #fff; }
.admin-side-bottom { display: grid; gap: 9px; margin-top: auto; padding: 17px 10px 0; border-top: 1px solid rgba(255,255,255,.17); color: #cfe0d9; font-size: .8rem; }
.admin-side-bottom p { margin: 0; }.admin-side-bottom span { color: #9bbab0; }.admin-side-bottom a, .admin-link-button { width: fit-content; border: 0; padding: 0; background: transparent; color: #e7bd70; font: inherit; text-decoration: underline; }
.admin-main { min-width: 0; padding: 34px clamp(20px, 4vw, 64px) 60px; }.admin-topbar { margin-bottom: 26px; }.admin-topbar .eyebrow { margin: 0 0 5px; }.admin-topbar h1 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.3rem); }
.admin-intro { max-width: 900px; margin-bottom: 20px; color: #5e6059; }.admin-intro p { margin: 0; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.admin-stat { display: grid; min-height: 150px; padding: 19px; border: 1px solid #d8ddd7; border-radius: 13px; background: #fff; color: #364842; text-decoration: none; transition: transform 160ms cubic-bezier(.23, 1, .32, 1), box-shadow 160ms cubic-bezier(.23, 1, .32, 1); }.admin-stat:hover { box-shadow: 0 10px 25px rgba(38,60,58,.1); transform: translateY(-2px); }.admin-stat.warning { border-color: #e2c58c; background: #fffaf0; }.admin-stat span { color: #5f6862; font-size: .82rem; }.admin-stat strong { align-self: center; color: #263c3a; font-size: 2.55rem; line-height: 1; }.admin-stat small { color: #a06416; font-size: .76rem; font-weight: 700; }
.admin-card { margin: 22px 0; padding: 24px; border: 1px solid #d8ddd7; border-radius: 13px; background: #fff; box-shadow: 0 1px 0 rgba(38,60,58,.03); }.admin-card h2 { margin-top: 0; font-size: 1.25rem; }.admin-card h3 { font-size: 1rem; }.admin-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin: 4px 0 20px; }.admin-card-heading h2 { margin: 0; }.admin-card-heading .eyebrow { margin: 0 0 4px; }
.admin-steps { margin: 0; padding-left: 1.4rem; }.admin-steps li { margin: .55rem 0; }.admin-help { color: #68716d; font-size: .82rem; line-height: 1.6; }
.admin-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 18px; }.admin-filter-bar a { padding: 8px 12px; border: 1px solid #d1d8d4; border-radius: 999px; color: #42534e; font-size: .83rem; text-decoration: none; }.admin-filter-bar a.active { border-color: #263c3a; background: #263c3a; color: #fff; }
.admin-search { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }.admin-search input { min-width: min(300px, 100%); flex: 1; }.admin-search select { width: 170px; }
.admin-table-wrap { overflow-x: auto; }.admin-table { width: 100%; min-width: 750px; border-collapse: collapse; font-size: .87rem; }.admin-table th { padding: 11px 10px; border-bottom: 1px solid #dce1dc; color: #63706a; font-size: .72rem; font-weight: 700; text-align: left; letter-spacing: .04em; }.admin-table td { padding: 13px 10px; border-bottom: 1px solid #eef0ed; vertical-align: top; }.admin-table small { color: #66716c; }.admin-table pre { max-width: 430px; overflow: auto; margin: 10px 0 0; padding: 10px; background: #f5f6f3; font-size: .72rem; }.admin-empty { padding: 30px !important; color: #6c736f; text-align: center; }
.admin-status { display: inline-block; padding: 4px 7px; border-radius: 5px; background: #edf0ed; color: #43504b; font-size: .73rem; font-weight: 700; white-space: nowrap; }.status-pending, .status-draft, .status-under_review { background: #fff0cf; color: #7c510f; }.status-published, .status-approved, .status-open { background: #dff2e8; color: #225c43; }.status-rejected, .status-closed_confirmed, .status-hidden { background: #f3e3e0; color: #8b4137; }
.admin-two-column { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(285px, .9fr); gap: 22px; align-items: start; }.admin-two-column .admin-card { margin: 0; }.store-editor-grid { grid-template-columns: minmax(0, 1.6fr) minmax(300px, .8fr); }.admin-detail-list { display: grid; grid-template-columns: 115px minmax(0, 1fr); gap: 14px 16px; margin: 0; }.admin-detail-list dt { color: #68716b; font-size: .82rem; }.admin-detail-list dd { min-width: 0; margin: 0; }.admin-detail-list.compact { grid-template-columns: 70px minmax(0,1fr); font-size: .88rem; }.admin-action-stack { display: grid; gap: 10px; margin-top: 16px; }.button-small { min-height: auto; padding: 8px 11px; font-size: .8rem; }.button-danger { background: #9e3d32; }.button-danger:hover { background: #7f2f27; }.admin-inline-actions { display: flex; flex-wrap: wrap; gap: 9px; }.admin-evidence-list { display: grid; gap: 9px; max-height: 470px; overflow: auto; }.admin-evidence-list article { padding: 12px; border: 1px solid #e3e7e2; border-radius: 8px; }.admin-evidence-list article > span { margin-left: 6px; color: #62736c; font-size: .72rem; }.admin-evidence-list p { margin: 7px 0; font-size: .85rem; }.admin-evidence-list small { color: #6b756f; }
.admin-overdue { color: #a14132; }.admin-confirm-import { margin-top: 18px; }.admin-login-body { display: grid; min-height: 100vh; padding: 22px; place-items: center; background: #e9eee9; }.admin-login-card { width: min(100%, 480px); padding: 38px; border: 1px solid #d5ddd7; border-radius: 16px; background: #fff; box-shadow: 0 18px 50px rgba(38,60,58,.14); }.admin-login-card h1 { margin: 4px 0 9px; font-size: 1.85rem; }.admin-login-card > p { color: #5d6660; }.admin-login-form { margin: 24px 0 15px; padding: 0; border: 0; box-shadow: none; }.admin-login-note { font-size: .78rem; }
.admin-panel { margin: 22px 0; padding: 24px; border: 1px solid #d8ddd7; border-radius: 13px; background: #fff; box-shadow: 0 1px 0 rgba(38,60,58,.03); }.admin-panel h2 { margin: 0 0 15px; font-size: 1.25rem; }
.admin-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin: 0 0 22px; }.admin-stats article { display: grid; min-height: 120px; padding: 17px; border: 1px solid #d8ddd7; border-radius: 12px; background: #fff; }.admin-stats span { color: #63706a; font-size: .76rem; font-weight: 700; }.admin-stats strong { align-self: center; color: #263c3a; font-size: 1.9rem; }.admin-stats small { color: #78817c; font-size: .72rem; overflow-wrap: anywhere; }
.crawler-status-panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 28px; border-left: 5px solid var(--teal); }.crawler-status-panel p { color: #5e6863; }.crawler-status-panel dl { display: grid; gap: 9px; margin: 0; }.crawler-status-panel dl > div { padding: 11px 13px; border-radius: 8px; background: #f4f7f5; }.crawler-status-panel dt { color: #6d7771; font-size: .7rem; font-weight: 700; }.crawler-status-panel dd { margin: 4px 0 0; color: #324740; font-size: .86rem; font-weight: 700; }
.candidate-filter { display: grid; grid-template-columns: minmax(180px, 1.35fr) repeat(3, minmax(150px, .75fr)); gap: 12px; align-items: end; }.candidate-filter label { color: #5c6862; font-size: .76rem; font-weight: 700; }.candidate-filter input, .candidate-filter select { width: 100%; margin-top: 5px; }.candidate-filter-actions { display: flex; grid-column: 1 / -1; gap: 8px; }.candidate-filter-actions .button { min-height: auto; padding: 9px 14px; }
.admin-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }.admin-section-heading h2 { margin: 0; }.admin-section-heading .eyebrow { margin: 0 0 3px; }.admin-section-heading > p { margin: 0; color: #6d7772; font-size: .76rem; }
.candidate-table-wrap { overflow-x: auto; }.candidate-table { min-width: 980px; }.candidate-table td:first-child { width: 21%; }.candidate-table td:nth-child(2) { width: 22%; }.candidate-table td strong, .candidate-table td small { display: block; }.candidate-table td small { margin-top: 5px; line-height: 1.5; }.candidate-priority { display: inline-block; padding: 4px 8px; border-radius: 999px; font-size: .7rem; font-weight: 800; white-space: nowrap; }.candidate-priority-high { background: #e2f3ea; color: #216044; }.candidate-priority-medium { background: #fff0cf; color: #7c510f; }.candidate-priority-low { background: #edf0ed; color: #56645e; }
.candidate-policy-note { border-color: #e7d9ba; background: #fffaf0; }.candidate-policy-note p { margin-bottom: 0; color: #665a45; }.empty-state { padding: 28px; border: 1px dashed #cfd9d3; border-radius: 9px; color: #6a746f; text-align: center; }
.candidate-table + .pagination, .candidate-table-wrap + .pagination { margin-top: 18px; }
.site-footer a { color: #e6efe9; }
.site-footer a:hover { color: #f8c978; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 44px; }
.footer-grid p { color: #d4dfda; }
.footer-title { color: #fff !important; font-weight: 700; }
.footer-grid ul { margin: 0; padding: 0; list-style: none; }
.footer-grid li { margin: 8px 0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 18px; margin-top: 35px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); color: #b9c7c1; font-size: .76rem; }
.empty { padding: 35px; border: 1px dashed #cbbba5; text-align: center; background: #fffaf2; color: var(--muted); }
@media (max-width: 800px) {
  .header-inner { min-height: 65px; }
  .brand small { display: none; }
  nav { gap: 12px; font-size: .78rem; }
  nav a { padding: 22px 0 19px; }
  .hero { min-height: 420px; background-position: 62% center; }
  .hero > .container { padding: 58px 0 74px; }
  .search-form { grid-template-columns: 1fr 1fr; }
  .search-form .field:first-child { grid-column: 1 / -1; }
  .search-button { grid-column: 1 / -1; }
  .store-grid, .info-grid { grid-template-columns: 1fr; }
  .section-top, .footer-bottom { align-items: start; flex-direction: column; gap: 8px; }
  .footer-grid { grid-template-columns: 1fr; gap: 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .detail-header { grid-template-columns: 1fr; gap: 18px; }
  .detail-actions { flex-direction: row; justify-content: start; }
  .admin-shell { display: block; }.admin-sidebar { position: static; height: auto; padding: 16px; }.admin-brand { margin: 0 0 13px; }.admin-sidebar nav { display: flex; flex-wrap: wrap; }.admin-side-bottom { display: none; }.admin-main { padding: 24px 16px 48px; }.admin-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }.admin-two-column, .store-editor-grid { grid-template-columns: 1fr; }.admin-card { padding: 18px; }
  .google-live-heading { align-items: start; flex-direction: column; }
  .google-photo-grid { grid-template-columns: 1fr; }
  .google-photo-card > a { height: 210px; }
}
@media (max-width: 460px) {
  .container, .content-wrap { width: min(100% - 28px, 1160px); }
  .brand strong { font-size: 1rem; }
  .brand-mark { width: 33px; height: 33px; }
  nav { gap: 9px; }
  nav a { font-size: .72rem; }
  .search-form { grid-template-columns: 1fr; }
  .search-form .field:first-child, .search-button { grid-column: auto; }
  .search-panel { width: min(100% - 28px, 1020px); }
  .store-card-top { flex-direction: column; }
  .detail-table th { width: 105px; }
}

/* 明るい地の小見出しは濃い琥珀色（#b46f15）。各ページは HTML に style="color:#b46f15" と
   直接書いているが、.htaccess の CSP（style-src 'self'）がそれを止めるため、既定の薄い黄色
   （#f7c36a・暗い地向け）で出て読めなかった。属性は DOM に残るので、それを目印に CSS から当てる（2026-09-12） */
.eyebrow[style*="b46f15"] { color: #b46f15; }

/* 2026-09-13: visual nationwide navigation with locally served SVG Japan (MIT, ka2). */
.japan-directory { padding-bottom: 38px; background: linear-gradient(180deg, #fffdf8 0%, #f7f2e9 100%); }
.japan-directory .section-heading { align-items: end; margin-bottom: 28px; }
.japan-map-layout { display: grid; grid-template-columns: minmax(220px, .56fr) minmax(0, 1.44fr); gap: clamp(22px, 3vw, 42px); align-items: center; padding: clamp(22px, 3vw, 36px); border: 1px solid #e3d5c2; border-radius: 20px; background: #fffdf9; box-shadow: 0 14px 32px rgba(76,50,24,.07); }
.japan-map-copy { max-width: 390px; }
.map-kicker { margin: 0 0 9px; color: #b46f15; font-size: .76rem; font-weight: 800; letter-spacing: .15em; }
.japan-map-copy h3 { margin: 0; font-size: clamp(1.55rem, 2.6vw, 2.15rem); letter-spacing: .03em; }
.japan-map-copy > p:not(.map-kicker) { margin: 16px 0 0; color: var(--muted); }
.japan-map-stage { min-width: 0; padding: clamp(12px, 2vw, 22px); border: 1px solid #ebe2d5; border-radius: 16px; background: #f5f1e8; }
#japan-map { position: relative; display: grid; min-height: 520px; height: 520px; place-items: center; overflow: hidden; border-radius: 12px; }
#japan-map .svg-japan-container { position: relative; width: 100% !important; height: 520px !important; margin: 0 auto; text-align: center; }
#japan-map > svg,
#japan-map .svg-japan-container svg { display: block; width: 100% !important; max-width: 720px; height: 100% !important; margin: 0 auto; }
#japan-map path.prefecture-map { cursor: pointer; outline: none; stroke: rgba(255,253,248,.84); stroke-width: 1.05px; transition: filter 150ms ease, opacity 150ms ease, transform 150ms ease; }
#japan-map path.prefecture-map:hover { filter: brightness(.91) saturate(1.22); }
#japan-map path.prefecture-map:focus { stroke: #1f2e2b; stroke-width: 3px; filter: brightness(.92); }
.map-noscript { margin: 0; padding: 20px; color: var(--muted); text-align: center; }
.region-key { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 24px; }
.region-key-item { display: inline-flex; align-items: center; gap: 6px; color: #4b443d; font-size: .78rem; font-weight: 700; text-decoration: none; }
.region-key-item:hover { color: var(--ink); text-decoration: underline; }
.region-key-item > span { width: 10px; height: 10px; border-radius: 50%; background: #a7a7a7; }
.region-hokkaido > span { background: #c7573a; }.region-tohoku > span { background: #d68f3d; }.region-kanto > span { background: #5d8f89; }.region-chubu > span { background: #819a62; }.region-kinki > span { background: #b9849a; }.region-chugoku > span { background: #b89855; }.region-shikoku > span { background: #7f8cac; }.region-kyushu-okinawa > span { background: #bd715c; }
.regional-directory-list { padding-top: 38px; }
.regional-directory-groups { display: grid; gap: 26px; }
.regional-group { scroll-margin-top: 110px; padding: 24px; border: 1px solid #e4d9ca; border-left: 6px solid #a89b8a; border-radius: 15px; background: #fff; box-shadow: 0 5px 17px rgba(64,41,20,.035); }
.regional-group.region-hokkaido { border-left-color: #c7573a; }.regional-group.region-tohoku { border-left-color: #d68f3d; }.regional-group.region-kanto { border-left-color: #5d8f89; }.regional-group.region-chubu { border-left-color: #819a62; }.regional-group.region-kinki { border-left-color: #b9849a; }.regional-group.region-chugoku { border-left-color: #b89855; }.regional-group.region-shikoku { border-left-color: #7f8cac; }.regional-group.region-kyushu-okinawa { border-left-color: #bd715c; }
.regional-group-header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 17px; }
.regional-group-header h3 { margin: 0; font-size: clamp(1.35rem, 2.5vw, 1.9rem); }
.regional-group-header > p { margin: 0; color: var(--teal); font-size: .88rem; font-weight: 800; white-space: nowrap; }
.regional-group-label { margin: 0 0 3px; color: var(--muted); font-size: .8rem; font-weight: 700; }
.prefecture-card:focus-visible, .region-key-item:focus-visible { outline: 3px solid rgba(49,115,107,.35); outline-offset: 3px; }
.google-highlight-section { padding-top: 56px; background: #f4f7f5; border-top: 1px solid #dde7e2; border-bottom: 1px solid #dde7e2; }
.google-highlight-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.google-highlight-card { display: flex; min-width: 0; min-height: 230px; flex-direction: column; padding: 19px; border: 1px solid #d4ded9; border-radius: 13px; background: #fff; box-shadow: 0 5px 15px rgba(38,60,58,.045); }
.google-highlight-card h3 { margin: 4px 0 12px; font-size: 1.18rem; }
.google-highlight-card h3 a { color: var(--ink); text-decoration: none; }
.google-highlight-place { margin: 0; color: var(--muted); font-size: .78rem; font-weight: 700; }
.google-highlight-score { display: flex; align-items: baseline; gap: 9px; margin: 0 0 8px; }
.google-highlight-score strong { color: #a96500; font-size: 1.28rem; }
.google-highlight-score span { color: #59636e; font-size: .82rem; }
.google-business-state { margin: 4px 0; color: #3c554e; font-size: .83rem; font-weight: 700; }
.google-highlight-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid #edf0ee; font-size: .8rem; font-weight: 700; }
.google-latest-review { margin: 16px 0 0; padding: 10px 12px; border-radius: 8px; background: #fff; color: #3f4b47; font-size: .88rem; }
.operating-signal { display: grid; gap: 7px; margin: 18px 0 0; padding: 16px 18px; border: 1px solid #d3ddd8; border-left: 5px solid #5a8c78; border-radius: 11px; background: #fff; }
.operating-signal > * { margin: 0; }.google-live .operating-signal h3 { margin: 3px 0 0; }
.operating-signal-kicker { color: #59636e; font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.operating-signal-badge { display: inline-block; padding: 5px 10px; border-radius: 999px; background: #e1f1e9; color: #1f664c; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; font-size: .82rem; }
.operating-signal-moderate { border-left-color: #7f9557; }.operating-signal-moderate .operating-signal-badge { background: #edf2df; color: #52672f; }
.operating-signal-caution, .operating-signal-stale, .operating-signal-unknown { border-left-color: #c18a2e; }.operating-signal-caution .operating-signal-badge, .operating-signal-stale .operating-signal-badge, .operating-signal-unknown .operating-signal-badge { background: #fff0cf; color: #795315; }
.operating-signal-closed, .operating-signal-paused { border-left-color: #b04a3b; }.operating-signal-closed .operating-signal-badge, .operating-signal-paused .operating-signal-badge { background: #f6e2de; color: #873a31; }
.operating-signal-planned, .operating-signal-listed { border-left-color: #6785a0; }.operating-signal-planned .operating-signal-badge, .operating-signal-listed .operating-signal-badge { background: #e7eef4; color: #385c78; }
.operating-signal-date { color: #37433f; font-size: .88rem; }.operating-signal-disclaimer { color: #5e6662; font-size: .79rem; }
.google-review-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-top: 30px; }
.google-review-heading h3 { margin: 0; }
.google-review-heading a, .google-review-policy { font-size: .82rem; }
.google-review-policy { margin-top: 14px; }
.detail-live-status { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 7px 10px; margin-top: 14px; padding: 8px 12px; border: 1px solid rgba(49,115,107,.24); border-radius: 999px; background: rgba(255,255,255,.78); color: #285f50; font-size: .82rem; box-shadow: 0 3px 10px rgba(38,60,58,.06); }
.detail-live-status strong { font-size: .83rem; }.detail-live-status small { color: #5b6762; font-size: .72rem; }
.detail-live-status-dot { width: 9px; height: 9px; flex: none; border-radius: 50%; background: #3c9672; box-shadow: 0 0 0 4px rgba(60,150,114,.12); }
.detail-live-status-moderate .detail-live-status-dot { background: #7f9557; box-shadow: 0 0 0 4px rgba(127,149,87,.12); }
.detail-live-status-caution .detail-live-status-dot, .detail-live-status-stale .detail-live-status-dot, .detail-live-status-unknown .detail-live-status-dot { background: #c18a2e; box-shadow: 0 0 0 4px rgba(193,138,46,.13); }
.detail-live-status-closed .detail-live-status-dot, .detail-live-status-paused .detail-live-status-dot { background: #b04a3b; box-shadow: 0 0 0 4px rgba(176,74,59,.13); }
.detail-live-status-planned .detail-live-status-dot, .detail-live-status-listed .detail-live-status-dot { background: #6785a0; box-shadow: 0 0 0 4px rgba(103,133,160,.13); }
.google-rating-summary { display: grid; grid-template-columns: minmax(155px, .65fr) minmax(0, 1.35fr); gap: 16px; align-items: stretch; margin: 20px 0 0; }
.google-rating-score { display: flex; align-items: baseline; justify-content: center; gap: 6px; padding: 18px; border-radius: 12px; background: #fff6df; color: #78531b; }
.google-rating-score .google-stars { font-size: 1.2rem; }.google-rating-score strong { color: #8d5900; font-size: 2.25rem; line-height: 1; }.google-rating-score > span:last-child { color: #776b5c; font-size: .9rem; }
.google-rating-summary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.google-rating-summary dl > div { display: grid; align-content: center; padding: 13px 15px; border: 1px solid #dbe3df; border-radius: 11px; background: #fff; }
.google-rating-summary dt { color: #69736e; font-size: .72rem; font-weight: 700; }.google-rating-summary dd { margin: 3px 0 0; color: #2e413b; font-size: 1.18rem; font-weight: 800; }.google-rating-summary dd small { display: block; color: #707873; font-size: .69rem; font-weight: 500; }
.operating-signal { grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); align-items: center; gap: 8px 18px; padding: 18px 20px; }
.operating-signal > div { grid-row: span 2; }.operating-signal-badge { padding: 7px 12px; font-size: .88rem; box-shadow: inset 0 0 0 1px rgba(31,102,76,.08); }
.operating-signal-date, .operating-signal-disclaimer { grid-column: 2; }.operating-signal-disclaimer { margin-top: 3px; padding-top: 9px; border-top: 1px dashed #d4dcd8; line-height: 1.6; }
.google-review-count-kicker { margin: 0 0 3px !important; color: #6a746f !important; font-size: .74rem !important; font-weight: 800; letter-spacing: .03em; }
.google-review { position: relative; padding: 18px 19px; border-color: #d8e0dc; box-shadow: 0 3px 11px rgba(38,60,58,.035); }
.google-review::before { content: '“'; position: absolute; top: 7px; right: 14px; color: #e4ebe7; font-family: Georgia, serif; font-size: 3rem; line-height: 1; pointer-events: none; }
.google-review-meta { position: relative; z-index: 1; padding-right: 28px; }.google-review-meta time { color: #41534d; font-weight: 700; }
.google-review-more { border: 1px solid #d5dfda; border-radius: 11px; background: #f8fbf9; }
.google-review-more > summary { padding: 13px 16px; color: var(--teal); cursor: pointer; font-size: .86rem; font-weight: 800; }.google-review-more > summary:hover { color: var(--red-dark); }.google-review-more[open] > summary { border-bottom: 1px solid #dce5e0; }
.google-review-list-more { padding: 13px; }
.store-card-media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; margin: -22px -22px 18px; border-bottom: 1px solid #e3d8c8; border-radius: 13px 13px 0 0; background: #efe9dc; }
.store-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 220ms ease; }
.store-card-media img.store-image-variant-0 { object-position: 28% 52%; }
.store-card-media img.store-image-variant-1 { object-position: 52% 50%; }
.store-card-media img.store-image-variant-2 { object-position: 76% 48%; }
.store-card-media:hover img { transform: scale(1.025); }
.store-card-media:focus-visible { outline: 3px solid var(--teal); outline-offset: -3px; }
.store-photo-label { position: absolute; right: 10px; bottom: 10px; padding: 4px 8px; border-radius: 999px; background: rgba(255,255,255,.93); color: #3f474c; font: 700 .7rem/1.3 Roboto, Arial, sans-serif; box-shadow: 0 2px 8px rgba(25,32,35,.14); }
.store-photo-label.is-placeholder { color: #6a625a; }
.regional-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 680px; gap: 10px; margin: 28px 0 0; }
.regional-stats div { padding: 13px 15px; border: 1px solid rgba(49,115,107,.22); border-radius: 11px; background: rgba(255,255,255,.7); }
.regional-stats dt { color: var(--muted); font-size: .72rem; font-weight: 700; }.regional-stats dd { margin: 2px 0 0; color: var(--ink); font-family: Georgia, "Yu Mincho", serif; font-size: 1.6rem; font-weight: 700; line-height: 1.15; }.regional-stats dd span { margin-left: 4px; color: var(--muted); font-family: inherit; font-size: .72rem; font-weight: 600; }
.map-selection { display: grid; gap: 3px; margin-top: 18px; padding: 12px 14px; border-left: 4px solid var(--teal); background: #f2f7f4; }.map-selection strong { font-size: .93rem; }.map-selection span { color: var(--muted); font-size: .8rem; }
.region-key-item small { margin-left: 1px; color: var(--muted); font-size: .67rem; }
.prefecture-toolbar { display: grid; grid-template-columns: auto minmax(220px, 440px) 1fr; align-items: center; gap: 12px; margin-bottom: 22px; padding: 15px 18px; border: 1px solid #e2d7c7; border-radius: 13px; background: #fff; }.prefecture-toolbar label { font-size: .82rem; font-weight: 800; }.prefecture-toolbar input { padding: 9px 11px; }.prefecture-toolbar p { margin: 0; color: var(--muted); font-size: .78rem; text-align: right; }
.prefecture-card meter { width: 100%; height: 7px; margin: 4px 0 2px; border: 0; background: #ebe4d9; }.prefecture-card meter::-webkit-meter-bar { border: 0; border-radius: 99px; background: #ebe4d9; }.prefecture-card meter::-webkit-meter-optimum-value { border-radius: 99px; background: linear-gradient(90deg, #6f9e8d, #31736b); }.prefecture-card meter::-moz-meter-bar { border-radius: 99px; background: #31736b; }
.prefecture-filter-empty { padding: 24px; border: 1px dashed #cbbba5; text-align: center; color: var(--muted); }
.pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); }.pagination-link { width: fit-content; padding: 9px 13px; border: 1px solid #cdbfab; border-radius: 8px; background: #fff; font-size: .84rem; font-weight: 700; text-decoration: none; }.pagination-link:last-child { justify-self: end; }.pagination-status { color: var(--muted); font-size: .82rem; font-weight: 700; }
@media (max-width: 900px) { .japan-map-layout { grid-template-columns: 1fr; }.japan-map-copy { max-width: none; }.japan-map-stage { max-width: 670px; width: 100%; margin: 0 auto; } }
@media (max-width: 1000px) { .google-highlight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .japan-directory .section-heading { display: block; }.japan-directory .section-heading > p { margin-top: 12px; }.japan-map-layout { padding: 18px; border-radius: 15px; }.japan-map-copy h3 { font-size: 1.55rem; }.region-key { gap: 7px 10px; }.regional-group { padding: 18px; }.regional-group-header { align-items: start; flex-direction: column; gap: 5px; }.regional-group-header > p { white-space: normal; }#japan-map, #japan-map .svg-japan-container { min-height: 360px; height: 360px !important; }.google-highlight-grid { grid-template-columns: 1fr; }.google-review-heading { align-items: start; flex-direction: column; gap: 5px; }.regional-stats { grid-template-columns: 1fr; }.prefecture-toolbar { grid-template-columns: 1fr; }.prefecture-toolbar p { text-align: left; }.pagination { grid-template-columns: 1fr 1fr; }.pagination-status { grid-column: 1 / -1; grid-row: 1; text-align: center; }.google-rating-summary { grid-template-columns: 1fr; }.google-rating-summary dl { grid-template-columns: 1fr 1fr; }.operating-signal { grid-template-columns: 1fr; }.operating-signal > div { grid-row: auto; }.operating-signal-date, .operating-signal-disclaimer { grid-column: 1; }.detail-live-status { align-items: flex-start; flex-direction: column; border-radius: 12px; }.detail-live-status-dot { display: none; } }
@media (max-width: 1100px) { .candidate-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }.candidate-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .candidate-stats { grid-template-columns: 1fr; }.crawler-status-panel, .candidate-filter { grid-template-columns: 1fr; }.candidate-filter-actions { grid-column: 1; }.admin-section-heading { align-items: flex-start; flex-direction: column; gap: 5px; }.google-rating-summary dl { grid-template-columns: 1fr; } }
