ol.album-track-listing {
  counter-reset: album-track-number;
  padding: 0;
}
ol.album-track-listing > li {
  display: block;
}
ol.album-track-listing > li::before {
  display: inline;
  content: "Track #" counter(album-track-number) ": ";
  counter-increment: album-track-number;
  font-weight: bold;
}
ol.album-track-listing > li > .metadata {
  margin: 0 0 0 2.5em;
}

/* Fancy inline styling for a collection of keys and value lists. */
/* TODO: Find a way to put commas between adjacent <dt> elements. */
dl.metadata > dt,
dl.metadata > dd,
dl.metadata > dd > ul {
  display: inline;
  margin: 0;
  padding: 0;
  font-weight: inherit;
}
dl.metadata > dd + dt::before {
  white-space: pre;
  content: "\A";
}
dl.metadata > dt::after {
  content: ": ";
}
dl.metadata > dd > ul > li {
  display: inline;
}
dl.metadata > dd > ul > li::after {
  content: ", ";
}
dl.metadata > dd > ul > li:last-child::after {
  content: none;  /* Suppress comma after last item */
}

/* Spacing between entries in things like definition lists */
ol.album-track-listing > li + li,
dl > dd + dt {
  margin-top: 0.5em;
}
