/* Generated by data/build_station_pages.py. */
:root {
  --ink: #111827; --sub: #4b5563; --line: #e2e5eb; --surface: #fff;
  --brand: #ff6b4a; --ev: #2854d4; --ev-soft: #e8eefe;
  --warn: #854007; --warn-soft: #fff4e5;
}
* { box-sizing: border-box; }
html { background: #eef0f3; }
body {
  margin: 0; color: var(--ink); font-family: "Noto Sans JP", system-ui,
  -apple-system, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 15px; line-height: 1.8; overflow-wrap: anywhere;
}
a { color: var(--ev); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 3px; }
.skip { position: absolute; top: -100px; left: 12px; padding: 12px; background: #fff; }
.skip:focus { top: 8px; }
.site-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.header-inner, .page, .site-footer { width: min(100% - 32px, 760px); margin: auto; }
.header-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; padding: 12px 0; }
.brand { color: var(--ink); font-weight: 800; font-size: 22px; text-decoration: none; }
.brand::before { content: ""; display: inline-block; width: 12px; height: 12px; background: var(--brand); border-radius: 4px; margin-right: 8px; }
.header-inner nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.header-inner nav a { display: inline-flex; align-items: center; min-height: 44px; }
.page { padding: 24px 0 32px; }
h1 { margin: 4px 0 12px; font-size: clamp(23px, 5.8vw, 32px); line-height: 1.5; }
h2 { font-size: 21px; line-height: 1.6; margin: 24px 0 12px; }
h3 { font-size: 18px; line-height: 1.6; margin: 0 0 6px; }
p { margin: 8px 0; }
.eyebrow, .meta, .page-updated { color: var(--sub); font-size: 14px; }
.lead { margin-bottom: 16px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border-radius: 14px; background: var(--ink); color: #fff; font-weight: 700; text-decoration: none; }
.entrance-list { display: grid; gap: 16px; }
.entrance-card, .station-info, .station-group, .nearby { padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.entrance-card { box-shadow: 0 3px 12px rgba(17,24,39,.04); }
.station-info { background: var(--warn-soft); border-color: #f3d7b4; margin: 20px 0; }
.station-info h2, .nearby h2, .station-group h2 { margin-top: 0; }
.entry-gate { color: var(--ev); font-size: 17px; font-weight: 700; }
.entry-summary, .entry-note, .entry-hours, .info-note { white-space: pre-wrap; }
.entry-note { color: var(--warn); font-weight: 700; }
dl { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 6px 12px; margin: 12px 0; }
dt { color: var(--sub); }
dd { margin: 0; }
.pin { display: inline-block; padding: 4px 10px; border-radius: 10px; font-size: 14px; background: var(--ev-soft); color: var(--ev); }
.pin-estimated, .pin-unknown { color: var(--warn); background: var(--warn-soft); }
.route { margin-top: 16px; }
.route-note { font-size: 13px; color: var(--sub); }
.source-links, .station-links { margin: 8px 0 0; padding-left: 22px; }
.source-links li, .station-links li { padding: 4px 0; }
.source-links a, .station-links a { display: inline-block; min-height: 44px; padding: 8px 0; }
.nearby { margin-top: 28px; }
.nearby .meta { font-size: 13px; }
.station-group { margin-top: 16px; }
.site-footer { padding: 24px 0 40px; border-top: 1px solid #cdd2db; color: var(--sub); font-size: 13px; }
.site-footer h2 { color: var(--ink); font-size: 17px; margin-top: 0; }
.site-footer p { margin: 0 0 14px; }
@media (max-width: 380px) {
  .header-inner, .page, .site-footer { width: calc(100% - 24px); }
  .entrance-card, .station-info, .station-group, .nearby { padding: 16px; }
}
