.tokyo-shell { max-width: 1160px; }
.tokyo-shell [id] { scroll-margin-top: 1.5rem; }
.tokyo-shell a { text-underline-offset: .2em; }
.tokyo-shell a:focus-visible, .tokyo-shell [tabindex]:focus-visible, .tokyo-skip:focus-visible { outline: 3px solid #0f5f66; outline-offset: 4px; }
.tokyo-skip { position: absolute; top: -6rem; left: 1rem; z-index: 20; padding: .75rem 1rem; background: white; }
.tokyo-skip:focus { top: 1rem; }
.tokyo-jumps { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.tokyo-jumps a { padding: .6rem .85rem; border: 1px solid #bdd8d7; border-radius: .5rem; background: #eff7f4; }
.tokyo-comparison { width: 100%; min-width: 0; border-collapse: collapse; background: #fff; }
.tokyo-comparison caption { text-align: left; color: #52616a; padding-bottom: 1rem; }
.tokyo-comparison th, .tokyo-comparison td { padding: 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid #d3e2e2; overflow-wrap: anywhere; }
.tokyo-comparison thead { background: #e6f1ee; }
.tokyo-comparison th[scope="row"] { width: 24%; }
.tokyo-comparison td:nth-child(2) { width: 30%; }
.tokyo-comparison small { display: block; font-weight: 400; margin-top: .5rem; }
.tokyo-comparison p { margin: 0; }
.tokyo-refs { display: block; font-size: .8rem; font-weight: 400; line-height: 1.6; margin-top: .45rem; }
.tokyo-visit { padding: clamp(1.1rem, 3vw, 2rem); border: 1px solid #d3e2e2; border-radius: 1rem; background: #fff; margin-block: 1.5rem; }
.tokyo-visit h2 { margin-top: .4rem; }
.tokyo-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.tokyo-designs { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 1rem; }
.tokyo-designs li { background: #f2f7f5; border-radius: .65rem; padding: 1rem; }
.tokyo-designs h3 { margin: 0; }
.tokyo-designs [lang="ja"] { color: #52616a; font-size: .9rem; }
.tokyo-route { padding: 1.5rem; border-left: 4px solid #0f5f66; background: #eff7f4; border-radius: .5rem; }
@media (max-width: 640px) {
  .tokyo-columns { grid-template-columns: 1fr; gap: .25rem; }
  .tokyo-comparison caption { display: block; width: 100%; }
  .tokyo-comparison thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
  .tokyo-comparison, .tokyo-comparison tbody, .tokyo-comparison tr, .tokyo-comparison th, .tokyo-comparison td { display: block; width: 100%; }
  .tokyo-comparison tr { border: 1px solid #d3e2e2; border-radius: .75rem; margin-bottom: 1rem; overflow: hidden; }
  .tokyo-comparison th[scope="row"], .tokyo-comparison td:nth-child(2) { width: 100%; }
  .tokyo-comparison th[scope="row"] { background: #e6f1ee; }
  .tokyo-comparison td::before { content: attr(data-label); display: block; font-weight: 700; margin-bottom: .4rem; }
  .tokyo-comparison td:last-child { border-bottom: 0; }
}
@media print {
  .site-header, .site-footer, .tokyo-skip, .tokyo-jumps { display: none; }
  .tokyo-shell { max-width: none; padding: 0; }
  .tokyo-visit, .tokyo-route, .tokyo-comparison tr { break-inside: avoid; }
  .tokyo-shell a { color: #000; }
}
