/* 行ったつもり — 和の旅雑誌。紙・墨・朱の三色。地図は全面、その上に文字と情景が浮く */
:root{
  --paper:#F1ECE2; --paper-2:#FBF8F1; --paper-3:#E8E2D4;
  --ink:#26241F; --ink-2:#5D5850; --mute:#9C968A;
  --line:#DCD5C5;
  --shu:#B7432B; --shu-deep:#8F3220; --shu-soft:rgba(183,67,43,.16);
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.8,.3,1);
}
:root[data-season="autumn"]{ --shu:#B7432B; }

*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-feature-settings:"palt";overflow:hidden;-webkit-font-smoothing:antialiased}

/* ── 地図 ── */
#map{position:fixed;inset:0}
.maplibregl-ctrl-attrib{font:10px/1.4 var(--sans);background:rgba(241,236,226,.85)!important;color:var(--mute)}
.maplibregl-ctrl-attrib a{color:var(--ink-2)}
.maplibregl-ctrl-bottom-right{bottom:22px;right:8px}

/* 紙の粒。地図の上に薄く乗る。触れない */
.grain{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .2 0 0 0 0 .18 0 0 0 0 .14 0 0 0 .06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* ── ブランド（縦書き） ── */
.brand{position:fixed;left:34px;top:30px;z-index:5;pointer-events:none;display:flex;gap:18px;align-items:flex-start}
/* 看板は二行「いま京都を」「巡りたい気分なら」。縦書きなので右の列が一行目。土地の名前だけ朱(CORN 2026-09-17) */
.brand{flex-direction:row-reverse}
.title{margin:0;writing-mode:vertical-rl;font:800 clamp(28px,3vw,40px)/1 var(--serif);letter-spacing:.12em;color:var(--ink);white-space:nowrap;display:flex;flex-direction:column;gap:.22em}
.title span{opacity:0;animation:rise .9s var(--ease) forwards}
.title .t-2{animation-delay:.2s}
.title .t-3{animation-delay:.3s}
.title .t-3[hidden]{display:none}
.title .t-place{color:var(--shu);font-weight:800}
.lede{margin:0;writing-mode:vertical-rl;font:500 12.5px/1 var(--sans);letter-spacing:.34em;color:var(--ink-2);padding-top:6px;
  opacity:0;animation:rise .9s var(--ease) .5s forwards}
@keyframes rise{to{opacity:1;transform:none}}

/* ── 一覧（左下、縦に細く） ── */
.index{position:fixed;left:34px;bottom:118px;z-index:5;max-height:calc(100vh - 560px);display:flex;flex-direction:column;gap:10px;
  opacity:0;animation:rise 1s var(--ease) .9s forwards}
.index-head{margin:0;font:500 11px/1 var(--sans);letter-spacing:.22em;color:var(--mute);display:flex;align-items:baseline;gap:6px}
.index-head #count{font:600 18px/1 var(--serif);color:var(--ink);letter-spacing:.04em}
.index-head i{font-style:normal}
.index-head b{font-weight:500;color:var(--shu);margin-left:8px;padding-left:10px;border-left:1px solid var(--line)}
.index ol{list-style:none;margin:0;padding:0 8px 0 0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
/* 名所の検索(全部の土地から)。空なら普通の一覧 */
.search{margin:0}
.search input{appearance:none;border:0;border-bottom:1px solid var(--line);background:transparent;padding:4px 0;width:150px;font:500 12px/1.4 var(--sans);letter-spacing:.08em;color:var(--ink);outline:none;transition:border-color .2s}
.search input::placeholder{color:var(--mute)}
.search input:focus{border-color:var(--shu)}
.search-list button small{display:block;font:400 10px/1.3 var(--sans);letter-spacing:.12em;color:var(--mute);margin-left:12px}
.search-list .none{font:400 11px/1.6 var(--sans);letter-spacing:.1em;color:var(--mute);padding:4px 0}
/* 朱印帳: 観光モードを一巡りした土地に朱印 */
.land-sheet-body button.stamped b::after{content:"印";display:inline-block;margin-left:8px;width:16px;height:16px;border-radius:50%;background:var(--shu);color:var(--paper);font:700 9px/16px var(--serif);text-align:center;letter-spacing:0;vertical-align:2px;transform:rotate(-8deg)}
.land-open span.stamped::after{content:"印";display:inline-block;margin-left:6px;width:14px;height:14px;border-radius:50%;background:var(--shu);color:var(--paper);font:700 8px/14px var(--serif);text-align:center;letter-spacing:0;vertical-align:2px;transform:rotate(-8deg)}
.stamp-toast{position:fixed;left:50%;top:26px;transform:translateX(-50%);z-index:20;background:rgba(251,248,241,.96);border:1px solid var(--shu);color:var(--ink);padding:12px 22px;font:600 14px/1.5 var(--serif);letter-spacing:.1em;box-shadow:0 6px 24px rgba(38,36,31,.12);animation:rise .5s var(--ease) both}
.stamp-toast button{appearance:none;display:block;margin:10px auto 0;border:1px solid var(--shu);background:transparent;color:var(--shu);padding:6px 14px;font:600 12px/1 var(--serif);letter-spacing:.14em;cursor:pointer;border-radius:2px}
.stamp-toast button:hover{background:var(--shu);color:var(--paper)}
.stamp-toast i{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--shu);color:var(--paper);font:700 11px/22px var(--serif);font-style:normal;text-align:center;margin-right:10px;transform:rotate(-8deg)}
.index li{margin:0}
.index button{appearance:none;border:0;background:transparent;padding:3px 0;font:500 12.5px/1.5 var(--serif);letter-spacing:.06em;color:var(--ink-2);cursor:pointer;
  display:flex;align-items:center;gap:8px;transition:color .2s}
.index button::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--line);transition:background .2s,transform .2s}
.index button:hover{color:var(--ink)}
.index button.on{color:var(--shu)}
.index button.on::before{background:var(--shu);transform:scale(1.6)}

/* ── ピン（朱印） ── */
/* 入場アニメは backwards(待ち時間は from の姿、終わったら普通のカスケードに戻る)。forwards だと .dim/.off/body.wide の opacity が全部負ける */
.pin{position:relative;width:0;height:0;cursor:pointer;animation:pinIn .6s var(--ease) backwards}
@keyframes pinIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.pin .dot{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--shu);
  box-shadow:0 0 0 0 var(--shu-soft);transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .2s}
.pin .lbl{position:absolute;left:11px;top:-9px;white-space:nowrap;font:600 12.5px/1.4 var(--serif);letter-spacing:.06em;color:var(--ink);
  text-shadow:0 0 5px var(--paper),0 0 2px var(--paper),0 0 1px var(--paper);transition:opacity .3s}
.pin:hover .dot{transform:scale(1.35);box-shadow:0 0 0 6px var(--shu-soft)}
.pin.on{z-index:3}
.maplibregl-marker:has(.pin.on){z-index:3}
.pin.on .dot{transform:scale(1.7);box-shadow:0 0 0 9px var(--shu-soft)}
.pin.on .lbl{color:var(--shu)}
/* 引いた地図では名前を伏せて●だけ。寄ると名前が出る。選択中と hover は常に出す */
body.far .pin:not(.on):not(:hover) .lbl{opacity:0}
.pin.dim{opacity:.32}
.pin.dim .lbl{opacity:.6}

/* ── 左下の印たち: 漂う／観光モード／言語・声 ── */
.dock{position:fixed;left:30px;bottom:26px;z-index:5;display:flex;align-items:center;gap:14px;
  opacity:0;animation:rise 1s var(--ease) 1.2s forwards}
.drift,.tour{width:78px;height:78px;border:0;background:transparent;padding:0;cursor:pointer;
  color:var(--shu);display:grid;place-items:center;position:relative}
.drift svg,.tour svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-dasharray:296;stroke-dashoffset:0;transition:transform .6s var(--ease)}
.drift span,.tour span{position:relative;font:600 12px/1 var(--serif);letter-spacing:.18em;display:block}
.drift-l2,.tour-l2{margin-top:6px}
.drift:hover svg{transform:rotate(90deg)}
.drift:active,.tour:active{transform:scale(.96)}
/* 観光モード = 墨色。押している間は印が塗りつぶされ、ゆっくり回る */
.tour{color:var(--ink)}
.tour[aria-pressed="true"]{color:var(--paper-2)}
.tour[aria-pressed="true"] svg{fill:var(--ink);stroke:var(--ink);animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.guide-ctl{display:flex;flex-direction:column;gap:6px}
.guide-ctl button{appearance:none;border:1px solid var(--line);background:rgba(251,248,241,.8);color:var(--ink-2);padding:6px 10px;
  font:500 11px/1 var(--sans);letter-spacing:.14em;cursor:pointer;min-width:74px;text-align:left;transition:border-color .2s,color .2s}
.guide-ctl button:hover{border-color:var(--ink);color:var(--ink)}
.guide-ctl button[aria-pressed="false"]{color:var(--mute)}
.guide-ctl button:disabled{opacity:.5;cursor:default}
/* 声が出ている間、ガイド文の頭に朱の点が息をする */
.guide{position:relative;margin:0 0 20px;padding:14px 0 0 18px;font-size:14px;line-height:2;color:var(--ink);border-top:1px dashed var(--line)}
.guide::before{content:"";position:absolute;left:0;top:26px;width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .3s}
body.speaking .guide::before{background:var(--shu);animation:breathe 1.6s ease-in-out infinite}
@keyframes breathe{0%,100%{box-shadow:0 0 0 0 var(--shu-soft)}50%{box-shadow:0 0 0 6px var(--shu-soft)}}
body.touring .brand .lede::after{content:"　— 案内中"}
/* 英語の時: 縦書きの看板は英字が横倒しになる(本の背表紙の向き)。字間は詰める */
html[lang="en"] .title{letter-spacing:.03em;font-size:clamp(24px,2.6vw,34px)}
html[lang="en"] .lede{letter-spacing:.12em}
html[lang="en"] body.touring .brand .lede::after{content:" — guiding"}
html[lang="en"] .drawer span{letter-spacing:.12em}
html[lang="en"] .index-head i{letter-spacing:.12em}

/* ── パネル（右） ── */
.panel{position:fixed;right:26px;top:26px;bottom:26px;z-index:6;width:min(440px,calc(100vw - 52px));
  background:var(--paper-2);border-radius:3px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 1px 0 rgba(0,0,0,.04),0 18px 50px rgba(38,36,31,.12);
  animation:slide .55s var(--ease)}
@keyframes slide{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.panel[hidden]{display:none}
.scene{position:relative;aspect-ratio:16/10;background:var(--paper-3);flex:none}
.scene iframe{width:100%;height:100%;border:0;display:block}
.sv-none{position:absolute;left:14px;right:14px;bottom:12px;margin:0;font-size:12px;line-height:1.6;color:var(--ink-2);
  background:rgba(251,248,241,.9);padding:8px 10px}
.body{padding:24px 28px 28px;overflow:auto}
.area{margin:0 0 8px;font:500 11px/1.4 var(--sans);letter-spacing:.24em;color:var(--shu);display:flex;align-items:center;gap:10px}
.area::before{content:"";width:18px;height:1px;background:var(--shu)}
.body h2{margin:0 0 12px;font:600 clamp(26px,2.8vw,34px)/1.3 var(--serif);letter-spacing:.05em}
/* 英語の時: 名所名の下にローマ字、品の名前の後ろに日本語(小さく) */
.body h2 .romaji{display:block;font:500 14px/1.4 var(--serif);letter-spacing:.1em;color:var(--ink-2,#6b675e);margin-top:2px}
.meisan-ja{display:inline-block;margin-left:.5em;font:400 11.5px/1 var(--sans);letter-spacing:.06em;color:var(--ink-2,#6b675e)}
.line{margin:0 0 20px;font-size:14px;line-height:2;color:var(--ink-2)}
/* この場所で見たもの: 名所に紐付いた品(押すと店3つ)。土地の品の上に、目に入った順で */
.meisan-here{margin:0 0 6px;font:500 11px/1.4 var(--sans);letter-spacing:.2em;color:var(--shu)}
.meisan ul.here{margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.meisan ul.here .meisan-b{color:var(--ink);border-color:var(--shu)}
/* 季節の一枚: 同じ場所の別の季節の公式パノラマ(撮影年月付き)。札を押すと情景が入れ替わる */
.seasons{margin:-4px 0 14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font:500 11px/1 var(--sans);letter-spacing:.1em;color:var(--mute)}
.seasons i{font-style:normal;margin-right:2px}
.seasons button{appearance:none;border:1px solid var(--line);background:transparent;padding:5px 9px;border-radius:2px;font:500 11px/1 var(--sans);letter-spacing:.08em;color:var(--ink-2);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.seasons button small{font-size:9px;color:var(--mute);margin-left:4px;letter-spacing:.04em}
.seasons button:hover{border-color:var(--ink);color:var(--ink)}
.seasons button.on{border-color:var(--shu);color:var(--shu);background:#F6E9E3}
/* いまの天気(Open-Meteo)。名前のすぐ下に一行 */
.weather{margin:-6px 0 14px;font:500 12px/1.6 var(--sans);letter-spacing:.08em;color:var(--ink-2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.weather b{font:600 15px/1 var(--serif);color:var(--ink);letter-spacing:.02em}
.weather i{font-style:normal;font-size:16px;line-height:1}
.weather small{font-size:10px;color:var(--mute);letter-spacing:.12em}
.links{margin:0}
.links a{font:500 12px/1 var(--sans);letter-spacing:.12em;color:var(--ink);text-decoration:none;padding-bottom:4px;border-bottom:1px solid var(--ink);transition:color .2s,border-color .2s}
.links a i{font-style:normal;margin-left:4px}
.links a:hover{color:var(--shu);border-color:var(--shu)}
/* この土地のもの */
.meisan{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.meisan-h{margin:0 0 6px;font:500 10.5px/1.4 var(--sans);letter-spacing:.24em;color:var(--mute)}
.meisan ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.meisan li{font:500 13.5px/1.6 var(--serif);letter-spacing:.04em;color:var(--ink)}
.meisan a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);transition:color .2s,border-color .2s}
.meisan a:hover{color:var(--shu);border-color:var(--shu)}
.close{position:absolute;right:10px;top:10px;z-index:2;width:34px;height:34px;border:0;border-radius:50%;
  background:rgba(251,248,241,.92);color:var(--ink);font:400 20px/1 var(--sans);cursor:pointer;transition:background .2s,color .2s}
.close:hover{background:var(--ink);color:var(--paper)}

.foot{position:fixed;left:50%;transform:translateX(-50%);bottom:8px;z-index:4;margin:0;font:400 10px/1 var(--sans);letter-spacing:.08em;color:var(--mute);white-space:nowrap}

/* ── 小さい画面 ── */
@media (max-width:720px){
  .brand{left:18px;top:18px;gap:12px}
  /* 電話: 一覧は畳み、土地を選ぶ釦と検索だけ右上に(土地は紙から選ぶ) */
  .index{left:auto;right:14px;top:16px;bottom:auto;max-height:none;gap:6px;align-items:flex-end;animation-delay:.4s}
  .index-head,#index-list{display:none}
  .land-row{margin:0}
  .search input{width:120px;text-align:right}
  .tags{justify-content:flex-end;max-width:230px}
  .search-list{max-height:40vh;background:rgba(251,248,241,.94);padding:6px 10px;border:1px solid var(--line);border-radius:3px}
  .dock{left:18px;bottom:18px;gap:10px}.drift,.tour{width:64px;height:64px}.guide-ctl button{min-width:64px}
  .panel{left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:72vh}
  .foot{display:none}
  .maplibregl-ctrl-bottom-right{bottom:6px}
}

/* ── 店3つ（この土地のもの → 押すと開く） ── */
.meisan-b{appearance:none;border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;border-bottom:1px solid var(--line);transition:color .2s,border-color .2s}
.meisan-b:hover{color:var(--shu);border-color:var(--shu)}
.meisan li.open{flex-basis:100%}
.meisan li.open .meisan-b{color:var(--shu);border-color:var(--shu)}
/* 棚への札。朱を薄く敷いて「押せる紙」に見せる(CORN 2026-09-17「優しい背景色で分かりやすく」) */
.meisan-all{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:14px;align-items:center;margin-top:10px;padding:16px 18px;background:#F6E9E3;border:1px solid #E7CFC5;border-radius:3px;color:var(--ink);text-decoration:none;transition:background .2s,border-color .2s,transform .2s var(--ease)}
.meisan-all b{grid-column:1;font:600 14px/1.5 var(--serif);letter-spacing:.05em}
.meisan-all small{grid-column:1;font:400 11px/1.6 var(--sans);letter-spacing:.06em;color:var(--ink-2)}
.meisan-all i{grid-column:2;grid-row:1/3;font:600 18px/1 var(--serif);font-style:normal;color:var(--shu)}
.meisan-all:hover{background:#F2DED5;border-color:var(--shu);transform:translateY(-1px)}
.shops{margin:10px 0 6px;padding:12px 0 0;border-top:1px dashed var(--line);font-family:var(--sans)}
.shops-wait,.shops-none{margin:0;font-size:12px;color:var(--mute);letter-spacing:.06em}
.shops-h{margin:0 0 8px;font:500 10.5px/1.4 var(--sans);letter-spacing:.16em;color:var(--mute)}
.shops ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.shops li a{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:8px;background:var(--paper);border-radius:2px;text-decoration:none;color:var(--ink);transition:transform .2s var(--ease),background .2s}
.shops li a:hover{background:#fff;transform:translateY(-1px)}
.shops img{width:56px;height:56px;object-fit:cover;border-radius:2px;background:var(--paper-3)}
.shops-t{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;min-width:0}
.shops-t b{grid-column:1;font:500 12px/1.5 var(--sans);letter-spacing:.02em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.shops-t small{grid-column:1;font-size:10.5px;color:var(--mute);letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shops-p{grid-column:2;grid-row:1/3;align-self:center;text-align:right;white-space:nowrap}
.shops-p em{font:600 18px/1 var(--serif);font-style:normal;letter-spacing:-.01em}
.shops-p i{font-style:normal;font-size:10px;color:var(--mute);margin-left:3px}
.shops-p u{display:block;text-decoration:none;font-size:10.5px;color:var(--ink-2);margin-top:4px}
.shops-more{display:inline-block;margin-top:10px;font:500 11.5px/1 var(--sans);letter-spacing:.12em;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.shops-more:hover{color:var(--shu);border-color:var(--shu)}
.pr{margin:22px 0 0;font-size:12px;line-height:1.7;color:var(--ink-2);letter-spacing:.04em}

/* ── 土地（日本地図の面） ── */
.landpin{position:relative;width:0;height:0;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .35s}
body.wide .landpin{opacity:1;pointer-events:auto}
.landpin .dot{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--shu);box-shadow:0 0 0 6px var(--shu-soft);transition:transform .3s var(--ease)}
.landpin .lbl{position:absolute;left:14px;top:-12px;white-space:nowrap;font:800 15px/1.4 var(--serif);letter-spacing:.1em;color:var(--ink);text-shadow:0 0 6px var(--paper),0 0 2px var(--paper)}
.landpin:hover .dot,.landpin.on .dot{transform:scale(1.3)}
.landpin.on .lbl{color:var(--shu)}
/* 県で見る: 紙の下段。47県を地方ごとに横に並べる(その県の名所ぜんぶ) */
.land-sheet-prefs{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.land-sheet-prefs .prefs-h{margin:0 0 12px;font:500 10.5px/1.4 var(--sans);letter-spacing:.28em;color:var(--ink-2)}
.prefs-row{display:flex;align-items:baseline;gap:14px;margin:0 0 6px}
.prefs-row h4{margin:0;flex:0 0 68px;font:500 10px/1.4 var(--sans);letter-spacing:.2em;color:var(--mute)}
.prefs-row ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 4px}
.prefs-row button{appearance:none;border:0;background:transparent;padding:4px 6px;cursor:pointer;display:inline-flex;align-items:baseline;gap:4px;border-radius:2px}
.prefs-row button b{font:500 13.5px/1.4 var(--serif);letter-spacing:.06em;color:var(--ink-2)}
.prefs-row button small{font:400 10px/1 var(--sans);letter-spacing:.06em;color:var(--mute)}
.prefs-row button:hover{background:var(--paper)}
.prefs-row button:hover b{color:var(--ink)}
.prefs-row button.on b{color:var(--shu)}
.prefs-row button.stamped b::after{content:"印";display:inline-block;margin-left:5px;width:14px;height:14px;border-radius:50%;background:var(--shu);color:var(--paper);font:700 8px/14px var(--serif);text-align:center;letter-spacing:0;vertical-align:2px;transform:rotate(-8deg)}
@media (max-width:720px){.prefs-row{flex-direction:column;gap:2px}.prefs-row h4{flex:none}}
/* 寄った地図では、いまの土地の名所だけ。他の土地の名所は消す。引いた地図では名所を全部伏せる */
.pin.other{opacity:.45}.pin.other .lbl{display:none}   /* ほかの土地の名所も薄く見せる（何も無い、に見えないように） */
body.wide .pin{opacity:0;pointer-events:none}

/* ── 行き方・次へ・見どころ ── */
.way{margin:0 0 18px;font:400 12.5px/1.9 var(--sans);color:var(--ink-2);letter-spacing:.04em}
.way p{margin:0}
.way-walk::before{content:"→ ";color:var(--mute)}
.way-next{color:var(--ink)}
.way-next button{appearance:none;border:0;background:transparent;padding:0;font:600 13px/1 var(--serif);color:var(--shu);cursor:pointer;border-bottom:1px solid var(--shu)}
.checks{margin:0 0 20px;padding:14px 0 0;border-top:1px dashed var(--line)}
.checks-h{margin:0 0 8px;font:500 10.5px/1.4 var(--sans);letter-spacing:.24em;color:var(--shu)}
.checks ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.checks label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font:500 13.5px/1.7 var(--serif);letter-spacing:.03em;color:var(--ink)}
.checks input{appearance:none;width:16px;height:16px;margin-top:5px;border:1px solid var(--ink);border-radius:50%;flex:none;position:relative;cursor:pointer;transition:background .2s,border-color .2s}
.checks input:checked{background:var(--shu);border-color:var(--shu)}
.checks li.seen span{color:var(--mute);text-decoration:line-through;text-decoration-color:var(--line)}

/* ── 土地を選ぶ（一枚の紙） ── */
.land-row{margin:0 0 6px;display:flex;align-items:center;gap:10px}
.land-open{appearance:none;border:1px solid var(--ink);background:rgba(251,248,241,.85);padding:7px 12px;cursor:pointer;display:flex;align-items:baseline;gap:8px;transition:background .2s,color .2s}
.land-open span{font:800 15px/1 var(--serif);letter-spacing:.06em;color:var(--shu)}
.land-open i{font:500 10.5px/1 var(--sans);letter-spacing:.14em;color:var(--ink-2);font-style:normal}
.land-open:hover{background:var(--ink)}
.land-open:hover span,.land-open:hover i{color:var(--paper)}
.land-japan{appearance:none;border:0;background:transparent;padding:0;font:500 10.5px/1 var(--sans);letter-spacing:.14em;color:var(--mute);cursor:pointer;border-bottom:1px solid transparent}
.land-japan:hover{color:var(--ink);border-color:var(--ink)}
.land-sheet{position:fixed;inset:0;z-index:8;background:rgba(38,36,31,.28);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px}
.land-sheet[hidden]{display:none}
.land-sheet-card{position:relative;width:min(860px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--paper-2);border-radius:3px;padding:34px 38px 30px;box-shadow:0 24px 70px rgba(38,36,31,.22);animation:slide .4s var(--ease)}
.land-sheet-h{margin:0 0 22px;font:600 clamp(20px,2.4vw,26px)/1.3 var(--serif);letter-spacing:.06em;color:var(--ink)}
/* 土地を選んでいない(日本)時: 一覧は空なので頭と札を伏せ、「土地を選ぶ」だけ残す */
body.japan .index-head,body.japan #tags,body.japan #index-list{display:none}
/* 気分の札(左の一覧の上)。押すとその札の名所だけ。♨ 温泉 と 食 食べ歩き は印にも付く */
.tags{margin:2px 0 4px;display:flex;flex-wrap:wrap;gap:4px 6px}
.tags button,.tagline button{appearance:none;border:0;background:transparent;padding:2px 2px;font:500 11px/1.3 var(--sans);letter-spacing:.1em;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
/* 札の○。押すとその札の色で塗る。名所の印(○)も同じ色になるので、色が対応表になる */
.tags button .o,.tagline button .o{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink-2);background:transparent;transition:background .2s,border-color .2s}
.tags button:hover,.tagline button:hover{color:var(--ink)}
.tags button.on,.tagline button.on{color:var(--tagc)}
.tags button.on .o,.tagline button.on .o{background:var(--tagc);border-color:var(--tagc)}
.pin .mark{margin-left:4px;font-size:10.5px;color:var(--shu);letter-spacing:0}
.pin .mark:empty{display:none}
/* 札で絞った時、外れた名所の印は薄く(dim と同じ作り)。引いた地図で名前が伏さる時も ♨ は見せない */
/* 札の色が付いた印。○が札の色になり、少し大きく */
.pin.lit .dot{background:var(--tagc);transform:scale(1.3);box-shadow:0 0 0 3px rgba(251,248,241,.9)}
.pin.lit .lbl{color:var(--tagc)}
#index-list button.lit::before{background:var(--tagc);transform:scale(1.6)}
.tags button::before{display:none}
.tags button[hidden]{display:none}
.tags button small{font:400 10px/1 var(--sans);color:var(--mute);letter-spacing:.04em;margin-left:-1px}
.tags button.on small{color:var(--tagc)}
.tags button.none{opacity:.45}
.tags button.none .o{border-style:dashed}
#index-list .mark{font-style:normal;color:var(--shu);margin-left:5px;font-size:10px;letter-spacing:.1em}
.tagline{margin:-4px 0 10px;display:flex;flex-wrap:wrap;gap:4px 12px}
/* 紙の上段: どこでもいい / 朱印帳を持ち出す。土地の並びと同じ紙の上に、少し大きい二枚 */
.land-sheet-top{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 22px}
.land-sheet-top button{appearance:none;cursor:pointer;background:transparent;border:1px solid var(--ink);padding:9px 14px 8px;text-align:left;display:flex;flex-direction:column;gap:4px;border-radius:2px;transition:background .15s,color .15s}
.land-sheet-top button b{font:600 14px/1.2 var(--serif);letter-spacing:.08em;color:var(--ink)}
.land-sheet-top button small{font:400 10.5px/1.3 var(--sans);letter-spacing:.08em;color:var(--mute)}
.land-sheet-top button:hover{background:var(--ink)}
.land-sheet-top button:hover b,.land-sheet-top button:hover small{color:var(--paper)}
.land-sheet-top .sheet-any{border-color:var(--shu)}
.land-sheet-top .sheet-any b{color:var(--shu)}
.land-sheet-top .sheet-any:hover{background:var(--shu)}
/* だれかの朱印帳(#book/…)を開いた時。上に一行、印のある土地に朱の枠 */
.land-sheet-book{margin:-8px 0 16px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;font:500 12px/1.5 var(--sans);letter-spacing:.1em;color:var(--shu)}
.land-sheet-book button{appearance:none;border:0;background:transparent;padding:0;font:500 10.5px/1 var(--sans);letter-spacing:.14em;color:var(--mute);cursor:pointer;border-bottom:1px solid transparent}
.land-sheet-book button:hover{color:var(--ink);border-color:var(--ink)}
.land-sheet-body button.shared b::after{content:"印";display:inline-block;margin-left:8px;width:16px;height:16px;border-radius:50%;border:1px solid var(--shu);color:var(--shu);font:700 9px/14px var(--serif);text-align:center;letter-spacing:0;vertical-align:2px;transform:rotate(8deg)}
.land-sheet-body button.stamped.shared b::after{background:var(--shu);color:var(--paper)}
.land-sheet-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px 28px}
.land-sheet-body h3{margin:0 0 10px;font:500 10.5px/1.4 var(--sans);letter-spacing:.28em;color:var(--shu);padding-bottom:6px;border-bottom:1px solid var(--line)}
.land-sheet-body ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.land-sheet-body button{appearance:none;border:0;background:transparent;padding:6px 6px;width:100%;text-align:left;cursor:pointer;display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-radius:2px;transition:background .15s}
.land-sheet-body button b{font:600 15px/1.4 var(--serif);letter-spacing:.06em;color:var(--ink)}
.land-sheet-body button small{font:400 10.5px/1 var(--sans);letter-spacing:.1em;color:var(--mute)}
.land-sheet-body button:hover{background:var(--paper)}
.land-sheet-body button.on b{color:var(--shu)}
.land-sheet-body button.on::after{content:"●";color:var(--shu);font-size:8px;margin-left:6px}
@media (max-width:720px){.land-sheet{padding:12px;align-items:flex-end}.land-sheet-card{padding:24px 20px;max-height:80vh}}

/* ── 棚(店)= 右のパネルから左へ引き出される一枚 ── 同じ上下の余白・同じ紙・同じ影。パネルの左縁に密着する */
.shelf-frame{position:fixed;left:272px;top:26px;bottom:26px;right:466px;z-index:5;background:var(--paper-2);border-radius:3px 0 0 3px;overflow:hidden;
  box-shadow:0 1px 0 rgba(0,0,0,.04),0 18px 50px rgba(38,36,31,.12);animation:drawer .5s var(--ease)}
@keyframes drawer{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
.shelf-frame[hidden]{display:none}
.shelf-frame iframe{width:100%;height:100%;border:0;display:block;background:var(--paper-2)}
.shelf-close{position:absolute;right:14px;top:14px;z-index:2}
body.shelf-open .panel{border-radius:0 3px 3px 0;box-shadow:0 1px 0 rgba(0,0,0,.04),0 18px 50px rgba(38,36,31,.12),-1px 0 0 var(--line)}
body.shelf-open .dock{z-index:6}
/* 取っ手: パネルの左縁の真ん中。押すと棚が出る/しまう */
.drawer{position:fixed;right:466px;top:50%;transform:translateY(-50%);z-index:7;width:30px;padding:14px 0;border:1px solid var(--line);border-right:0;border-radius:3px 0 0 3px;
  background:#F6E9E3;color:var(--shu);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;transition:background .2s,left .2s}
.drawer i{font:600 16px/1 var(--serif);font-style:normal}
.drawer span{writing-mode:vertical-rl;font:500 10.5px/1 var(--sans);letter-spacing:.22em;color:var(--ink-2)}
.drawer:hover{background:#F2DED5}
.drawer[aria-expanded="true"] i{transform:rotate(180deg)}
body:not(.stay-open) #panel[hidden] ~ .drawer{display:none}   /* 名所も宿も閉じている時だけ引き出しを隠す（#stay も .panel なので、旧 .panel[hidden] ~ だと常に隠れてしまった） */
@media (max-width:1100px){.shelf-frame{right:26px;z-index:7}.drawer{display:none}}
@media (max-width:720px){.shelf-frame{left:12px;right:12px;top:12px;bottom:12px;border-radius:3px}}
@media (max-width:720px){.land-japan{display:none}}

/* 宿（右パネルの欄・引き出し・yado.html） */
.yado{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.yado-note{margin:8px 0 0;font:400 10.5px/1.6 var(--sans);letter-spacing:.06em;color:var(--mute)}
.yado-list{display:grid;gap:10px}
.yado-card{position:relative;padding:10px;border:1px solid var(--line);border-radius:3px;background:var(--paper);transition:border-color .2s}
.yado-card:hover{border-color:var(--shu)}
.yado-main{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:start;color:var(--ink);text-decoration:none}
.yado-main img{width:72px;height:72px;object-fit:cover;border-radius:2px;background:#eee}
.yado-map-b{position:absolute;right:10px;top:10px;appearance:none;font:500 10.5px/1 var(--sans);letter-spacing:.14em;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 10px;cursor:pointer}
.yado-map-b:hover,.yado-map-b[aria-expanded="true"]{color:var(--shu);border-color:var(--shu)}
.yado-map{margin-top:10px}.yado-map iframe{display:block;width:100%;height:260px;border:0;border-radius:2px;background:#eee}
.yado-tabs{display:grid;gap:8px;margin:18px 0 6px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.yado-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.yado-row-l{font:500 10.5px/1 var(--sans);letter-spacing:.24em;color:var(--mute);margin-right:6px;min-width:2.5em}
.yado-row button{appearance:none;font:500 11.5px/1 var(--sans);letter-spacing:.08em;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 11px;cursor:pointer}
.yado-row button[aria-pressed="true"]{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.yado-head{margin:12px 0 14px;font:400 11px/1.6 var(--sans);letter-spacing:.14em;color:var(--mute)}
.yado-t{display:grid;gap:3px;min-width:0}
.yado-t b{font:600 14px/1.45 var(--serif);letter-spacing:.03em}
.yado-d,.yado-a{font:400 11px/1.5 var(--sans);letter-spacing:.06em;color:var(--ink-2,#6b675e)}
.yado-a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.yado-m{display:flex;flex-wrap:wrap;gap:4px 12px;font:400 11.5px/1.5 var(--sans);letter-spacing:.04em;color:var(--ink-2,#6b675e)}
.yado-m em{font-style:normal;font-weight:500;color:var(--ink)}.yado-m i{font-style:normal}
.yado-mini .yado-card{padding:8px}.yado-mini .yado-main{grid-template-columns:56px 1fr}.yado-mini .yado-main img{width:56px;height:56px}
.drawer-yado{top:calc(50% + 108px)}   /* おみやげの取っ手（約95px）の下に 8px あけて */
.drawer[hidden]{display:none}           /* .drawer の display 指定より hidden を優先（宿データが無い県では出さない） */
.drawer-yado:hover{background:#E4E9E2}
.yado-page .shelf .item h3{font-size:clamp(18px,2.4vw,22px)}
.yado-all{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.yado-f{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.yado-f i{font:500 10px/1 var(--sans);letter-spacing:.1em;font-style:normal;color:var(--shu);border:1px solid currentColor;border-radius:999px;padding:3px 7px}
.yado-r{font:400 10.5px/1.5 var(--sans);letter-spacing:.06em;color:var(--mute)}
.yado-staybar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:18px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:3px;background:var(--paper)}
.yado-staybar label{display:inline-flex;align-items:center;gap:6px;font:500 11.5px/1 var(--sans);letter-spacing:.1em;color:var(--ink-2)}
.yado-staybar input,.yado-staybar select{font:inherit;font-size:13px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:6px 8px}
.yado-staybar button{appearance:none;font:500 11px/1 var(--sans);letter-spacing:.1em;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 10px;cursor:pointer}
.yado-staynote{flex-basis:100%;font:400 11px/1.6 var(--sans);letter-spacing:.06em;color:var(--mute)}
.yado-stay{display:block;margin-top:2px;font:500 11px/1.5 var(--sans);letter-spacing:.06em;color:var(--shu)}
/* 一覧のカード: 写真と名前を押すと地図で指す。楽天へはこの一行から（行き先を分ける） */
.yado-go{display:block;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font:500 11px/1.5 var(--sans);letter-spacing:.06em;color:var(--shu);text-decoration:none}
.yado-go:hover{text-decoration:underline}
.stay-list .yado-main{cursor:pointer}
.yado-mapbox{margin:14px 0 0}.yado-mapbox iframe{display:block;width:100%;height:320px;border:0;border-radius:3px;background:#eee}
.yado-mapcap{margin:6px 0 0;font:400 11px/1.6 var(--sans);letter-spacing:.06em;color:var(--mute)}
@media (max-width:640px){.yado-mapbox iframe{height:240px}}
.yado-more{display:block;margin:18px auto 0;appearance:none;font:500 12px/1 var(--sans);letter-spacing:.14em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:999px;padding:10px 22px;cursor:pointer}.yado-more:hover{color:var(--shu);border-color:var(--shu)}
.yado-more[hidden]{display:none}   /* display:block が hidden を上書きしてしまうため */
/* 泊まる: 右サイドバー＝宿の一覧（上に固定の地図、下がスクロール） */
.stay .stay-map{position:relative;aspect-ratio:16/10;background:var(--paper-3);flex:none}
.stay .stay-map iframe{width:100%;height:100%;border:0;display:block}
.stay-body{padding:18px 22px 24px}
.stay .area{margin:0 0 4px}.stay-count{font:400 10.5px/1 var(--sans);letter-spacing:.14em;color:var(--mute);margin-left:8px}
.stay-mapcap{margin:0 0 10px;font:400 11px/1.6 var(--sans);letter-spacing:.06em;color:var(--mute)}
.stay-ctl{display:grid;gap:6px;margin:0 0 10px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stay-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.stay-row-l{font:500 10px/1 var(--sans);letter-spacing:.2em;color:var(--mute);min-width:3.2em}
.stay-row button{appearance:none;font:500 11px/1 var(--sans);letter-spacing:.06em;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 9px;cursor:pointer}
.stay-row button[aria-pressed="true"]{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.stay-date{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.stay-date input,.stay-date select{font:inherit;font-size:12px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:4px 6px}
.stay-datenote{flex-basis:100%;font:400 10.5px/1.5 var(--sans);letter-spacing:.06em;color:var(--mute)}
.stay-head{margin:0 0 10px;font:400 11px/1.6 var(--sans);letter-spacing:.12em;color:var(--mute)}
.stay-list .yado-card{cursor:pointer}.stay-list .yado-card.on{border-color:var(--shu);background:#FBF6F3}
.stay-pop{font:500 12px/1.5 var(--sans);letter-spacing:.04em;color:var(--ink);width:250px}
.stay-pop .yado-card{border:0;padding:0;background:transparent}
.stay-pop .yado-card:hover{border-color:transparent}
.stay-pop-wrap .maplibregl-popup-content{padding:10px;background:var(--paper-2,#fffdf7);border:1px solid var(--line)}
.stay-pop-wrap .maplibregl-popup-tip{border-top-color:var(--paper-2,#fffdf7);border-bottom-color:var(--paper-2,#fffdf7)}
.stay-pop-wrap .maplibregl-popup-close-button{padding:0 6px;font-size:16px;color:var(--mute);background:transparent}
.maplibregl-popup-content{padding:8px 12px;border-radius:3px;box-shadow:0 8px 24px rgba(38,36,31,.14)}
.drawer-tour{top:calc(50% - 108px)}
.drawer-tour:hover{background:#F2E9D5}
body.stay-open .dock{z-index:6}
/* 泊まる: 検索の円（中心・縁のつまみ・上の縁の操作） */
/* 円の取っ手。中心＝つかんで動かす（✥）、縁＝つかんで大きさを変える（↔）。どちらも白地に朱で、手に取れる物に見えるように */
.stay-c,.stay-e{width:34px;height:34px;border-radius:50%;background:var(--paper);border:2px solid var(--shu);box-shadow:0 3px 10px rgba(38,36,31,.25);display:grid;place-items:center;cursor:grab;transition:transform .15s,box-shadow .15s}
.stay-e{width:28px;height:28px}
.stay-c svg,.stay-e svg{width:20px;height:20px;fill:none;stroke:var(--shu);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.stay-c svg circle{fill:var(--shu);stroke:none}
.stay-e svg{width:16px;height:16px;stroke-width:2}
.stay-c:hover,.stay-e:hover{transform:scale(1.12);box-shadow:0 5px 14px rgba(38,36,31,.3)}
body.stay-holding .stay-c,body.stay-holding .stay-e{cursor:grabbing}
body.stay-holding{cursor:grabbing}
.stay-c:active,.stay-e:active{transform:scale(1.2);background:var(--shu)}
.stay-c:active svg,.stay-e:active svg{stroke:#fff}
.stay-c:active svg circle{fill:#fff}
/* 最初だけ「つかんで動かす」と添える。一度つかんだら消す */
.stay-hint{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;padding:3px 8px;border-radius:999px;background:var(--shu);color:#fff;font:600 10.5px/1 var(--sans);letter-spacing:.1em;pointer-events:none}
body.stay-grabbed .stay-hint{display:none}
.stay-rim{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;justify-content:center;max-width:420px;padding:6px 8px;background:rgba(251,248,241,.94);border:1px solid var(--line);border-radius:999px;box-shadow:0 6px 20px rgba(38,36,31,.12);pointer-events:auto}
.stay-rim-g{display:inline-flex;gap:2px;border-right:1px solid var(--line);padding-right:8px}.stay-rim-g:last-of-type{border-right:0;padding-right:0}
.stay-rim button{appearance:none;font:500 10.5px/1 var(--sans);letter-spacing:.06em;color:var(--ink-2);background:transparent;border:1px solid transparent;border-radius:999px;padding:5px 8px;cursor:pointer;white-space:nowrap}
.stay-rim button[aria-pressed="true"]{color:var(--paper);background:var(--shu);border-color:var(--shu)}
.stay-rim-r{font:500 10.5px/1 var(--sans);letter-spacing:.1em;color:var(--shu);padding:0 4px;white-space:nowrap}
/* 巡る／泊まる の大きな切り替え（左上、土地の行の下） */
/* .index は縦の flex（max-height あり）なので、縮まないよう flex:none、.index button の点や細字の指定も上書き */
.index .mode-switch{flex:none;align-self:flex-start;display:inline-flex;width:max-content;margin:6px 0 8px;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--paper)}
.index .mode-switch button{appearance:none;border:0;background:transparent;padding:9px 20px;font:600 15px/1 var(--serif);letter-spacing:.14em;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s;white-space:nowrap;display:inline-block}
.index .mode-switch button::before{content:none}
.index .mode-switch button+button{border-left:1.5px solid var(--ink)}
.index .mode-switch button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.index .mode-switch button:not([aria-pressed="true"]):hover{color:var(--shu)}
body.stay-open .index .mode-switch{border-color:var(--shu)}body.stay-open .index .mode-switch button+button{border-left-color:var(--shu)}body.stay-open .index .mode-switch button[aria-pressed="true"]{background:var(--shu)}
@media (max-width:720px){.index .mode-switch{align-self:flex-end}.index .mode-switch button{padding:8px 14px;font-size:13px}}
/* 機械層（楽天市場をキーワードで引いた棚）。台帳の段と見分けがつくよう、上に太い線と余白 */
.shelf-sec.ichiba{margin-top:28px;padding-top:18px;border-top:2px solid var(--line)}
.ichiba-kw{display:block;margin-top:2px;font:400 10.5px/1.4 var(--sans);letter-spacing:.08em;color:var(--mute)}
.ichiba-list{border-top:0;padding-top:6px}
.ichiba-more{display:inline-block;margin-top:8px;padding:6px 12px;border:1px solid var(--line);border-radius:2px;background:transparent;font:500 11px/1 var(--sans);letter-spacing:.12em;color:var(--ink);cursor:pointer}
.ichiba-more:hover{background:var(--paper)}
/* 公的登録の名前（地域団体商標・GI）: 名前の札を横に流す */
.shelf-sec.brands{margin-top:28px;padding-top:18px;border-top:2px solid var(--line)}
.brand-chips{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.brand-chips li{display:inline-flex;align-items:baseline;gap:5px;padding:5px 9px;background:var(--paper);border-radius:2px;font:500 12px/1.4 var(--sans)}
.brand-chips li>a:first-child{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.brand-chips li>a:first-child:hover{border-bottom-color:var(--ink)}
.brand-src{font-size:9.5px;color:var(--mute);letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.brand-src:hover{color:var(--ink)}
.brands-src{margin:14px 0 0;font:400 10.5px/1.7 var(--sans);color:var(--mute);letter-spacing:.04em}
.brands-src a{color:var(--mute)}
/* もっと名所（Wikidata の機械層）の入口と札 */
/* さらに巡る: 巡る／泊まるの切替と同じ重さの札にする（台帳の名所の「続き」だと分かるように） */
.wd-row{margin:2px 0 0}
.index .wd-row button{appearance:none;display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border:1.5px solid var(--ink-2);border-radius:999px;background:var(--paper);font:600 13px/1 var(--serif);letter-spacing:.14em;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.index .wd-row button::before{content:none}
.index .wd-row button:hover:not(:disabled){color:var(--shu);border-color:var(--shu)}
.index .wd-row button[aria-pressed="true"]{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper)}
.index .wd-row button[aria-pressed="true"]:hover{background:var(--shu);border-color:var(--shu);color:var(--paper)}
.index .wd-row button:disabled{opacity:.3;cursor:default}
.index .wd-row button i{font-style:normal;font:500 10.5px/1 var(--sans);letter-spacing:.06em;color:inherit;opacity:.75}
.index .wd-row button i:empty{display:none}
@media (max-width:720px){.index .wd-row button{padding:6px 13px;font-size:12px}}
.wd-quote{margin:14px 0 0;padding:12px 14px;background:var(--paper);border-left:2px solid var(--line)}
.wd-quote blockquote{margin:0;font:400 13px/1.9 var(--sans);letter-spacing:.04em;color:var(--ink)}
.wd-quote-wait,.wd-none{margin:0;font:400 12px/1.7 var(--sans);letter-spacing:.06em;color:var(--mute)}
.wd-cite{display:inline-block;margin:8px 0 0;font:400 10.5px/1.7 var(--sans);letter-spacing:.04em;color:var(--mute)}
.wd-cite a{color:var(--mute)}
.wd-links{margin:12px 0 0}
#name .wd-ja{display:block;margin-top:4px;font:400 13px/1.4 var(--sans);letter-spacing:.08em;color:var(--mute)}
.wd-scene-note{display:block;margin-top:6px;font:400 10.5px/1.6 var(--sans);letter-spacing:.04em;color:var(--mute)}
.wd-links button{padding:6px 12px;border:1px solid var(--line);border-radius:2px;background:transparent;font:500 11px/1 var(--sans);letter-spacing:.12em;color:var(--shu);cursor:pointer}
.wd-links button:hover{border-color:var(--shu)}
body.wd-view #panel .area{color:var(--mute)}
body.wd-view #panel .pr{display:none}   /* 機械層の紙には買いものが無いので、楽天の断りは出さない */
/* もっと名所の凡例。押すとその群だけ */
.wd-legend{display:flex;flex-wrap:wrap;gap:4px 6px;margin:6px 0 0}
.index .wd-legend button{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:transparent;font:500 10.5px/1.4 var(--sans);letter-spacing:.08em;color:var(--mute);cursor:pointer}
.index .wd-legend button[aria-pressed="true"]{color:var(--ink);border-color:var(--ink);background:var(--paper)}
.index .wd-legend button i{width:7px;height:7px;border-radius:50%;display:block}
.index .wd-legend button small{font-size:9.5px;color:var(--mute);letter-spacing:0}
.wd-pop b{display:block;font:600 15px/1.4 var(--serif);letter-spacing:.04em}
.wd-pop small{display:block;margin-top:2px;font:400 10.5px/1.5 var(--sans);letter-spacing:.08em;color:var(--mute)}
.wd-pop-row{display:flex;flex-wrap:wrap;gap:6px 10px;margin:8px 0 0}
.wd-pop-row a,.wd-pop-row button{font:500 11px/1.4 var(--sans);letter-spacing:.08em;color:var(--shu);text-decoration:none;background:none;border:0;border-bottom:1px solid var(--line);padding:0 0 1px;cursor:pointer}
.wd-pop-row a:hover,.wd-pop-row button:hover{border-bottom-color:var(--shu)}
/* 地図で選んだ宿は一覧の一番上に立てる（並び順や絞り込みの外にいても、予約のリンクへ行けるように） */
.yado-card.yado-sel{border:1px solid var(--shu);background:var(--paper)}
.stay-back{display:block;width:100%;margin-top:10px;padding:9px 12px;border:1px solid var(--line);border-radius:2px;background:transparent;font:500 11px/1.4 var(--sans);letter-spacing:.1em;color:var(--mute);cursor:pointer;text-align:left}
.stay-back:hover{border-color:var(--shu);color:var(--shu)}
/* 円が画面より大きい時、縁の操作は画面の上端に留める（その印に下向きの小さな三角を消す） */
.stay-rim.stuck{box-shadow:0 6px 18px rgba(38,36,31,.18)}
.stay-rim.stuck::after{display:none}
.stay-mapcap[hidden]{display:none}
/* さらに巡るの紙を出している間は、台帳の名所の部品を出さない。
   天気や季節の一枚は後から非同期で届き、hidden を外してしまう（前に開いた名所のぶんが紛れ込んでいた） */
body.wd-view #weather,body.wd-view #seasons,body.wd-view #tagline,body.wd-view #guide,body.wd-view #checks,body.wd-view #meisan,body.wd-view #yado,body.wd-view #way,body.wd-view #sv-none{display:none!important}

/* ── 泊まる: 条件の帯（地図の下。左の列とサイドバーの間）──
   一つを選ぶもの＝区切りのある一本の札（巡る／泊まると同じ形）。オン／オフ＝チェックの札。見出しは左に小さく */
.stay-bar{position:fixed;left:calc(330px + (100vw - 330px - 490px) / 2);transform:translateX(-50%);width:max-content;max-width:calc(100vw - 850px);bottom:26px;z-index:6;
  display:grid;grid-template-columns:max-content minmax(0,max-content);gap:8px 12px;align-items:center;padding:12px 18px;
  background:rgba(251,248,241,.97);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(38,36,31,.14);font-family:var(--sans)}
.stay-bar[hidden]{display:none}
.sb-g{display:contents}   /* 見出しと中身を表の2列に並べる */
.sb-daterow{justify-self:start;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.sb-l{font:500 10.5px/1 var(--sans);letter-spacing:.16em;color:var(--mute);text-align:right}
.sb-seg{justify-self:start;display:inline-flex;flex-wrap:wrap;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--paper)}
.sb-seg button{appearance:none;border:0;background:transparent;padding:6px 12px;font:500 12px/1 var(--sans);letter-spacing:.06em;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.sb-seg button+button{border-left:1px solid var(--line)}
.sb-seg button[aria-checked="true"]{background:var(--shu);color:#fff}
.sb-seg button:not([aria-checked="true"]):hover{color:var(--shu)}
.sb-date{display:inline-flex;gap:6px}
.sb-date input,.sb-date select{font:500 12px/1 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:5px 7px}
.sb-togs{display:inline-flex;gap:6px}
.sb-tog{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font:500 12px/1 var(--sans);letter-spacing:.04em;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.sb-tog i{width:13px;height:13px;border:1.5px solid var(--mute);border-radius:3px;display:grid;place-items:center}
.sb-tog[aria-pressed="true"]{border-color:var(--shu);color:var(--ink)}
.sb-tog[aria-pressed="true"] i{background:var(--shu);border-color:var(--shu)}
.sb-tog[aria-pressed="true"] i::after{content:"";width:6px;height:3px;border:solid #fff;border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}
/* 円の縁の取っ手に半径だけ */
.stay-e-r{position:absolute;left:34px;top:50%;transform:translateY(-50%);white-space:nowrap;padding:3px 8px;border-radius:999px;background:rgba(251,248,241,.94);border:1px solid var(--line);font:500 11px/1 var(--sans);letter-spacing:.06em;color:var(--shu);pointer-events:none}
/* 帯がフッターの文字に重ならないように、泊まる間だけフッターを帯の下に隠す */
/* 泊まる中の地図の下の表記: 広告の断りを地図の見える所に。サイドバーの手前で折り返す */
body.stay-open .foot{visibility:visible}
.foot.foot-stay{left:24px;right:490px;transform:none;white-space:normal;text-align:center;line-height:1.55;padding:6px 12px;background:rgba(251,248,241,.9);border-radius:8px;color:var(--ink-2)}
@media (max-width:720px){.foot.foot-stay{display:none}}
@media (max-width:1180px){.stay-bar{left:calc(330px + (100vw - 330px - 40px) / 2);max-width:calc(100vw - 370px)}}
.sb-sum{display:none}
@media (max-width:720px){
  .stay-bar{left:8px;right:8px;top:8px;bottom:auto;transform:none;width:auto;max-width:none;padding:6px 8px;border-radius:12px;max-height:60vh;overflow:auto;gap:8px}
  .sb-sum{grid-column:1 / -1;display:flex;align-items:center;gap:8px;width:100%;appearance:none;border:0;background:transparent;padding:4px 2px;font:500 12px/1.3 var(--sans);letter-spacing:.04em;color:var(--ink-2);text-align:left;cursor:pointer}
  .sb-sum b{flex:none;padding:3px 9px;border-radius:999px;background:var(--shu);color:#fff;font-weight:600;letter-spacing:.12em}
  .sb-sum i{margin-left:auto;font-style:normal;color:var(--mute)}
  .stay-bar:not(.open) .sb-l,.stay-bar:not(.open) .sb-seg,.stay-bar:not(.open) .sb-daterow,.stay-bar:not(.open) .sb-axisbox{display:none}
  .sb-seg button{padding:5px 9px;font-size:11px}
}
/* 円（中心の取っ手と一体の DOM の輪）。押せるのは取っ手だけ、輪の中は地図と宿の印に通す */
.stay-cwrap{width:34px;height:34px}
.stay-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:1.5px dashed rgba(191,58,43,.8);background:rgba(191,58,43,.06);pointer-events:none;box-sizing:border-box}
.stay-ring.hold{border:2.5px solid var(--shu);background:rgba(191,58,43,.1)}
.stay-cwrap .stay-c{position:absolute;inset:0}
/* 選んだ宿（一覧の一番上）と、その下に続く並びの見出し */
.stay-seltag{margin:0 0 6px;font:500 10.5px/1.4 var(--sans);letter-spacing:.14em;color:var(--shu)}
.stay-restag{margin:16px 0 6px;padding-top:12px;border-top:1px solid var(--line);color:var(--mute);letter-spacing:.06em}
/* 選び方（3つの軸）: 帯の中で一番大きく。下に基準の一行 */
.sb-axisbox{justify-self:start;display:flex;flex-direction:column;gap:5px}
.sb-axes button{padding:8px 16px;font:600 13px/1 var(--serif);letter-spacing:.1em}
.sb-note{font:400 10.5px/1.4 var(--sans);letter-spacing:.04em;color:var(--mute)}
/* 地図に開いておく上位5軒（押した時のカードの小さい版） */
.stay-top{width:0;height:0}
.stay-top-c{position:absolute;display:flex;align-items:center;gap:7px;width:168px;padding:5px 8px 5px 5px;background:var(--paper-2,#fffdf7);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px rgba(38,36,31,.18);cursor:pointer;transition:transform .15s,box-shadow .15s}
.stay-top-c img{width:40px;height:40px;object-fit:cover;border-radius:5px;flex:none;background:#eee}
.stay-top-t{min-width:0;display:flex;flex-direction:column;gap:2px}
.stay-top-t strong{font:600 11.5px/1.3 var(--serif);color:var(--ink);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.stay-top-t small{font:500 10.5px/1 var(--sans);color:var(--shu);letter-spacing:.02em}
.stay-top-n{position:absolute;left:-7px;top:-7px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--shu);color:#fff;font:700 12px/1 var(--sans);box-shadow:0 1px 4px rgba(0,0,0,.2)}
.stay-top-line{position:absolute;left:0;top:0;height:1.5px;margin-top:-.75px;background:var(--shu);transform-origin:0 50%;pointer-events:none}
.stay-top-line[hidden]{display:none}
/* 本当の位置: 朱の丸に番号。カードがずれても場所はここ */
.stay-top-pt{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:var(--shu);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3);color:#fff;font:700 9px/12px var(--sans);text-align:center;z-index:1;pointer-events:none}
.stay-top.hot{z-index:3}
.stay-top.hot .stay-top-c{transform:scale(1.06);box-shadow:0 8px 22px rgba(38,36,31,.25);border-color:var(--shu)}
/* ④⑤は名前だけの小さな札 */
.stay-top.name-only .stay-top-c{width:auto;max-width:150px;padding:4px 9px 4px 14px;border-radius:999px}
.stay-top.name-only .stay-top-t strong{font-size:11px;-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis;display:block}
.stay-top.name-only .stay-top-t small{display:none}
.stay-top.name-only .stay-top-n{left:-6px;top:50%;transform:translateY(-50%);width:18px;height:18px;font-size:11px}
/* 一覧の順位 */
.yado-card{position:relative}
.yado-rank{position:absolute;left:-6px;top:-6px;z-index:1;min-width:18px;height:18px;padding:0 4px;border-radius:9px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);font:600 10.5px/1 var(--sans);color:var(--ink-2)}
.yado-rank.top{background:var(--shu);border-color:var(--shu);color:#fff}
@media (max-width:720px){.stay-top-c{width:132px}.stay-top-c img{width:32px;height:32px}}

/* ── 泊まる: 選び方の3つ（サイドバーの小さな地図のすぐ下。旅行サイトの見出しのような大きいボタン）── */
.stay-axes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 10px}
.ax{appearance:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 9px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper-2,#fffdf7);cursor:pointer;text-align:center;transition:border-color .15s,background .15s}
.ax:hover{border-color:var(--shu)}
.ax-i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(191,58,43,.1)}
.ax-i svg{width:17px;height:17px;fill:none;stroke:var(--shu);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ax-t{display:flex;flex-direction:column;gap:3px}
.ax-t b{font:700 12.5px/1.2 var(--serif);letter-spacing:.04em;color:var(--ink)}
.ax-t small{font:400 9.5px/1.25 var(--sans);letter-spacing:0;color:var(--mute)}
.ax[aria-pressed="true"]{background:var(--shu);border-color:var(--shu)}
.ax[aria-pressed="true"] .ax-i{background:rgba(255,255,255,.2)}
.ax[aria-pressed="true"] .ax-i svg{stroke:#fff}
.ax[aria-pressed="true"] .ax-t b{color:#fff}
.ax[aria-pressed="true"] .ax-t small{color:rgba(255,255,255,.85)}

/* ── 右のサイドバー: 条件でしぼる（畳める）── */
.stay-filter{margin:6px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.stay-filter summary{list-style:none;display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer}
.stay-filter summary::-webkit-details-marker{display:none}
.stay-filter summary b{flex:none;font:600 12px/1 var(--sans);letter-spacing:.12em;color:var(--ink)}
.stay-filter summary b::before{content:"▸ ";color:var(--shu)}
.stay-filter[open] summary b::before{content:"▾ "}
.sf-now{min-width:0;font:400 11px/1.3 var(--sans);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stay-filter-body{display:grid;gap:10px;padding:2px 12px 12px}
.sf-row{display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:start}
.sf-l{padding-top:6px;font:500 10.5px/1 var(--sans);letter-spacing:.12em;color:var(--mute)}
.sf-chips{display:flex;flex-wrap:wrap;gap:5px}
.sf-chips button{appearance:none;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2,#fffdf7);font:500 11.5px/1 var(--sans);color:var(--ink-2);cursor:pointer}
.sf-chips button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.sf-date{display:flex;flex-wrap:wrap;gap:6px}
.sf-date input,.sf-date select{font:500 12px/1 var(--sans);color:var(--ink);background:var(--paper-2,#fffdf7);border:1px solid var(--line);border-radius:8px;padding:5px 7px}
.sf-check{display:flex;align-items:center;gap:6px;font:500 11.5px/1.2 var(--sans);color:var(--ink-2);cursor:pointer}
.sf-check input{accent-color:var(--shu)}

/* ── スマホの泊まる ──
   宿の紙は半分の高さで止め、取っ手で広げる。地図には円と①〜⑤だけを残す */
.stay-grip{display:none}
@media (max-width:720px){
  #stay.panel{max-height:none;height:48vh;transition:height .3s var(--ease)}
  #stay.panel.tall{height:86vh}
  .stay-grip{display:block;flex:none;appearance:none;border:0;background:transparent;height:22px;cursor:pointer;position:relative}
  .stay-grip::before{content:"";position:absolute;left:50%;top:8px;width:44px;height:5px;border-radius:3px;background:var(--line);transform:translateX(-50%)}
  /* スマホでは紙の中の Google マップは出さない（下の地図がそのまま場所を示す。二重になり宿の情報を押し出していた） */
  #stay .stay-map,#stay .stay-mapcap{display:none!important}
  #stay .stay-close{top:2px;right:6px}
  .stay-body{padding:6px 14px 18px}
  /* 泊まる中は、縦書きの題字・さらに巡る・左の一覧を隠す（地図を空ける）。巡る／泊まるの切替は残す */
  body.stay-open .title,body.stay-open .lede,body.stay-open .wd-row,body.stay-open #wd-legend,body.stay-open .index-head,body.stay-open .land-row,body.stay-open .search,body.stay-open #tags,body.stay-open #index-list,body.stay-open .dock{display:none!important}
  body.stay-open .index{top:10px;bottom:auto;right:10px;left:auto}
  /* 選び方の3つは一行に */
  .stay-axes{gap:5px;margin:2px 0 8px}
  .ax{flex-direction:row;gap:5px;padding:7px 6px;border-radius:10px;justify-content:center}
  .ax-i{width:22px;height:22px}.ax-i svg{width:13px;height:13px}
  .ax-t b{font-size:11px;letter-spacing:0;white-space:nowrap}
  .ax-t small{display:none}
  /* ①②③は小さな札、④⑤は番号の丸だけ */
  .stay-top.name-only .stay-top-c,.stay-top.name-only .stay-top-line{display:none}
  .stay-top-c{width:118px;padding:4px 6px 4px 4px;gap:5px}
  .stay-top-c img{width:28px;height:28px}
  .stay-top-t strong{font-size:10.5px;-webkit-line-clamp:1}
  .stay-top-t small{font-size:9.5px}
  .stay-top-n{width:16px;height:16px;font-size:10px;left:-5px;top:-5px}
  .stay-hint{font-size:9.5px;padding:2px 6px}
}
/* ①〜⑤の札を押した時: 札そのものが詳しいカードに切り替わる（左上の番号は残す） */
.stay-top-x{display:none}
.stay-top.open{z-index:5}
.stay-top.open .stay-top-c{width:270px;display:block;padding:12px;border:2px solid var(--shu);box-shadow:0 10px 28px rgba(38,36,31,.25);cursor:default}
.stay-top.open .stay-top-c > img,.stay-top.open .stay-top-c > .stay-top-t{display:none}
.stay-top.open .stay-top-x{display:block}
.stay-top.open .stay-top-x .yado-card{border:0;padding:0;background:transparent}
.stay-top.open .stay-top-n{width:24px;height:24px;font-size:13px;left:-10px;top:-10px}

/* ④⑤（名前だけの札）を開いた時は、丸い札の指定を外して①〜③と同じ詳しいカードに */
.stay-top.open.name-only .stay-top-c{width:270px;max-width:none;border-radius:8px;padding:12px}
.stay-top.open.name-only .stay-top-n{top:-10px;left:-10px;transform:none;width:24px;height:24px;font-size:13px}
/* 円の中心は小さな目印だけ（押せない） */
.stay-dot{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--shu);box-shadow:0 0 0 2px rgba(255,255,255,.9);pointer-events:none}
.stay-cwrap{pointer-events:none}
/* 縁の取っ手は少し小さく（2つ並ぶので）。「つかんで動かす」は取っ手の右に */
.stay-c{width:30px;height:30px}
.stay-c .stay-hint{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}
/* 縁の札: 朱の地に白の文字。左＝動かす、右＝大きさ（半径）。一枚なので二つはいつも一緒 */
.stay-pill{display:flex;align-items:stretch;border-radius:999px;background:var(--shu);box-shadow:0 4px 14px rgba(120,30,20,.35);overflow:hidden;user-select:none;touch-action:none}
.stay-pill button{appearance:none;border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:5px;padding:7px 11px;font:600 11.5px/1 var(--sans);letter-spacing:.06em;cursor:grab;touch-action:none;white-space:nowrap}
.stay-pill button+button{border-left:1px solid rgba(255,255,255,.35)}
.stay-pill button:hover{background:rgba(255,255,255,.14)}
.stay-pill.grab button{cursor:grabbing}
.stay-pill svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.stay-pill .sp-move svg circle{fill:#fff;stroke:none}
.stay-pill .stay-e-r{position:static;transform:none;padding:0;border:0;background:none;color:#fff;font:600 11.5px/1 var(--sans);letter-spacing:.04em;pointer-events:none}
@media (max-width:720px){.stay-pill button{padding:8px 10px}.stay-pill .sp-move span{display:none}}

/* 縁の札は縦に: 上＝動かす、下＝半径 */
.stay-pill{flex-direction:column;border-radius:14px}
.stay-pill button{justify-content:flex-start;padding:7px 12px}
.stay-pill button+button{border-left:0;border-top:1px solid rgba(255,255,255,.35)}
@media (max-width:720px){.stay-pill .sp-move span{display:inline}}
/* 札が画面の端に留められている時（本当の縁は画面の外）: 少し薄い縁取りで知らせる */
.stay-pill.stuck{box-shadow:0 0 0 3px rgba(255,255,255,.9),0 4px 14px rgba(120,30,20,.35)}
/* 選んだ宿の下の Google マップ（PC）。サイドバーの上端には置かない */
#stay .stay-mapcap{display:none}
#stay > .stay-map{display:none}
.stay-list .stay-map{display:block;aspect-ratio:auto;width:auto;height:220px;margin:10px -8px -8px;overflow:hidden;border-top:1px solid var(--line);border-radius:0 0 2px 2px}   /* 宿のカードの枠の中に、左右いっぱいで */
.stay-list .stay-map iframe{width:100%;height:100%;border:0;display:block}
@media (min-width:721px){#stay .stay-body{padding-top:44px}}

/* 選び方の3つ: 縦幅を詰める（アイコンを左、名前と基準を右に） */
@media (min-width:721px){
  .ax{flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;padding:7px 8px;text-align:left}
  .ax-i{flex:none;width:24px;height:24px}
  .ax-i svg{width:14px;height:14px}
  .ax-t{gap:2px;min-width:0}
  .ax-t b{font-size:12px;white-space:nowrap}
  .ax-t small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* カードの下の一行: 左＝楽天トラベルで見る、右＝地図を下に表示 */
.yado-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.yado-foot .yado-go{margin:0;padding:0;border:0}
.yado-mapbtn{appearance:none;flex:none;display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2,#fffdf7);font:500 11px/1 var(--sans);letter-spacing:.04em;color:var(--ink-2);cursor:pointer}
.yado-mapbtn::before{content:"";width:9px;height:9px;border:1.6px solid currentColor;border-radius:50% 50% 50% 0;transform:rotate(-45deg);margin-right:2px}
.yado-mapbtn:hover{border-color:var(--shu);color:var(--shu)}

/* 選び方の3つが右で切れないように: 列は縮められる幅に、名前は必要なら2行に */
.stay-axes{grid-template-columns:repeat(3,minmax(0,1fr))}
.ax{min-width:0}
@media (min-width:721px){
  .ax-t b{white-space:normal;line-height:1.2}
  .ax-t small{white-space:normal;line-height:1.25}
}
/* 名前は一行で。アイコンは丸を外して小さく、基準の行は収まらなければ「…」（全文は札に重ねると出る） */
@media (min-width:721px){
  .ax{gap:5px;padding:7px 7px}
  .ax-i{width:16px;height:16px;background:none}
  .ax[aria-pressed="true"] .ax-i{background:none}
  .ax-i svg{width:15px;height:15px}
  .ax-t b{white-space:nowrap;font-size:11.5px;letter-spacing:0}
  .ax-t small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}
}
/* ★地図の印（maplibregl-marker）の一番外側には position を書かない。
   .maplibregl-marker{position:absolute} を上書きすると印が通常の並びに落ちて縦に積まれ、ズームすると「ずれていく」
   （KOKOTOCO でも同じ現象: absolute のままで子の absolute の基準になるので relative は要らない） */
/* 選び方の3つ＝「巡る｜泊まる」と同じ、1本につながった切替。名前だけを大きく、基準は下に1行 */
.stay-axes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:2px 0 6px;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--paper)}
.stay-axes .ax{flex-direction:row;justify-content:center;align-items:center;gap:0;padding:10px 4px;border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0}
.stay-axes .ax+.ax{border-left:1.5px solid var(--ink)}
.stay-axes .ax:hover{background:rgba(191,58,43,.06);transform:none}
.stay-axes .ax-i,.stay-axes .ax-t small{display:none}
.stay-axes .ax-t b{font:600 13px/1 var(--serif);letter-spacing:.06em;color:var(--ink-2);white-space:nowrap}
.stay-axes .ax[aria-pressed="true"]{background:var(--shu)}
.stay-axes .ax[aria-pressed="true"] .ax-t b{color:#fff}
.stay-axes-note{margin:0 0 12px;padding:0 6px;font:400 11px/1.5 var(--sans);letter-spacing:.04em;color:var(--mute);text-align:center}
@media (max-width:720px){.stay-axes .ax{padding:8px 2px}.stay-axes .ax-t b{font-size:11.5px;letter-spacing:0}.stay-axes-note{font-size:10.5px;margin-bottom:8px}}
/* 英語の時、宿の名前の下にローマ字の読み */
.yado-romaji{display:block;margin:-1px 0 3px;font:500 10.5px/1.3 var(--sans);letter-spacing:.04em;color:var(--ink-2)}
.stay-prtop{display:none;margin:0 0 6px;font:400 10px/1.45 var(--sans);letter-spacing:.02em;color:var(--mute)}
@media (max-width:720px){.stay-prtop{display:block}}
/* 巡る｜さらに巡る を上の段に並べ、泊まるは下の段いっぱいに。3つとも同じ丸い札・同じ文字で、選んでいるものだけ塗る */
.index .mode-grid{flex:none;align-self:flex-start;display:grid;grid-template-columns:auto auto;gap:6px;margin:6px 0 8px}
.index .mode-grid button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border:1.5px solid var(--ink);border-radius:999px;background:var(--paper);font:600 15px/1 var(--serif);letter-spacing:.14em;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.index .mode-grid button::before{content:none}
.index .mode-grid button i{font:500 11px/1 var(--sans);font-style:normal;letter-spacing:.02em;color:inherit;opacity:.7}
.index .mode-grid button i:empty{display:none}
.index .mode-grid #land-stay{grid-column:1 / -1}
.index .mode-grid button:not([aria-pressed="true"]):not(:disabled):hover{color:var(--shu);border-color:var(--shu)}
.index .mode-grid #mode-tour[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.index .mode-grid #wd-more[aria-pressed="true"]{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper)}
.index .mode-grid #land-stay[aria-pressed="true"]{background:var(--shu);border-color:var(--shu);color:#fff}
.index .mode-grid button:disabled{opacity:.3;cursor:default}
@media (max-width:720px){.index .mode-grid{align-self:flex-end}.index .mode-grid button{padding:8px 13px;font-size:13px;letter-spacing:.08em}}

/* 地図の上の文字が街の線に埋もれて読みにくい → 台紙は敷かず、地図の地名と同じ「紙色の縁どり(ハロー)」で文字を浮かせる。
   さらに左端だけ地図をごく薄く霞ませる（境目の見えないグラデーション） */
.index,.index button,.index a,.index input,.dock .drift span,.dock .tour span{text-shadow:0 0 3px var(--paper),0 0 3px var(--paper),0 0 6px var(--paper),0 0 10px var(--paper)}
.index #index-list li,.index .tags label{paint-order:stroke fill}
.drift svg circle,.tour svg circle{fill:rgba(251,248,241,.55)}
body::after{content:"";position:fixed;left:0;top:0;bottom:0;width:380px;z-index:4;pointer-events:none;
  background:linear-gradient(90deg,rgba(251,248,241,.66) 0,rgba(251,248,241,.44) 55%,rgba(251,248,241,0) 100%)}
body.stay-open::after{display:none}
@media (max-width:720px){body::after{display:none}}
.index .mode-grid button[aria-pressed="true"],.index .mode-grid button[aria-pressed="true"] *{text-shadow:none}

/* 空: いまの空模様の一行。地図の右下、控えめに */
.sora-note{position:fixed;right:18px;bottom:64px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  font-size:12px;letter-spacing:.08em;color:var(--ink-2);pointer-events:none;
  text-shadow:0 0 3px #fbf8f1,0 0 6px #fbf8f1}
.sora-note span:not(:first-child){color:#b8412c}

/* 天気の札: 土地の印の右上に一文字。寄って名所を見ているときは出さない */
.sora-wx{pointer-events:none}
.sora-wx-i{display:inline-block;min-width:20px;padding:1px 4px;border-radius:3px;font:600 12px/1.3 "Shippori Mincho",serif;text-align:center;
  background:rgba(251,248,241,.92);border:1px solid currentColor;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.sora-wx-i.sun{color:#b8412c}.sora-wx-i.cloud{color:#6b6660}.sora-wx-i.rain{color:#1e6ec8}.sora-wx-i.snow{color:#5a8fb0}
body:not(.wide) .sora-wx{display:none}


/* 夜の明かり: 地図の上の札を明るい字に */
body.sora-night .pin .lbl,body.sora-night .landpin .lbl{color:#f1e6cf;text-shadow:0 0 4px rgba(10,12,22,.95),0 0 2px rgba(10,12,22,.95)}
body.sora-night .sora-note{color:#e6dcc6;text-shadow:0 0 4px rgba(10,12,22,.95)}
.sora-note[hidden]{display:none}

/* 夜の明かりの間だけ、左の紙(題・一覧・釦)も夜の色に。地図の外の紙面(泊まる等)は変えない */
body.sora-night .brand,body.sora-night .index,body.sora-night .dock{--ink:#EFE6D2;--ink-2:#CFC5B0;--mute:#8E8878;--line:rgba(239,230,210,.28);--paper:#141623;--paper-2:#1B1E2D;--shu:#E0705A}
body.sora-night::after{background:linear-gradient(90deg,rgba(14,16,26,.72) 0,rgba(14,16,26,.45) 55%,rgba(14,16,26,0) 100%)}
body.sora-night .index,body.sora-night .index button,body.sora-night .index a,body.sora-night .index input,body.sora-night .dock .drift span,body.sora-night .dock .tour span{text-shadow:0 0 3px #141623,0 0 6px #141623,0 0 10px #141623}
body.sora-night .guide-ctl button{background:rgba(27,30,45,.85)}
body.sora-night .drift svg circle,body.sora-night .tour svg circle{fill:rgba(20,22,35,.6)}
body.sora-night .title{color:#EFE6D2;text-shadow:0 0 6px #141623}

/* 右端の印: 地図の見え方を変える。消えている=墨の細い丸、出している=朱で塗った丸。名前は押す/触れると左に出る */
.inkan{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;gap:10px}
.inkan button{position:relative;appearance:none;width:40px;height:40px;padding:0;border-radius:50%;cursor:pointer;
  border:1.5px solid var(--ink-2);background:rgba(251,248,241,.88);color:var(--ink);font:700 17px/1 var(--serif);
  box-shadow:0 1px 3px rgba(0,0,0,.08);transition:background .25s,color .25s,border-color .25s,transform .15s}
.inkan button:hover{transform:scale(1.06)}
.inkan button[aria-pressed="true"]{background:var(--shu);border-color:var(--shu);color:#fff;box-shadow:0 0 0 3px rgba(183,67,43,.18)}
.inkan .ink-n{position:absolute;right:calc(100% + 10px);top:50%;transform:translate(6px,-50%);white-space:nowrap;pointer-events:none;
  font:600 12.5px/1 var(--serif);letter-spacing:.12em;color:var(--ink);opacity:0;transition:opacity .2s,transform .2s;
  text-shadow:0 0 3px var(--paper),0 0 6px var(--paper),0 0 10px var(--paper)}
.inkan button:hover .ink-n,.inkan button:focus-visible .ink-n,.inkan button[aria-pressed="true"] .ink-n{opacity:1;transform:translate(0,-50%)}
body.sora-night .inkan button{background:rgba(27,30,45,.85);border-color:#CFC5B0;color:#EFE6D2}
body.sora-night .inkan button[aria-pressed="true"]{background:#C9573F;border-color:#C9573F;color:#fff}
body.sora-night .inkan .ink-n{color:#EFE6D2;text-shadow:0 0 4px #141623,0 0 8px #141623}
/* 電話の幅: 右上の角に横一列、名前は出さない */
@media (max-width:720px){.inkan{top:12px;right:12px;transform:none;flex-direction:row;gap:6px}.inkan button{width:34px;height:34px;font-size:15px}.inkan .ink-n{display:none}}
/* 右の紙(名所・泊まる)が開いたら、印は紙の左の縁の上のほうへ寄る(真ん中は「おみやげ」の取っ手が使う)。棚を広げている間は隠す */
.inkan{transition:right .3s var(--ease),top .3s var(--ease)}
body:has(.panel:not([hidden])) .inkan{right:calc(min(440px,100vw - 52px) + 26px + 12px);top:26px;transform:none}
body.shelf-open .inkan{display:none}
@media (max-width:720px){body:has(.panel:not([hidden])) .inkan{display:none}}
/* 印は地図の右上に横一列(縦一列から変更)。名前は印の下に出す */
.inkan{top:18px;right:18px;transform:none;flex-direction:row;gap:10px}
.inkan .ink-n{right:auto;left:50%;top:calc(100% + 7px);transform:translate(-50%,-4px)}
.inkan button:hover .ink-n,.inkan button:focus-visible .ink-n,.inkan button[aria-pressed="true"] .ink-n{transform:translate(-50%,0)}
body:has(.panel:not([hidden])) .inkan{top:26px}
@media (max-width:720px){.inkan{top:12px;right:12px;gap:6px}}
/* 印は上の真ん中に固定。右の紙が開いたら、残った地図の幅の真ん中へ */
.inkan{right:auto;left:50%;transform:translateX(-50%);transition:left .3s var(--ease)}
body:has(.panel:not([hidden])) .inkan{right:auto;left:calc((100vw - min(440px,100vw - 52px) - 26px) / 2);transform:translateX(-50%)}
@media (max-width:720px){.inkan{left:auto;right:12px;transform:none}}
body:has(.panel:not([hidden])) .inkan{left:min(50%, calc(100vw - min(440px,100vw - 52px) - 26px - 150px))}

/* 道: 印の下に街道名の札。押すとその街道へ */
.kaido-list{position:absolute;left:50%;top:calc(100% + 30px);transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:max-content;max-width:min(560px,70vw)}
.kaido-list button{appearance:none;cursor:pointer;padding:5px 10px;border:1px solid #c8894a;border-radius:999px;background:rgba(251,248,241,.92);
  color:#8a5226;font:600 12.5px/1 var(--serif);letter-spacing:.1em;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.kaido-list button:hover{background:#fbf1e4}
.kaido-list button[aria-pressed="true"]{background:#9a5f2c;border-color:#9a5f2c;color:#fff}
body.sora-night .kaido-list button{background:rgba(27,30,45,.88);color:#f0c985;border-color:#d9a45a}
body.sora-night .kaido-list button[aria-pressed="true"]{background:#d9a45a;color:#141623}
@media (max-width:720px){.kaido-list{left:auto;right:0;transform:none;max-width:calc(100vw - 24px);justify-content:flex-end}}
.inkan .kaido-list button{width:auto;height:auto;border-radius:999px;border-width:1px;font-size:12.5px;line-height:1;white-space:nowrap;transform:none}
.inkan .kaido-list button:hover{transform:none}
/* 最終: 印は右端に縦一列。名前は左に。道の札は「道」の左に縦に並ぶ(引き出し) */
.inkan{left:auto;right:18px;top:50%;transform:translateY(-50%);flex-direction:column;transition:right .3s var(--ease),top .3s var(--ease)}
.inkan .ink-n{left:auto;right:calc(100% + 10px);top:50%;transform:translate(6px,-50%)}
.inkan button:hover .ink-n,.inkan button:focus-visible .ink-n,.inkan button[aria-pressed="true"] .ink-n{transform:translate(0,-50%)}
body:has(.panel:not([hidden])) .inkan{left:auto;right:calc(min(440px,100vw - 52px) + 26px + 12px);top:26px;transform:none}
.kaido-list{left:auto;right:calc(100% + 14px);top:auto;bottom:0;transform:none;flex-direction:column;flex-wrap:nowrap;align-items:flex-end;gap:5px;max-width:none}
.inkan:has(#kaido-list) [data-k="kaido"] .ink-n{display:none}
@media (max-width:720px){
  .inkan{top:12px;right:12px;transform:none;flex-direction:row}
  .kaido-list{right:0;bottom:auto;top:calc(100% + 8px);flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 24px)}
}
/* 最終2: 印は左下の道具の並び(次の場所へ・観光・言語/声)の右に横一列。名前は上、道の札は上に積む */
.dock .inkan,body:has(.panel:not([hidden])) .dock .inkan{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;flex-direction:row;gap:8px;z-index:auto;align-self:flex-end;margin-bottom:2px}
.dock .inkan button{width:36px;height:36px;font-size:15.5px}
.dock .inkan .ink-n{left:50%;right:auto;top:auto;bottom:calc(100% + 7px);transform:translate(-50%,4px)}
.dock .inkan button:hover .ink-n,.dock .inkan button:focus-visible .ink-n,.dock .inkan button[aria-pressed="true"] .ink-n{transform:translate(-50%,0)}
/* 出している名前が隣と重ならないよう、名前は触れている時だけ */
.dock .inkan button[aria-pressed="true"]:not(:hover):not(:focus-visible) .ink-n{opacity:0}
.dock .kaido-list{position:absolute;left:0;right:auto;top:auto;bottom:calc(100% + 12px);transform:none;flex-direction:row;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:5px;width:300px;max-width:none}
.dock .inkan:has(#kaido-list) [data-k="kaido"] .ink-n{display:none}
@media (max-width:720px){.dock .inkan{display:flex}.dock .inkan button{width:32px;height:32px;font-size:14px}.dock .kaido-list{width:calc(100vw - 36px)}}
.dock .inkan .kaido-list button{width:auto;height:auto;font-size:12.5px;border-radius:999px;padding:5px 10px}
/* 最終3: 印は左の紙の「土地の行」のすぐ下に、見出し「重ねる」付きで一列。名前は触れた印の下、道の札は行の右(地図の上)に開く */
.index .inkan,body:has(.panel:not([hidden])) .index .inkan{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;z-index:2;
  display:flex;flex-direction:row;align-items:center;gap:7px;margin:4px 0 12px}
.index .inkan-h{font:600 11.5px/1 var(--serif);letter-spacing:.2em;color:var(--mute);margin-right:4px}
.index .inkan button{width:32px;height:32px;font-size:14.5px;text-shadow:none}
.index .inkan .ink-n{left:50%;right:auto;top:calc(100% + 5px);bottom:auto;transform:translate(-50%,-3px);font-size:11.5px}
.index .inkan button:hover .ink-n,.index .inkan button:focus-visible .ink-n{opacity:1;transform:translate(-50%,0)}
.index .inkan button[aria-pressed="true"]:not(:hover):not(:focus-visible) .ink-n{opacity:0}
.index .kaido-list{position:absolute;left:calc(100% + 16px);right:auto;top:50%;bottom:auto;transform:translateY(-50%);flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:5px;width:330px;max-width:none}
.index .inkan .kaido-list button{width:auto;height:auto;font-size:12.5px;border-radius:999px;padding:5px 10px}
.index .inkan:has(#kaido-list) [data-k="kaido"] .ink-n{display:none}
@media (max-width:720px){.index .kaido-list{left:0;top:calc(100% + 8px);transform:none;width:calc(100vw - 40px)}}
.index .inkan button::before{content:none}

/* 重ねる(最終): 土地の行の一語から開く紙。印の丸はやめる */
.index .land-row{position:relative}
.kasane-open[aria-expanded="true"]{color:var(--ink);border-color:var(--ink)}
.kasane-sheet{position:absolute;z-index:8;margin-top:-2px;width:290px;padding:8px;background:var(--paper-2);border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(38,36,31,.14);display:flex;flex-direction:column;gap:2px}
.kasane-sheet[hidden]{display:none}
.index .ks-item{appearance:none;display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;column-gap:8px;row-gap:3px;align-items:center;text-align:left;
  padding:9px 10px;border:0;background:transparent;cursor:pointer;text-shadow:none}
.index .ks-item::before{content:"";grid-row:1 / span 2;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--ink-2);background:transparent;transform:none}
.index .ks-item[aria-pressed="true"]::before{background:var(--shu);border-color:var(--shu)}
.ks-item b{font:700 14px/1.2 var(--serif);letter-spacing:.08em;color:var(--ink)}
.ks-item small{font:500 11px/1.3 var(--sans);letter-spacing:.04em;color:var(--mute)}
.ks-item:hover{background:rgba(38,36,31,.05)}
.kaido-slot{padding:0 10px 4px 36px}
.kaido-slot .kaido-list{position:static;transform:none;display:flex;flex-wrap:wrap;gap:5px;width:auto}
.index .kaido-slot .kaido-list button{appearance:none;width:auto;height:auto;padding:4px 9px;border:1px solid #c8894a;border-radius:999px;background:transparent;color:#8a5226;font:600 12px/1 var(--serif);letter-spacing:.08em;cursor:pointer;text-shadow:none}
.index .kaido-slot .kaido-list button::before{content:none}
.index .kaido-slot .kaido-list button[aria-pressed="true"]{background:#9a5f2c;border-color:#9a5f2c;color:#fff}
.kasane-now{margin:2px 0 10px;display:flex;align-items:center;gap:8px;font:600 12px/1 var(--serif);letter-spacing:.08em;color:var(--shu)}
.kasane-now[hidden]{display:none}
.kasane-now .kn-h{font:500 10.5px/1 var(--sans);letter-spacing:.14em;color:var(--mute)}
.index #kasane-clear{appearance:none;border:0;background:transparent;padding:2px 4px;cursor:pointer;color:var(--mute);font-size:13px}
.index #kasane-clear::before{content:none}
.index #kasane-clear:hover{color:var(--ink)}
body.sora-night .kasane-sheet{background:#1B1E2D;border-color:rgba(239,230,210,.2)}
body.sora-night .index .kaido-slot .kaido-list button{color:#f0c985;border-color:#d9a45a}
body.ks-open .index{z-index:9}
/* 重ねるの紙は土地の行から上へ開く(行が画面の下のほうにあるため) */
.land-row .kasane-sheet{left:0;bottom:calc(100% + 8px);margin:0;max-height:calc(100vh - 140px);overflow:auto}

/* 重ねている: 見出し+札(札ごとに×)。札は朱の細い枠 */
.kasane-now{flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.kasane-now .kn-h{margin-right:2px}
#kasane-names{display:contents}
.index .kn-chip{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 11px;border:1px solid var(--shu);border-radius:999px;
  background:rgba(251,248,241,.92);color:var(--shu);font:600 12.5px/1 var(--serif);letter-spacing:.08em;cursor:pointer;text-shadow:none;transition:background .2s,color .2s}
.index .kn-chip::before{content:none}
.kn-chip i{font:500 12px/1 var(--sans);font-style:normal;opacity:.6}
.index .kn-chip:hover{background:var(--shu);color:#fff}
.index .kn-chip:hover i{opacity:1}
.index #kasane-clear{font:500 10.5px/1 var(--sans);letter-spacing:.12em;color:var(--mute);border-bottom:1px solid transparent;padding:2px 0;margin-left:4px}
.index #kasane-clear[hidden]{display:none}
.index #kasane-clear:hover{color:var(--ink);border-color:var(--ink)}
body.sora-night .index .kn-chip{background:rgba(27,30,45,.88);color:#E0705A;border-color:#E0705A}

/* ── 左の紙の整理(形を「文字の行」「切り替え」「丸一つ」の三種に) ── */
/* 1) 巡る/さらに巡る/泊まる = 一本の切り替え。外枠は一つ、選んでいるものだけ塗る */
.index .mode-grid{grid-template-columns:repeat(3,auto);gap:0;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--paper);margin:8px 0 10px}
.index .mode-grid button{border:0;border-radius:0;padding:9px 16px;font-size:14px;letter-spacing:.12em;background:transparent}
.index .mode-grid button + button{border-left:1px solid var(--line)}
.index .mode-grid #land-stay{grid-column:auto}
.index .mode-grid button:not([aria-pressed="true"]):not(:disabled):hover{border-color:var(--line)}
.index .mode-grid #wd-more[aria-pressed="true"]{border-color:var(--line)}
.index .mode-grid #land-stay[aria-pressed="true"]{border-color:var(--line)}
/* 2) 丸は「次の場所へ」だけ。観光モードはその右の小さな札、言語と声はその下に小さな文字 */
.dock{align-items:center;gap:16px}
.dock .tour{width:auto;height:auto;display:inline-flex;align-items:center;gap:0;padding:7px 14px;border:1.2px solid var(--ink);border-radius:999px;background:rgba(251,248,241,.85);color:var(--ink)}
.dock .tour svg{display:none}
.dock .tour span{display:inline;font-size:12.5px;letter-spacing:.14em}
.dock .tour .tour-l2{margin:0}
.dock .tour[aria-pressed="true"]{background:var(--ink);color:var(--paper-2)}
.dock .tour:active{transform:none}
.dock-side{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.dock .guide-ctl{flex-direction:row;gap:0;align-items:center}
.dock .guide-ctl button{border:0;background:transparent;padding:2px 0;font:500 10.5px/1 var(--sans);letter-spacing:.12em;color:var(--mute);border-bottom:1px solid transparent;min-width:0}
.dock .guide-ctl button + button::before{content:"・";margin:0 6px;color:var(--line)}
.dock .guide-ctl button:hover{color:var(--ink);border-color:transparent}
.dock .guide-ctl button[aria-pressed="false"]{color:var(--mute);opacity:.7}
body.sora-night .dock .guide-ctl button{background:transparent}
body.sora-night .dock .tour{background:rgba(27,30,45,.85)}
@media (max-width:720px){.dock .tour{padding:6px 11px}.dock .guide-ctl button{min-width:0}}
.dock .tour[aria-pressed="true"] span,.index .mode-grid button[aria-pressed="true"],.index .mode-grid button[aria-pressed="true"] *{text-shadow:none}

/* ── 土地の行: 押しても黒く塗らない(紙色のにじみと重なって光って見えた)。名前を見出しに、道具は右へ ── */
.index .land-row{display:flex;align-items:baseline;gap:14px;width:100%;margin:0 0 2px}
.index .land-open{border:0;background:transparent;padding:0;gap:8px;align-items:baseline}
.index .land-open::before{content:none}
.index .land-open span{font:800 21px/1 var(--serif);letter-spacing:.08em;color:var(--shu)}
.index .land-open i{font:500 10.5px/1 var(--sans);letter-spacing:.12em;color:var(--mute)}
.index .land-open:hover{background:transparent}
.index .land-open:hover span{color:var(--shu-deep)}
.index .land-open:hover i{color:var(--ink)}
.index .land-row .land-japan:first-of-type{margin-left:auto}
.index .land-row .land-japan{font-size:10.5px}
/* かたまりの間は同じ空き(16px)、中は詰める */
.index{gap:0}
.index .land-row{margin-bottom:10px}
.index .kasane-now{margin:0 0 10px}
.index .mode-grid{margin:0 0 18px}
.index .wd-legend{margin:-8px 0 14px}
.index .index-head{margin:0 0 10px}
.index .search{margin:0 0 10px}
.index .tags{margin:0 0 12px}
body.sora-night .index .land-open:hover span{color:#E0705A}

/* ── 右端のタグ列: 紙を開いても閉じても同じ場所。紙はタグの左に寄る ── */
.tabs{position:fixed;right:12px;top:50%;transform:translateY(-50%);z-index:7;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tabs .drawer{position:relative;right:auto;top:auto;transform:none;border:1px solid var(--line);border-radius:3px}
.tabs .drawer-yado,.tabs .drawer-tour{top:auto}
/* 紙(名所・宿)と棚は、タグの分だけ左へ */
.panel{right:52px;width:min(440px,calc(100vw - 78px))}
.shelf-frame{right:492px}
/* おみやげ/泊まる/巡る は紙が開いている時だけ(旧: #panel[hidden] ~ .drawer は兄弟でなくなったので :has で) */
body:not(.stay-open):has(#panel[hidden]) .tabs .drawer:not(.drawer-map):not(.ltab){display:none}
/* 地図＋を開いている間は、おみやげ/泊まる/巡る を引っ込める */
body.map-tabs .tabs > .drawer:not(.drawer-map){display:none}
/* 地図＋: 藍。開いている/何か重ねている時は塗る */
.tabs .drawer-map{background:#E3E9F0;color:#2f4a6b}
.tabs .drawer-map i{font:700 15px/1 var(--sans)}
.tabs .drawer-map:hover{background:#D5DEE9}
.tabs .drawer-map[aria-expanded="true"],.tabs .drawer-map.on{background:#2f4a6b;border-color:#2f4a6b;color:#fff}
.tabs .drawer-map[aria-expanded="true"] span,.tabs .drawer-map.on span{color:#fff}
.tabs .drawer-map[aria-expanded="true"] i{transform:rotate(45deg)}
/* 重ねる層のタグ: 地図＋の下に縦に */
.layer-tabs{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.layer-tabs[hidden]{display:none}
.tabs .ltab{padding:12px 0;background:rgba(251,248,241,.94);border-color:#b9c5d3}
.tabs .ltab span{color:#2f4a6b}
.tabs .ltab:hover{background:#EEF2F7}
.tabs .ltab[aria-pressed="true"]{background:#2f4a6b;border-color:#2f4a6b}
.tabs .ltab[aria-pressed="true"] span{color:#fff}
/* 旧街道の札: 道のタグの左に開く */
.tabs .kaido-slot{position:absolute;right:calc(100% + 10px);bottom:0;padding:0}
.tabs .kaido-slot .kaido-list{position:static;transform:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px;width:auto}
.tabs .kaido-slot .kaido-list button{appearance:none;padding:5px 10px;border:1px solid #c8894a;border-radius:999px;background:rgba(251,248,241,.95);color:#8a5226;font:600 12px/1 var(--serif);letter-spacing:.08em;cursor:pointer;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.tabs .kaido-slot .kaido-list button[aria-pressed="true"]{background:#9a5f2c;border-color:#9a5f2c;color:#fff}
body.sora-night .tabs .ltab{background:rgba(27,30,45,.9);border-color:#5a6a86}
body.sora-night .tabs .ltab span{color:#dfe7f2}
body.sora-night .tabs .ltab[aria-pressed="true"]{background:#5b7aa3}
@media (max-width:1100px){.panel{right:26px;width:min(440px,calc(100vw - 52px))}.tabs .drawer:not(.drawer-map):not(.ltab){display:none}}
/* おみやげ/泊まる/巡る は今までどおり紙の左の縁(紙がタグの分だけ左へ寄ったので 466→492) */
.drawer:not(.drawer-map):not(.ltab){right:492px}
body:not(.stay-open) #panel[hidden] ~ .drawer:not(.drawer-map):not(.ltab){display:none}
/* 地図＋のタグは紙の右の縁に密着(隙間なし)。紙を閉じても同じ場所 */
.tabs{right:22px;gap:6px;align-items:flex-start}
.tabs .drawer-map,.tabs .ltab{border-left:0;border-radius:0 3px 3px 0}
.layer-tabs{align-items:flex-start}

/* ── 左下: 丸は観光モードだけ。右に縦一列(自動で進む/次にいく/言語/声) ── */
.dock{align-items:center;gap:18px}
.dock .tour{width:78px;height:78px;display:grid;place-items:center;align-content:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink)}
.dock .tour svg{display:block}
.dock .tour span{display:block;font-size:12px;letter-spacing:.18em}
.dock .tour .tour-l2{margin-top:6px}
.dock .tour[aria-pressed="true"]{background:transparent;color:var(--paper-2)}
.dock-side{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.dock .dk-btn{appearance:none;border:0;background:transparent;padding:1px 0;cursor:pointer;font:600 12px/1 var(--serif);letter-spacing:.14em;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px}
.dock .dk-btn:hover{color:var(--ink)}
.dock #drift::after{content:"→";font:500 11px/1 var(--sans);letter-spacing:0;opacity:.6}
.dock #drift .drift-l2:empty{display:none}
/* 自動で進む: 前に小さな丸。ON=朱で塗る */
.dock #auto::before{content:"";width:9px;height:9px;border-radius:50%;border:1.2px solid var(--ink-2);box-sizing:border-box}
.dock #auto[aria-pressed="true"]::before{background:var(--shu);border-color:var(--shu)}
.dock #auto[aria-pressed="false"]{color:var(--mute)}
.dock .guide-ctl{flex-direction:row;margin-top:2px}
body.sora-night .dock .dk-btn{color:#CFC5B0}
@media (max-width:720px){.dock .tour{width:64px;height:64px}}
.dock .tour[aria-pressed="true"] svg circle{fill:var(--ink);stroke:var(--ink)}

/* ── 巡り方: 切り替えの枠の真下に観光モードの丸。枠の下縁から細い線で丸へ(枠と連動) ── */
.index{bottom:26px;max-height:calc(100vh - 460px)}
.index .tour-box{display:inline-flex;flex-direction:column;align-items:stretch;align-self:flex-start;margin:0 0 16px}
.index .tour-box .mode-grid{margin:0}
.index .guide-row{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:14px;padding-top:16px}
/* 枠の下縁から丸の頭まで一本の線 */
.index .guide-row::before{content:"";position:absolute;left:50%;top:0;height:16px;border-left:1.5px solid var(--ink)}
.index .guide-row button::before{content:none}
.index .guide-row .tour{position:relative;width:66px;height:66px;display:grid;place-items:center;align-content:center;padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer}
.index .guide-row .tour svg{position:absolute;inset:0;width:100%;height:100%;fill:rgba(251,248,241,.9);stroke:var(--ink);stroke-width:2}
.index .guide-row .tour span{position:relative;display:block;font:600 11.5px/1 var(--serif);letter-spacing:.16em}
.index .guide-row .tour .tour-l2{margin-top:5px}
.index .guide-row .tour:hover svg{fill:#fff}
.index .guide-row .tour[aria-pressed="true"]{color:var(--paper-2)}
.index .guide-row .tour[aria-pressed="true"] svg{fill:var(--ink);animation:spin 14s linear infinite}
.index .guide-row .tour[aria-pressed="true"] span{text-shadow:none}
.index .gr-side{display:flex;flex-direction:column;gap:9px}
.index .gr-left{align-items:flex-end}
.index .gr-right{align-items:flex-start}
.index .gr-side button{appearance:none;border:0;background:transparent;padding:1px 0;cursor:pointer;font:600 11.5px/1 var(--serif);letter-spacing:.12em;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;min-width:0}
.index .gr-side button:hover{color:var(--ink)}
.index .gr-left button[aria-pressed="false"]{color:var(--mute)}
.index #drift::after{content:"→";font:500 11px/1 var(--sans);opacity:.6}
.index #drift .drift-l2:empty{display:none}
.index #auto::before{content:"";width:8px;height:8px;border-radius:50%;border:1.2px solid var(--ink-2);box-sizing:border-box}
.index #auto[aria-pressed="true"]::before{background:var(--shu);border-color:var(--shu)}
.index #auto[aria-pressed="false"]{color:var(--mute)}
/* 巡る 以外を選んでいる間は、巡り方は休み */
.index .tour-box:has(#mode-tour[aria-pressed="false"]) .guide-row{opacity:.35;pointer-events:none}
body.sora-night .index .guide-row .tour svg{fill:rgba(27,30,45,.9);stroke:#EFE6D2}
body.sora-night .index .guide-row::before{border-color:#EFE6D2}
.index .guide-row .tour svg circle{fill:rgba(251,248,241,.9);stroke:var(--ink)}
.index .guide-row .tour:hover svg circle{fill:#fff}
.index .guide-row .tour[aria-pressed="true"] svg circle{fill:var(--ink);stroke:var(--ink)}
body.sora-night .index .guide-row .tour svg circle{fill:rgba(27,30,45,.9);stroke:#EFE6D2}
/* 上下を逆に: 丸が上、切り替えの枠が下。線は丸の下から枠の上縁へ。観光モードは朱 */
.index .tour-box .guide-row{order:-1;padding-top:0;padding-bottom:16px}
.index .guide-row::before{top:auto;bottom:0;border-color:var(--shu)}
.index .guide-row .tour{color:var(--shu)}
.index .guide-row .tour svg circle{stroke:var(--shu)}
.index .guide-row .tour[aria-pressed="true"]{color:#fff}
.index .guide-row .tour[aria-pressed="true"] svg circle{fill:var(--shu);stroke:var(--shu)}
body.sora-night .index .guide-row .tour svg circle{stroke:var(--shu)}
body.sora-night .index .guide-row::before{border-color:var(--shu)}

/* ── 見栄えの整理: 朱は「土地名」と「案内中の丸」だけ／左端を一本に／薄い和紙の地 ── */
/* 丸のかたまりは左寄せ: [丸] [自動で進む・次にいく]。線は丸の真下から枠へ */
.index .guide-row{display:flex;align-items:center;gap:16px;padding-bottom:14px}
.index .guide-row::before{left:33px;border-color:var(--ink-2);border-left-width:1px}
.index .guide-row .tour{color:var(--ink)}
.index .guide-row .tour svg circle{stroke:var(--ink);stroke-width:2}
.index .guide-row .tour:hover{color:var(--shu)}
.index .guide-row .tour:hover svg circle{stroke:var(--shu)}
.index .guide-row .tour[aria-pressed="true"]{color:#fff}
.index .guide-row .tour[aria-pressed="true"] svg circle{fill:var(--shu);stroke:var(--shu)}
.index .tour-box:has(.tour[aria-pressed="true"]) .guide-row::before{border-color:var(--shu)}
.index .gr-right{gap:10px}
/* 一覧の頭の土地名は重複なので朱をやめて控えめに */
.index .index-head b{color:var(--mute)}
/* 言語と声: 一覧の下の脚注 */
.index .guide-foot{display:flex;flex-direction:row;gap:0;margin:12px 0 0;align-items:center}
.index .guide-foot button{appearance:none;border:0;background:transparent;padding:0;min-width:0;font:500 10.5px/1 var(--sans);letter-spacing:.12em;color:var(--mute);cursor:pointer}
.index .guide-foot button::before{content:none}
.index .guide-foot button + button::before{content:"・";display:inline;width:auto;height:auto;background:none;border-radius:0;margin:0 6px;color:var(--line)}
.index .guide-foot button:hover{color:var(--ink)}
/* 左の紙の地: 霞を少し濃く広く(境目は見せない) */
body::after{width:460px;background:linear-gradient(90deg,rgba(247,243,234,.9) 0,rgba(247,243,234,.8) 58%,rgba(247,243,234,0) 100%)}
body.sora-night::after{background:linear-gradient(90deg,rgba(14,16,26,.85) 0,rgba(14,16,26,.7) 58%,rgba(14,16,26,0) 100%)}
/* 泊まる: 観光モードの右の丸。泊まっている間は朱で塗る */
.index .guide-row .stay-c{position:relative;width:66px;height:66px;margin-left:auto;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer;color:var(--ink)}
.index .guide-row .stay-c::before{content:none}
.index .guide-row .stay-c svg{position:absolute;inset:0;width:100%;height:100%}
.index .guide-row .stay-c svg circle{fill:rgba(251,248,241,.9);stroke:var(--ink);stroke-width:2}
.index .guide-row .stay-c span{position:relative;font:600 12px/1 var(--serif);letter-spacing:.16em}
.index .guide-row .stay-c:hover{color:var(--shu)}
.index .guide-row .stay-c:hover svg circle{stroke:var(--shu)}
.index .guide-row .stay-c[aria-pressed="true"]{color:#fff}
.index .guide-row .stay-c[aria-pressed="true"] span{text-shadow:none}
.index .guide-row .stay-c[aria-pressed="true"] svg circle{fill:var(--shu);stroke:var(--shu)}
.index .guide-row .stay-c:disabled{opacity:.35;cursor:default}
/* 泊まっている間は、観光モードの側だけ休み(泊まるの丸は押せるまま) */
.index .tour-box:has(#mode-tour[aria-pressed="false"]) .guide-row{opacity:1;pointer-events:auto}
.index .tour-box:has(#mode-tour[aria-pressed="false"]) .guide-row > .tour,.index .tour-box:has(#mode-tour[aria-pressed="false"]) .gr-right{opacity:.35;pointer-events:none}
body.sora-night .index .guide-row .stay-c svg circle{fill:rgba(27,30,45,.9);stroke:#EFE6D2}
.index .mode-grid{grid-template-columns:repeat(2,auto)}
/* 丸は観光モードと泊まるの二つ並び。自動で進む・次にいくは巡るの枠の下に一行 */
.index .guide-row .stay-c{margin-left:0}
.index .guide-row{gap:14px}
.index .tour-box .gr-under{order:2;flex-direction:row;align-items:center;gap:16px;margin-top:10px;padding-left:4px}
.index .tour-box:has(#mode-tour[aria-pressed="false"]) .gr-under{opacity:.35;pointer-events:none}
.index .gr-under #drift::before{content:none}
/* 土地の行: 押せると分かるが主張しない。土地名に細い点線、「土地を選ぶ」「日本地図」は淡い枠の小さな札 */
.index .land-row{align-items:center;gap:8px}
.index .land-open{align-items:center;gap:10px}
.index .land-open span{text-decoration:underline dotted var(--line);text-decoration-thickness:1.5px;text-underline-offset:6px}
.index .land-open i,.index .land-row .land-japan{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid var(--line);border-radius:999px;
  font:500 10.5px/1 var(--sans);letter-spacing:.12em;color:var(--ink-2);background:rgba(251,248,241,.6);transition:border-color .2s,color .2s}
.index .land-row .land-japan::before{content:none}
.index .land-open:hover span{text-decoration-color:var(--shu)}
.index .land-open:hover i,.index .land-row .land-japan:hover{border-color:var(--ink);color:var(--ink)}
.index .land-row .land-japan:first-of-type{margin-left:0}
body.sora-night .index .land-open i,body.sora-night .index .land-row .land-japan{background:rgba(27,30,45,.6)}
/* 地図＋は紙の左の縁(おみやげ・泊まるの上)に。紙は元の右端へ戻す。開いている間は おみやげ/泊まる/巡る を引っ込める */
.panel{right:26px;width:min(440px,calc(100vw - 52px))}
.shelf-frame{right:466px}
.drawer:not(.drawer-map):not(.ltab){right:466px}
.tabs{right:466px;top:calc(50% - 250px);transform:none;align-items:flex-end}
.tabs .drawer-map,.tabs .ltab{border-left:1px solid var(--line);border-right:0;border-radius:3px 0 0 3px}
.tabs .drawer-map[aria-expanded="true"],.tabs .drawer-map.on{border-color:#2f4a6b}
.tabs .ltab[aria-pressed="true"]{border-color:#2f4a6b}
.layer-tabs{align-items:flex-end}
body.map-tabs .drawer:not(.drawer-map):not(.ltab){display:none}
@media (max-width:1100px){.tabs{right:0}}
/* 紙が無いとき: タグ列は画面の右端(端に密着)。紙があるとき: 紙の左の縁 */
body:not(.side-open) .tabs{right:0}
/* 土地を選ぶ・日本地図: 地図＋と同じ取っ手の列(一番上)。左の紙には土地名だけ */
.index .land-open i{display:none}
.tabs .drawer-land{padding:12px 0;background:rgba(251,248,241,.94);border-color:var(--line)}
.tabs .drawer-land span{color:var(--ink-2)}
.tabs .drawer-land:hover{background:#fff}
.tabs .drawer-land:hover span{color:var(--ink)}
.tabs #land-japan{margin-bottom:6px}
body.sora-night .tabs .drawer-land{background:rgba(27,30,45,.9)}
body.sora-night .tabs .drawer-land span{color:#dfe7f2}
.tabs .drawer.drawer-land,body.map-tabs .tabs .drawer.drawer-land,body:not(.stay-open):has(#panel[hidden]) .tabs .drawer.drawer-land{display:flex}
#tabs > .drawer-land{display:flex!important}
#tabs > .drawer-land{right:auto;top:auto;border-right:0;border-radius:3px 0 0 3px}
body.side-open .tabs{top:auto;bottom:calc(50% + 70px)}
/* 下の一行: [○ 自動で進む  次にいく →]  |  [日本語・声 ON] */
.index .guide-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line)}
.index .gf-tour{display:flex;align-items:center;gap:14px}
.index .gf-tour .dk-btn{appearance:none;border:0;background:transparent;padding:0;cursor:pointer;font:600 11.5px/1 var(--serif);letter-spacing:.12em;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.index .gf-tour #drift::before{content:none}
.index .guide-bottom .guide-foot{margin:0}
.index .tour-box:has(#mode-tour[aria-pressed="false"]) ~ .guide-bottom .gf-tour{opacity:.35;pointer-events:none}
/* 巡り方のかたまりは一覧の下(紙の底)に */
.index .tour-box{margin:14px 0 0}
.index .guide-bottom{margin-top:10px}
.index .tour-box ~ .guide-bottom .gf-tour{opacity:1}
.index .tour-box:has(#mode-tour[aria-pressed="false"]) ~ .guide-bottom .gf-tour{opacity:.35;pointer-events:none}

/* 広告の表示は最初の画面に（規制チェック部 2026-09-24） */
.pr-top{margin:10px 0 0;max-width:380px;font-size:12px;line-height:1.6;color:var(--ink-2);pointer-events:auto}
/* PR: 題の横ではなく、画面の上の真ん中に細い一行の札(12px・最初の画面) */
.pr-top{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:6;margin:0;max-width:calc(100vw - 40px);
  white-space:nowrap;padding:5px 14px 5px 6px;border:1px solid var(--line);border-radius:999px;background:rgba(251,248,241,.9);
  font-size:12px;line-height:1.4;color:var(--ink-2);box-shadow:0 1px 3px rgba(0,0,0,.05)}
body.sora-night .pr-top{background:rgba(27,30,45,.9);color:#CFC5B0;border-color:rgba(239,230,210,.25)}
@media (max-width:900px){.pr-top{white-space:normal;left:12px;right:12px;transform:none;border-radius:6px;text-align:left}}
