:root {
  --ink: #1a1a1a;
  --muted: #5c5c5c;
  --accent: rgb(140, 196, 62);
  --accent-soft: #dfd;
  --rule: #e2e2e2;
  --bg: #ffffff;
  --table-head: #2a2a2a;
  --table-stripe: #f7f5f2;
}

/* Title block */
.doc-title {
  text-align: center;
  margin-bottom: 48px;
  padding-bottom: 28px;
  border-bottom: 2px solid var(--ink);
}
.doc-title p { margin: 0; }
.doc-title p:first-child {
  font-weight: 700;
  font-size: 42px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--accent);
  line-height: 1.1;
}
.doc-title p:nth-child(2) {
  font-weight: 400;
  font-size: 18px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 10px;
}

/* Headings */
article.content h2 {
  font-weight: 600;
  font-size: 26px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--ink);
  margin: 48px 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--accent);
}
article.content h2 strong { font-weight: inherit; }

article.content h3 {
  font-weight: 600;
  font-size: 19px;
  letter-spacing: 0.4px;
  color: var(--accent);
  margin: 30px 0 8px;
  text-transform: uppercase;
}
article.content h3 strong { font-weight: inherit; }

/* the first heading after a title shouldn't have a huge top gap */
article.content .doc-title + h2 { margin-top: 8px; }

article.content p {
  margin: 0 0 12px;
}

article.content p.center { text-align: center; }
article.content p.right { text-align: right; }

article.content strong { font-weight: 700; }
article.content em { font-style: italic; color: var(--muted); }

/* Tab stops -> render as inline spacing */
.tab { display: inline-block; width: 2.2em; }

/* Lists */
article.content ul {
  margin: 8px 0 18px;
  padding-left: 0;
  list-style: none;
}
article.content ul li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 6px;
}
article.content ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.7em;
  width: 7px;
  height: 7px;
  background: var(--accent);
  transform: rotate(45deg);
}

/* Tables */
table.stall-info {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0 28px;
  font-size: 15.5px;
}
table.stall-info th, table.stall-info td {
  border: 1px solid var(--rule);
  padding: 9px 12px;
  text-align: left;
  vertical-align: top;
}
table.stall-info th {
  background: var(--table-head);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.3px;
}

table.stall-info th strong, table.stall-info td strong { font-weight: 700; }
table.stall-info tbody tr:nth-child(even) td { background: var(--table-stripe); }

table.stall-info .col-type {
	width: 18%;
	min-width: 50px;
}
table.stall-info .col-size {
	width: 40%;
	min-width: 50px;
}
table.stall-info .col-passes {
	width: 18%;
	min-width: 50px;
}
table.stall-info .col-cost {
	width: 24%;
	min-width: 50px;
}

/* Images */
p.figure { margin: 18px 0; text-align: center; }
article.content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 14px 0;
}
p.figure img { display: inline-block; margin: 0 auto; }

@media (max-width: 700px) {
  .doc-title p:first-child { font-size: 32px; letter-spacing: 2px; }
  table.stall-info { font-size: 14px; }
  table.stall-info th, table.stall-info td { padding: 7px 8px; }
}
