/* 有機JASマップ 都道府県ページ（案3ボタニカル） */
:root{
  --serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",Georgia,serif;
  --sans:"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Meiryo",sans-serif;
  --page:#eef2e7; --card:#fbfcf6; --ink:#232a20; --soft:#5f6b56; --line:#dae3cf;
  --brand:#35603f; --accent:#7a8b3f; --chip:#e7eede; --chipink:#3f5a34;
  --shadow:0 1px 2px rgba(35,42,32,.05), 0 10px 26px -16px rgba(35,42,32,.28);
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans); color:var(--ink); background:var(--page); line-height:1.75; -webkit-font-smoothing:antialiased}
.ribbon{height:3px;background:linear-gradient(90deg,var(--brand),var(--accent))}
a{color:var(--accent)}
.wrap{max-width:960px;margin:0 auto;padding:0 18px}

.site-head{background:var(--card);border-bottom:1px solid var(--line)}
.site-head .inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand svg{width:36px;height:36px;flex:0 0 auto}
.brand b{font-family:var(--serif);font-weight:600;letter-spacing:.05em;font-size:1.22rem;color:var(--brand);line-height:1.1}
.brand span{display:block;font-size:.7rem;color:var(--soft)}
.src-badge{font-size:.64rem;line-height:1.5;color:var(--soft);border:1px solid var(--line);border-left:3px solid var(--accent);padding:6px 10px;border-radius:3px;background:var(--page)}
.src-badge b{color:var(--ink)}
@media(max-width:640px){.src-badge{display:none}}

.crumb{font-size:.74rem;color:var(--soft);padding:12px 0 0}
.crumb a{color:var(--soft)}
h1{font-family:var(--serif);font-weight:600;letter-spacing:.03em;font-size:1.7rem;margin:.4rem 0 .3rem;color:var(--ink);text-wrap:balance}
.lead{margin:0 0 14px;color:var(--soft);font-size:.94rem;max-width:66ch}
.lead b{color:var(--brand);font-variant-numeric:tabular-nums;font-family:var(--serif);font-size:1.15rem}

.cats{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}
.cat{font-family:var(--sans);font-size:.76rem;padding:5px 12px;border-radius:4px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.cat[aria-pressed="true"]{background:var(--brand);color:var(--card);border-color:var(--brand);font-weight:700}
.cat .n{color:var(--soft);font-size:.7rem;margin-left:4px;font-variant-numeric:tabular-nums}
.cat[aria-pressed="true"] .n{color:var(--chip)}

#map{height:360px;border:1px solid var(--line);border-radius:6px;background:#e2ecd6;margin-bottom:8px}
.maphint{font-size:.72rem;color:var(--soft);margin:0 0 22px}

.ops{list-style:none;margin:0 0 26px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.op{background:var(--card);border:1px solid var(--line);border-radius:5px;padding:13px 15px;box-shadow:var(--shadow);position:relative}
.op[hidden]{display:none}
.op h2{font-family:var(--serif);font-weight:600;font-size:1.02rem;letter-spacing:.02em;margin:0 34px 3px 0;color:var(--ink)}
.op .jas{position:absolute;top:12px;right:13px;font-size:.55rem;font-weight:700;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 5px}
.op .addr{font-size:.76rem;color:var(--soft);margin:0 0 7px}
.op .tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.op .tags span{font-size:.64rem;padding:1px 8px;border-radius:3px;background:var(--chip);color:var(--chipink)}
.op .row{font-size:.76rem;margin:2px 0;color:var(--ink)}
.op .row i{font-style:normal;display:inline-block;min-width:4.4em;color:var(--soft);font-size:.68rem}
.op .hp{display:inline-block;margin-top:7px;font-size:.76rem;font-weight:600;color:var(--accent);text-decoration:none}
.op .hp:hover{text-decoration:underline}

.pref-nav{border-top:1px solid var(--line);padding:20px 0 6px}
.pref-nav h2{font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:.04em;margin:0 0 10px;color:var(--brand)}
.pref-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.pref-nav a{font-size:.8rem;color:var(--ink);text-decoration:none;border:1px solid var(--line);background:var(--card);border-radius:4px;padding:4px 10px;display:inline-block}
.pref-nav a:hover{border-color:var(--accent);color:var(--brand)}
.pref-nav a.here{background:var(--brand);color:var(--card);border-color:var(--brand);font-weight:700}
.pref-nav a .n{color:var(--soft);font-size:.7rem;margin-left:3px;font-variant-numeric:tabular-nums}
.pref-nav a.here .n{color:var(--chip)}

footer{background:var(--card);border-top:1px solid var(--line);margin-top:24px;padding:16px 0 30px}
footer .src{font-family:var(--serif);color:var(--ink);font-size:.8rem}
footer p{margin:5px 0 0;font-size:.7rem;color:var(--soft);line-height:1.7}

.pin{display:block;width:13px;height:13px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--c,#35603f);border:1.5px solid #fbfcf6;box-shadow:0 1px 2px rgba(0,0,0,.35)}
.pin-wrap{background:none;border:none}
.leaflet-popup-content-wrapper{border-radius:6px;border:1px solid var(--line);background:var(--card)}
.leaflet-popup-content{margin:10px 12px;font-family:var(--sans);color:var(--ink);font-size:.8rem;line-height:1.6}
.leaflet-popup-tip{background:var(--card)}
.pp h3{font-family:var(--serif);font-weight:600;font-size:.95rem;margin:0 0 2px}
.pp small{color:var(--soft)}
