/* 会場周辺の宿マップ（このサイト専用） */
.etyd{
  --etyd-ink:#1d272d;
  --etyd-sub:#4b5963;
  --etyd-line:#dde2e6;
  --etyd-paper:#ffffff;
  --etyd-wash:#f3f6f7;
  --etyd-sea:#04384c;
  --etyd-sea-2:#0a4d66;
  --etyd-foam:#cfe5ec;
  --etyd-sun:#b5400c;
  --etyd-sun-wash:#fff2ea;
  --etyd-focus:#1176d4;
  container-type:inline-size;
  position:relative;
  isolation:isolate;
  margin:32px 0;
  background:var(--etyd-paper);
  color:var(--etyd-ink);
  border:1px solid var(--etyd-line);
  border-radius:16px;
  box-shadow:0 1px 2px rgba(4,56,76,.06),0 8px 24px rgba(4,56,76,.06);
  font-size:16px;
  line-height:1.7;
  letter-spacing:.02em;
  overflow:hidden;
  overflow-wrap:anywhere;
}
.etyd *,.etyd *::before,.etyd *::after{box-sizing:border-box}
.etyd p{margin:0}
.etyd a{color:var(--etyd-sea-2);text-decoration:underline;text-underline-offset:.2em}
.etyd button{font:inherit;letter-spacing:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.etyd :focus-visible{outline:2px solid var(--etyd-focus);outline-offset:2px}

/* 見出しの帯（切符の耳） */
.etyd__head{
  position:relative;
  padding:24px 24px 24px;
  background:
    radial-gradient(120% 140% at 100% 0%,rgba(255,255,255,.10) 0,rgba(255,255,255,0) 55%),
    linear-gradient(160deg,var(--etyd-sea) 0%,#062c3c 100%);
  color:#fff;
}
.etyd__head::after{
  content:"";
  position:absolute;left:16px;right:16px;bottom:-1px;height:0;
  border-bottom:2px dashed rgba(4,56,76,.28);
}
.etyd__head::before{
  content:"";
  position:absolute;left:-8px;right:-8px;bottom:-8px;height:16px;
  background:
    radial-gradient(circle at 8px 8px,var(--etyd-paper) 7.5px,transparent 8px) left/16px 16px no-repeat,
    radial-gradient(circle at 8px 8px,var(--etyd-paper) 7.5px,transparent 8px) right/16px 16px no-repeat;
}
.etyd__eyebrow{
  font-size:14px;line-height:1.3;font-weight:700;letter-spacing:.12em;
  color:var(--etyd-foam);
}
.etyd__title{
  margin-top:8px !important;
  font-size:22px;line-height:1.4;font-weight:700;letter-spacing:.02em;
  font-feature-settings:"palt";
  text-wrap:balance;word-break:auto-phrase;
  color:#fff;
}
.etyd__lead{margin-top:8px !important;font-size:14px;line-height:1.7;color:var(--etyd-foam)}

/* 距離の切り替え */
.etyd__ctrl{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;
  padding:24px 24px 16px;
}
.etyd__ctrl-label{font-size:14px;line-height:1.3;font-weight:700;color:var(--etyd-sub)}
.etyd__seg{
  display:inline-flex;gap:4px;padding:4px;
  background:var(--etyd-wash);border:1px solid var(--etyd-line);border-radius:999px;
}
.etyd .etyd__rbtn{
  min-width:72px;min-height:44px;padding:0 16px;margin:0;
  border:0;border-radius:999px;background:transparent;color:var(--etyd-ink);
  font-size:16px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums;
  box-shadow:none;
  transition:background-color .2s ease,color .2s ease,box-shadow .2s ease;
}
.etyd .etyd__rbtn:hover{background:#e3eaed}
.etyd .etyd__rbtn[aria-pressed="true"]{
  background:var(--etyd-sea);color:#fff;
  box-shadow:0 1px 2px rgba(4,56,76,.3),inset 0 0 0 1px rgba(255,255,255,.08);
}

/* 地図と一覧 */
.etyd__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:0 16px 16px}
.etyd__mapwrap{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--etyd-line);background:var(--etyd-wash);z-index:0}
.etyd__map{width:100%;aspect-ratio:4/3;min-height:240px;background:var(--etyd-wash);z-index:0}
/* 固定データ（宿が密集）の時は、狭い画面で正方形に近づけて点を重ねにくくする */
.etyd[data-etyd-fixed] .etyd__map{aspect-ratio:1/1;min-height:320px}
/* 固定データの時は会場の名札を点の左に出す（宿は会場の東と南に集まるので、名札が点を隠さない） */
.etyd[data-etyd-fixed] .etyd-venue__tag{left:auto;right:28px;bottom:auto;top:50%;transform:translateY(-50%)}
.etyd__veil{
  position:absolute;inset:0;pointer-events:none;opacity:0;z-index:500;
  background:linear-gradient(100deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 70%) 0 0/200% 100%;
  transition:opacity .2s ease;
}
.etyd.is-busy .etyd__veil{opacity:1;animation:etyd-sweep 1.2s linear infinite}
@keyframes etyd-sweep{from{background-position:100% 0}to{background-position:-100% 0}}

.etyd__side{min-width:0;display:flex;flex-direction:column}
.etyd__status{
  padding:8px 8px 8px;font-size:16px;line-height:1.5;color:var(--etyd-ink);
}
.etyd__status strong{font-weight:700}
.etyd__hint{display:block;margin-top:4px;font-size:14px;line-height:1.5;color:var(--etyd-sub)}
.etyd .etyd__retry{
  display:inline-flex;align-items:center;min-height:44px;margin:8px 0 0;padding:0 16px;
  border:1px solid var(--etyd-sea);border-radius:999px;background:var(--etyd-paper);color:var(--etyd-sea);font-weight:700;
}

.etyd .etyd__list,.post_content .etyd .etyd__list{
  list-style:none !important;margin:0 !important;padding:0 !important;
  border-top:1px solid var(--etyd-line);
  counter-reset:none;
}
.etyd .etyd__list>li,.post_content .etyd .etyd__list>li{
  list-style:none !important;margin:0 !important;padding:0 !important;
  border-bottom:1px solid var(--etyd-line);
}
.etyd .etyd__list>li::before,.etyd .etyd__list>li::marker,
.post_content .etyd .etyd__list>li::before{content:none !important;display:none !important}

.etyd .etyd__item{
  display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:16px;
  width:100%;min-height:56px;margin:0;padding:12px 8px;
  border:0;border-radius:0;background:transparent;color:var(--etyd-ink);text-align:left;
  box-shadow:inset 3px 0 0 transparent;
  transition:background-color .15s ease,box-shadow .15s ease;
}
.etyd .etyd__item:hover{background:var(--etyd-wash)}
.etyd .etyd__item.is-on{background:var(--etyd-sun-wash);box-shadow:inset 3px 0 0 var(--etyd-sun)}
.etyd__no{
  display:inline-grid;place-items:center;width:32px;height:32px;margin-top:2px;
  border-radius:50%;background:var(--etyd-paper);border:2px solid var(--etyd-sun);color:var(--etyd-sun);
  font-size:14px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums;
}
.etyd .etyd__item.is-on .etyd__no{background:var(--etyd-sun);color:#fff}
.etyd__body{display:flex;flex-direction:column;gap:4px;min-width:0}
.etyd__name{font-size:16px;line-height:1.4;font-weight:700}
.etyd__meta{
  display:flex;flex-wrap:wrap;gap:4px 16px;
  font-size:14px;line-height:1.3;color:var(--etyd-sub);font-variant-numeric:tabular-nums;
}


.etyd__more{padding:16px 0 0}
.etyd__more[hidden]{display:none}
.etyd .etyd__morebtn{
  width:100%;min-height:48px;margin:0;padding:8px 16px;
  border:1px solid var(--etyd-sea);border-radius:999px;background:var(--etyd-paper);color:var(--etyd-sea);
  font-size:16px;line-height:1.3;font-weight:700;
  transition:background-color .15s ease;
}
.etyd .etyd__morebtn:hover{background:#eaf2f5}

/* 注記と出典 */
.etyd__foot{
  display:flex;flex-direction:column;gap:8px;
  margin:0 16px;padding:16px 8px 24px;border-top:1px solid var(--etyd-line);
}
.etyd__note,.etyd__src{font-size:14px;line-height:1.7;color:var(--etyd-sub)}
.etyd__attr{font-size:14px;line-height:1.5;color:var(--etyd-sub)}
.etyd__attr[hidden]{display:none}
.etyd__attr summary{display:list-item;min-height:44px;padding:10px 0;line-height:1.5;cursor:pointer;font-weight:700;color:var(--etyd-ink)}
.etyd .etyd__attrlist{margin:0 0 0 16px !important;padding:0 !important}
.etyd .etyd__attrlist li{margin:0 0 4px !important;padding:0 !important;list-style:disc}
.etyd .etyd__attrlist li::before{content:none !important;display:none !important}

/* 地図の中の点 */
.etyd .leaflet-container{font:inherit;font-size:14px;background:var(--etyd-wash)}
.etyd .leaflet-control-attribution{font-size:14px;line-height:1.4}
.etyd .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;font-size:22px}
.etyd-pin{background:none;border:0}
.etyd-pin span{
  display:grid;place-items:center;width:32px;height:32px;border-radius:50% 50% 50% 8px;
  background:var(--etyd-sun);color:#fff;border:2px solid #fff;
  box-shadow:0 2px 6px rgba(29,39,45,.35);
  font:700 14px/1 system-ui,-apple-system,"Hiragino Sans",sans-serif;font-variant-numeric:tabular-nums;
  transform:rotate(0deg);transition:transform .15s ease;
}
.etyd-pin.is-on span{background:var(--etyd-sea);transform:scale(1.15)}
/* チェーン名の札（固定データの時）＝1行に収め、折り返さない */
.etyd__chip{
  display:inline-block;vertical-align:middle;margin-left:4px;padding:2px 8px;border-radius:999px;
  background:var(--etyd-foam);color:var(--etyd-sea);
  font-size:14px;line-height:1.3;font-weight:700;white-space:nowrap;
}
.etyd__chip--wide{background:var(--etyd-wash);color:var(--etyd-sub)}
/* 駅の点と名前（固定データの時） */
.etyd-st{background:none;border:0;overflow:visible !important}
.etyd-st__dot{
  position:absolute;left:0;top:0;width:14px;height:14px;border-radius:50%;
  background:#fff;border:3px solid var(--etyd-sea);box-shadow:0 1px 4px rgba(4,56,76,.35);
}
.etyd-st__tag{
  position:absolute;left:7px;top:18px;transform:translateX(-50%);white-space:nowrap;
  padding:2px 6px;border-radius:6px;background:rgba(255,255,255,.92);color:var(--etyd-sea);
  font:700 14px/1.2 system-ui,-apple-system,"Hiragino Sans",sans-serif;
  box-shadow:0 1px 3px rgba(4,56,76,.25);
}
.etyd-venue{background:none;border:0;overflow:visible !important}
.etyd-venue__dot{
  position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;
  background:var(--etyd-sea);border:3px solid #fff;
  box-shadow:0 0 0 6px rgba(4,56,76,.22),0 2px 6px rgba(4,56,76,.4);
}
.etyd-venue__tag{
  position:absolute;left:10px;bottom:28px;transform:translateX(-50%);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;
  padding:4px 8px;border-radius:8px;background:var(--etyd-sea);color:#fff;
  font:700 14px/1.2 system-ui,-apple-system,"Hiragino Sans",sans-serif;
  box-shadow:0 2px 6px rgba(4,56,76,.3);
}
.etyd .leaflet-tooltip{font-size:14px;line-height:1.5;padding:8px;border-radius:8px;color:var(--etyd-ink)}

/* 広い時は地図と一覧を横に並べる */
@container (min-width: 760px){
  .etyd__head{padding:32px 32px 24px}
  .etyd__title{font-size:24px}
  .etyd__ctrl{padding:24px 32px 16px}
  .etyd__grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);padding:0 24px 24px;align-items:start}
  .etyd__map{aspect-ratio:auto;height:480px}
  .etyd__side{max-height:480px}
  .etyd .etyd__list{overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto;min-height:0}
  .etyd__foot{margin:0 24px}
}

@media (prefers-reduced-motion: reduce){
  .etyd *,.etyd *::before,.etyd *::after{transition:none !important;animation:none !important}
}
