*{
  --content-w: 360px;
  --line-color: gray;
}
.header{
  position: sticky; /* 固定 */
  width: 100%;
  z-index: 2;
  top: 0;
}
.header-top{
  display: flex;
  padding: 0 6px;
  justify-content: space-between;
  align-items: center;
  height: 44px;
  background-color: hsl(0, 0%, 94%);
}
.site-name, .menu-btn{ padding: 4px; }
.site-name{ font-size: 20px; }
.menu-btn{
  display: flex;
  align-items: center;
  width: 34px;
  appearance: none;
  border: 0;
  border-radius: 0;
  background-color: transparent;
}
.menu-btn[data-menu-visible="true"]{ opacity: .5; }
.menu-btn-icon{
  width: 100%;
  fill: var(--cmn-font-color);
}
.menu{
  position: absolute;
  z-index: 2;
  max-width: 240px;
  right: 0;
  background-color: white;
  box-shadow: -1px 1px 2px gray;
}
.menu[data-visible="false"]{ visibility: hidden; }
.menu-link{
  display: block;
  padding: 4px;
  border-top: 1px solid var(--line-color);
  text-decoration: none;
}
.menu-link:last-child{ border-bottom: 1px solid var(--line-color); }
.current-time-display{
  text-align: center;
  border: 1px solid var(--line-color);
  border-left: 0;
  border-right: 0;
  background-color: white;
}
.select-lines-outer{
  margin: auto;
  padding: 8px;
  max-width: var(--content-w);
}
.select-lines{
  padding: 2px;
  width: 100%;
  border: 1px solid currentColor;
  border-radius: 0;
  color: var(--cmn-font-color);
  background-color: white;
}
.bus-road-display{
  margin: auto; /* 横中央揃え */
  max-width: 260px;
  padding-bottom: 8px;
}
.stop-outer, .road-outer{
  display: flex;
  --road-w: 36px;
  --road-h: 48px;
  --icon-w: 32px;
}
.stop, .road{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: hsl(0, 0%, 70%);
}
.stop{
  width: var(--road-w);
  height: var(--road-w);
}
.road{
  width: var(--road-w);
  height: var(--road-h);
}
/* アイコン装飾 */
.stop-icon, .road-icon{ position: relative; }
.stop-icon{
  width: var(--icon-w);
  height: var(--road-w);
}
.road-icon{
  width: var(--icon-w);
  height: var(--road-h);
}
.stop-icon-circle, .road-icon-bar{
  position: absolute;
  /* 縦横中央揃え */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.stop-icon-circle{
  width: 12px;
  height: 12px;
  z-index: 1; /* 縦線より上に丸を重ねる */
  border: 2px solid var(--line-color);
  border-radius: 50%; /* 丸にする */
  background-color: white;
}
.road-icon-bar{
  width: 4px;
  height: calc(var(--road-h) + var(--road-w));
  background-color: var(--line-color);
}
.stop-name{
  display: flex;
  margin-left: 12px;
  width: 180px;
  height: var(--road-w);
  align-items: center; /* 縦中央揃え */
}
.bus-icon{ width: 30px; }
