html {
  -webkit-text-size-adjust: none;
  box-sizing: border-box;
}

body {
  color: #333333;
  font-family: "Fira Sans", sans-serif;
  font-feature-settings: "tnum";
  font-weight: 300;
  line-height: 1.5;
  margin: 0;
  padding: 1em 1.5em 5em 1.5em;
}

a {
  text-underline-offset: 0.25em;
}

h1 {
  color: #666;
  font-size: 0.75rem;
  font-weight: 300;
  /* margin: 0 0 0.25em 0; */
  text-transform: uppercase;
}

h2 {
  font-size: 1.25rem;
  font-weight: 300;
  margin: 0;
}

small {
  color: #666;
  display: block;
  font-size: 0.625rem;
  text-transform: uppercase;
}

.trips {
  list-style: none;
  padding-left: 0;
}

.trips li {
  margin-top: 1em;
}

.trips li:first-of-type {
  margin-top: 0;
}

#itinerary {
  margin-top: 2em;
}

.itinerary-part {
  margin-bottom: 1em;
  max-width: 24em;
  page-break-inside: avoid;
}

.itinerary-part h3 {
  font-size: 1rem;
  font-weight: 300;
  margin: 0;
}

.is-current {
  background-color: #fdf8e5;
}

.plane {
  border-left: 2px solid rgb(34, 130, 178);
  margin: 0.25rem 0;
  padding: 0.25rem 0.5rem;
}

.train {
  border-left: 2px solid rgb(178, 173, 7);
  margin: 0.25rem 0;
  padding: 0.25rem 0.5rem;
}

.ship {
  border-left: 2px solid rgb(23, 177, 255);
  margin: 0.25rem 0;
  padding: 0.25rem 0.5rem;
}

.car {
  border-left: 2px solid rgb(204, 199, 39);
  margin: 0.25rem 0;
  padding-left: 0.5rem;
}

.departure {
  margin-top: 0.5rem;
}

.departure time {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAEklEQVQIHWO4e/fufwZ0QJogAOc3DlmvkwsbAAAAAElFTkSuQmCC);
  display: inline-block;
  padding: 3px 5px 2px 5px;
}

.departure .nextday {
  display: inline;
}

.arrival {
  margin-top: 0.25rem;
}

.arrival time {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAEklEQVQIHWO4e/fufwZ0QJogAOc3DlmvkwsbAAAAAElFTkSuQmCC);
  display: inline-block;
  padding: 3px 5px 2px 5px;
}

.arrival .nextday {
  display: inline;
}

.layover {
  border-left: 2px solid #999;
  color: #666;
  font-size: 1rem;
  line-height: 2;
  margin: 0.5rem 0;
  padding: 0 0.5rem;
}

.lodging {
  border-left: 2px solid rgb(102,102,102);
  padding: 0.25rem 0.5rem;
}

.h-adr {
  display: inline-block;
  font-size: 16px;
  font-size: 1rem;
  margin-top: 0.75rem;
}

@media (min-width: 30em) {
  body {
    padding: 3em;
  }
}

@media print {
  body {
    padding-bottom: 0;
    padding-top: 0;
  }
}
