/* Fonts */
@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600');

body, code {
	font-family: 'Source Sans Pro', sans-serif;
}

/* Un-break mobile pages. */
* {
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
}

/* Colors */
:root {
  --fg: #000000;
  --bg: #ffffff;
  --heading-fg: #444444;
  --heading-bg: #f3f3f5;
  --subheading-bg: #f5f4f3;
  --navbar-fg: #ffffff;
  --navbar-bg: #000000;
	--accent-fg: #f38025;
	--accent-bg: #f9c092;
  --link: #994400;
}

/* Remove margins/padding and start with a clean slate. */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, li, dl, dt, dd,
 form, fieldset, label, legend, input, address {
	padding: 0;
	margin: 0;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* Background color, font sizes */
body {
  margin: 0;
	padding: 5vw 4vw 3vw 4vw;
	color: var(--fg);
	background: var(--bg);
	font-size: 3vw;
	line-height: 1.5;
}

@media screen and (min-width: 534px) {
 body {
	font-size: 100%;
 }
}

/* Restore other margins and spacing */
h1, h2, h3, h4, h5, h6, p, li {
	margin: 0.7ex 0;
}
blockquote {
	margin: 0.7ex 1em;
}
ol, ul, dd {
	margin: 0.7ex 0em 0.7ex 1em;
}
li p {
	text-indent: 1em;
	margin: 0;
}
td, th {
	text-align: left;
	vertical-align: top;
}

/* Links */
a {
	color: var(--link);
	text-decoration: none;
	transition: .08s ease-in-out;
	-webkit-transition: .08s ease-in-out;
}
a:visited {
	color: var(--link);
}
a:hover, a:active {
	color: var(--accent-fg);
	text-decoration: underline;
}
a img {
	border-width: 0;
}
.clickable, .clickable a {
	text-decoration: none;
}
.clickable:hover, .clickable:active {
	border: solid var(--accent-fg);
}
.clickable:hover a, .clickable:active a,
.clickable:hover a:visited, .clickable:active a:visited {
	color: var(--accent-fg);
}

/* Table headings */
th {
	font-weight: bold;
	color: var(--heading-fg);
}

/* Page heading */
nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2vw;
  color: var(--navbar-fg);
	background: var(--navbar-bg);
	border-bottom: 0.25vw solid var(--accent-fg);
}
.top {
	width: 100%;
}
.head {
	font-size: 168%;
	padding-bottom: 1ex;
	color: var(--heading-fg);
}
.pronouns {
	font-size: 71%;
	font-weight: normal;
}
.subhead {
	font-size: 71%;
	line-height: 1.3;
	font-weight: normal;
	font-style: italic;
	color: var(--fg);
}
.top img {
	height: 26vw;
	text-align: center;
	border: 1px solid var(--heading-fg);
	box-shadow: 0.2vw 0.2vw 2vw 0.1vw #ddd;
}
.subhead img {
  height: 1em;
  width: 1em;
  text-align: center;
  border: none;
  box-shadow: none;
  padding: 0.3em 0.05em;
}

/* Top-level blocks */
.block {
	margin: 5ex 0 0 0;
	border: 1px solid #9090b0;
	width: 100%;
	box-shadow: 0.2vw 0.2vw 1.5vw 0vw #eee;
}
@media screen and (min-width: 534px) {
 .block {
	text-align: justify;
 }
}

.blockhead {
	font-weight: bold;
	color: var(--heading-fg);
	font-size: 119%;
	line-height: 150%;
	background-color: var(--heading-bg);
	border-bottom: 1px solid #9090b0;
	padding: 0.5ex 0.8333333em;
}
.blockpad {
	padding: 0.7ex 1em;
}

/* Class listing */
.classlisting {
	width: 100%;
	table-layout: fixed;
}
.classlisting td {
	white-space: normal;
}
.semester {
	width: 8em;
	white-space: nowrap;
}

/* Compact lists */
ul.compact li {
	margin: 0.25ex 0;
}

.column {
	float: left;
	width: 50%;
}
@media screen and (max-width: 700px) {
	.column {
		width: 100%;
	}
}
.row:after {
	content: "";
	display: table;
	clear: both;
}

/* Footer */
.footer {
	position: absolute;
	left: 0;
	right: 0;
  padding: 0.5vw 0.5vw 0.25vw 0.5vw;
	text-align: center;
	background: var(--subheading-bg);
	border-top: 0.25vw solid var(--accent-fg);
}

/* For domcollapse.js */
.trigger {
	cursor: pointer;
	background-color: var(--subheading-bg);
	transition: .08s ease-in-out;
	-webkit-transition: .08s ease-in-out;
}
.notrigger {
	background-color: var(--subheading-bg);
}
.trigger:hover {
	background-color: var(--accent-bg);
	transition: .08s ease-in-out;
	-webkit-transition: .08s ease-in-out;
}
.expanded {
	cursor: pointer;
	background-color: var(--subheading-bg);
	transition: .08s ease-in-out;
	-webkit-transition: .08s ease-in-out;
}
.expanded:hover {
	background-color: var(--accent-bg);
	transition: .08s ease-in-out;
	-webkit-transition: .08s ease-in-out;
}
.show {
	display: table;
}
.hide {
	display: none;
}

/* Mixin classes */
.nobr {
	white-space: nowrap
}
.nopad {
	padding: 0;
}
