main {
  display: grid;
  align-items: center;
  gap: 2rem;
  grid-auto-flow: dense;
  grid-template-columns: 1fr;
  justify-items: center;

  h1,
  h2,
  h3 {
    grid-column: 1/-1;
    justify-self: center;
    padding: 0;
  }

  h2,
  h3 {
    margin: 0;
  }

  @media (min-width: 640px) {
    grid-template-columns: repeat(2, 1fr);
    .left {
      grid-column: 1;
      justify-self: end;
    }

    .right {
      grid-column: 2;
      justify-self: start;
    }
  }
}

address {
  font-style: normal;
  &:first-line {
    font-size: 1.5em;
  }
}

dl {
  margin: 0;
  max-width: 320px;
}

dd,
dd + dt {
  margin-top: 1em;
}

img {
  min-width: 0;
  max-width: 100%;
}

#schedule {
  border-collapse: collapse;

  tr > :first-child {
    padding-left: 0;
    text-align: right;
  }
  tr > :not(:first-child) {
    text-align: left;
    padding-right: 0;
  }

  td,
  th {
    padding: 0 1ex;
  }
}

@media (min-width: 800px) {
  address,
  dt,
  #schedule {
    font-size: 1.5em;
  }
}
