/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
  - Variables
# Normalize
# Branding
  - Typography
  - Elements
  - Links
  - Forms
# Layout
# Components
  - Filters
  - Pagination
  - Breadcrumbs
  - Headerfooter
  - Returntotop
--------------------------------------------------------------*/
@import url("https://fonts.googleapis.com/css?family=Lora:400,400i,700,700i|Open+Sans:400,400i|Public+Sans:400,400i,700,700i,800,800i&display=swap");
:root {
  --layout-padding: 0.9375rem;
  --layout-padding-sm: 0.9375rem;
  --layout-padding-md: 1.875rem;
  --layout-padding-xl: 0;
  --font-size-4xs: 0.625rem;
  --font-size-3xs: 0.75rem;
  --font-size-2xs: 0.875rem;
  --font-size-xs: 1rem;
  --font-size-s: 1.125rem;
  --font-size-m: 1.25rem;
  --font-size-l: 1.5rem;
  --font-size-xl: 1.75rem;
  --font-size-2xl: 2.5rem;
  --font-size-3xl: 2.75rem;
  --font-size-4xl: 3rem;
  --font-size-5xl: 4.375rem;
  --line-height-s: 1rem;
  --line-height-m: 1.5rem;
  --line-height-l: 2rem;
  --line-height-xl: 2.5rem;
  --line-height-2xl: 3rem;
  --line-height-3xl: 3.5rem;
  --line-height-4xl: 4rem;
  --line-height-5xl: 5rem;
  --line-height-base: var(--line-height-l);
  --letter-spacing-s: 0.1rem;
  --color-maroon-900: #801a1a;
  --color-maroon-800: #881c1c;
  --color-red: #fe3b1f;
  --color-yellow: #ffc72c;
  --color-blue-1000: #007586;
  --color-blue-900: #008497;
  --color-blue-800: #0094a9;
  --color-blue-700: #00aec7;
  --color-blue-600: #00bfda;
  --color-blue-500: #0dcfeb;
  --color-blue-400: #1cd8f3;
  --color-blue-300: #45e4fb;
  --color-black-1000: #000;
  --color-black-900: #0e0e0e;
  --color-black-800: #151515;
  --color-black-700: #242424;
  --color-black-600: #2f3435;
  --color-black-500: #657076;
  --color-black-400: #cbd3d6;
  --color-black-300: #e0e5e6;
  --color-black-200: #eef1f1;
  --color-black-100: #f7f8f8;
  --color-black-0: #fff;
  --color-mint-1000: #41897c;
  --color-mint-900: #57a093;
  --color-mint-800: #86c8bc;
  --color-mint-700: #a3d9cf;
  --color-mint-500: #d4eee9;
  --color-white: var(--color-black-0);
  --color-black: var(--color-black-1000);
  --color-transparent: transparent;
  --color-accent: var(--color-maroon-900);
  --color-accent-light: var(--color-maroon-800);
  --color-text: var(--color-black-800);
  --color-title: var(--color-black-800);
  --color-outline: var(--color-blue-500);
  --color-focus: var(--color-blue-800);
  --color-disabled: var(--color-black-500);
  --v-space-6xs: 0.25rem;
  --v-space-5xs: 0.5rem;
  --v-space-4xs: 1rem;
  --v-space-3xs: 1.5rem;
  --v-space-2xs: 2rem;
  --v-space-xs: 2.5rem;
  --v-space-s: 3rem;
  --v-space-m: 3.5rem;
  --v-space-l: 4rem;
  --v-space-xl: 4.5rem;
  --v-space-2xl: 5rem;
  --v-space-3xl: 6rem;
  --v-space-4xl: 6.5rem;
  --v-space-5xl: 7.5rem;
  --v-separation-s: var(--v-space-s);
  --v-separation-m: var(--v-space-xl);
  --v-separation-l: var(--v-space-2xl);
  --v-separation-xl: var(--v-space-3xl);
  --v-separation: var(--v-separation-s);
  --gutter-s: var(--v-space-3xs);
  --gutter-m: var(--v-space-xs);
  --gutter-l: var(--v-space-m);
  --gutter: var(--gutter-s);
}

/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
	 ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
	 ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
  margin-right: 0.25rem;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
	 ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
	 ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/*--------------------------------------------------------------
# Branding
--------------------------------------------------------------*/
body,
button,
input,
select,
optgroup,
textarea {
  color: #212721;
  font-family: "Public Sans", Arial, Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6,
table caption {
  clear: both;
  font-weight: 800;
  text-wrap: balance;
}

h1 {
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-xl);
}

h2 {
  font-size: var(--font-size-xl);
  line-height: var(--line-height-xl);
}

h3, .h3, table caption {
  font-size: var(--font-size-l);
  line-height: var(--line-height-l);
}

h4 {
  font-size: var(--font-size-m);
  line-height: var(--line-height-s);
}

h5 {
  font-size: var(--font-size-s);
  line-height: var(--line-height-s);
}

h6 {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-s);
}

@media (min-width: 938px) {
  h1 {
    font-size: var(--font-size-3xl);
    line-height: var(--line-height-2xl);
  }
  h2 {
    font-size: var(--font-size-2xl);
    line-height: var(--line-height-2xl);
  }
  h3, .h3, table caption {
    font-size: var(--font-size-xl);
    line-height: var(--line-height-xl);
  }
  h4 {
    font-size: var(--font-size-l);
    line-height: var(--line-height-m);
  }
  h5 {
    font-size: var(--font-size-m);
    line-height: var(--line-height-m);
  }
  h6 {
    font-size: var(--font-size-s);
    line-height: var(--line-height-m);
  }
}
@media (min-width: 1128px) {
  h1 {
    font-size: var(--font-size-4xl);
    line-height: var(--line-height-3xl);
  }
  h2 {
    font-size: var(--font-size-3xl);
    line-height: var(--line-height-3xl);
  }
  h3, .h3, table caption {
    font-size: var(--font-size-2xl);
    line-height: var(--line-height-2xl);
  }
  h4 {
    font-size: var(--font-size-xl);
    line-height: var(--line-height-l);
  }
  h5 {
    font-size: var(--font-size-l);
    line-height: var(--line-height-l);
  }
  h6 {
    font-size: var(--font-size-m);
    line-height: var(--line-height-l);
  }
}
p {
  margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

abbr,
acronym {
  border-bottom: 1px dotted #373a36;
  cursor: help;
}

big {
  font-size: 125%;
}

body {
  background: #fff;
}

hr {
  background-color: #00aec7;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

ul,
ol {
  margin: 0 0 1.5em 3em;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0 1.5em 1.5em;
}

table {
  margin: 0 0 1.5em;
  width: 100%;
  max-width: 100%;
  border: 0;
}
table caption {
  text-align: left;
  margin-block-start: 1em;
  margin-block-end: 0.5em;
}
table th {
  text-align: left;
  padding: calc(var(--v-space-3xs) + var(--v-space-6xs)) var(--v-space-5xs);
}
table th.description {
  width: 50%;
}
table td {
  text-align: left;
  padding: calc(var(--v-space-3xs) + var(--v-space-6xs)) var(--v-space-5xs);
}
table tbody tr {
  border-bottom: 2px solid var(--color-white);
  font-size: var(--font-size-xs);
  font-weight: 500;
  line-height: var(--line-height-m);
  text-align: left;
  vertical-align: top;
}
table tbody tr:nth-child(odd) {
  background-color: var(--color-black-100);
}
table tbody tr:nth-child(2n) {
  background-color: var(--color-black-200);
}
table thead {
  border-bottom: #373a36;
}
table thead tr {
  background-color: var(--color-accent-light);
  vertical-align: top;
  color: var(--color-white);
}
table thead th {
  font-size: var(--font-size-xs);
  font-weight: 700;
  line-height: var(--line-height-m);
  padding: var(--v-space-4xs) var(--v-space-5xs);
  text-align: left;
}
table #class_search_results_body a {
  white-space: nowrap;
}

@media screen and (max-width: 600px) {
  table thead {
    display: none;
  }
  table td,
  table th {
    display: flex;
  }
  table td::before,
  table th::before {
    content: attr(label);
    font-weight: bold;
    width: 120px;
    min-width: 120px;
  }
  table tbody {
    border-top: 5px solid var(--color-accent-light);
  }
}
a {
  color: #881c1c;
  transition: 0.5s;
  -webkit-text-decoration: underline solid 2px var(--color-accent);
  text-decoration: underline solid 2px var(--color-accent);
  text-underline-offset: 4px;
}
a:visited {
  color: #881c1c;
}
a:hover, a:focus, a:active {
  color: #002554;
}
a:focus {
  outline: thin dotted;
}
a:hover, a:active {
  outline: 0;
}

button,
input[type=button],
input[type=reset],
input[type=submit] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #881c1c;
  border: 2px solid #881c1c;
  border-radius: 0;
  cursor: pointer;
  display: inline-block;
  font-size: var(--font-size-s);
  font-weight: 600;
  line-height: 1;
  min-height: 3.5rem;
  padding: 1rem 2rem;
  text-decoration: none;
  color: #fff;
  transition: border 0.12s ease-in, background-color 0.12s ease-in;
  width: 250px;
  max-width: 100%;
  margin: 0;
}
button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover {
  background: #212721;
  border-color: #212721;
  transition: border 0.12s ease-in, background-color 0.12s ease-in;
}
button:active, button:focus,
input[type=button]:active,
input[type=button]:focus,
input[type=reset]:active,
input[type=reset]:focus,
input[type=submit]:active,
input[type=submit]:focus {
  background: #212721;
  border-color: #212721;
  transition: border 0.12s ease-in, background-color 0.12s ease-in;
}
button:disabled, button[disabled],
input[type=button]:disabled,
input[type=button][disabled],
input[type=reset]:disabled,
input[type=reset][disabled],
input[type=submit]:disabled,
input[type=submit][disabled] {
  cursor: default !important;
  background-color: var(--color-black-100) !important;
  color: var(--color-black-500) !important;
  border-color: var(--color-black-100) !important;
}
button.text-button,
input[type=button].text-button,
input[type=reset].text-button,
input[type=submit].text-button {
  background-color: transparent;
  border: none;
  color: var(--color-accent-light);
  display: inline-block;
  font-size: var(--font-size-3xs);
  font-weight: 500;
  line-height: var(--line-height-s);
  padding: 0;
  -webkit-text-decoration: underline solid 2px var(--color-transparent);
  text-decoration: underline solid 2px var(--color-transparent);
  text-underline-offset: 4px;
  width: auto;
  margin: 0;
}
button.text-button:hover,
input[type=button].text-button:hover,
input[type=reset].text-button:hover,
input[type=submit].text-button:hover {
  color: var(--color-black-1000);
  -webkit-text-decoration-color: var(--color-accent-light);
  text-decoration-color: var(--color-accent-light);
  transition: color 0.12s ease-in, -webkit-text-decoration-color 0.12s ease-in;
  transition: color 0.12s ease-in, text-decoration-color 0.12s ease-in;
  transition: color 0.12s ease-in, text-decoration-color 0.12s ease-in, -webkit-text-decoration-color 0.12s ease-in;
}
button.text-button:active, button.text-button:focus,
input[type=button].text-button:active,
input[type=button].text-button:focus,
input[type=reset].text-button:active,
input[type=reset].text-button:focus,
input[type=submit].text-button:active,
input[type=submit].text-button:focus {
  color: var(--color-black-1000);
  outline: 2px solid var(--color-focus);
  outline-offset: 4px;
}

label {
  display: block;
  color: var(--color-text);
  font-family: var(--font-sans);
  line-height: var(--line-height-base);
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea {
  color: #505759;
  width: 100%;
  background-color: var(--color-white);
  border: 2px solid var(--color-black-300);
  border-radius: 0;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-m);
  padding: var(--v-space-5xs) var(--v-space-4xs);
  transition: border 0.12s ease-in, outline 0.12s ease-in;
}
input[type=text]:hover,
input[type=email]:hover,
input[type=url]:hover,
input[type=password]:hover,
input[type=search]:hover,
input[type=number]:hover,
input[type=tel]:hover,
input[type=range]:hover,
input[type=date]:hover,
input[type=month]:hover,
input[type=week]:hover,
input[type=time]:hover,
input[type=datetime]:hover,
input[type=datetime-local]:hover,
input[type=color]:hover,
textarea:hover {
  border: 2px solid var(--color-black-900);
  transition: border 0.12s ease-in;
}
input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=range]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
textarea:focus {
  color: #373a36;
  box-shadow: 0 0 48px var(--color-outline);
  outline: 2px solid var(--color-focus);
  transition: outline 0.12s ease-in;
}

select {
  border: 1px solid #a2aaad;
}

textarea {
  width: 100%;
}

/*--------------------------------------------------------------
# Layout
--------------------------------------------------------------*/
.page {
  padding-left: var(--layout-padding);
  padding-right: var(--layout-padding);
  max-width: 920px;
  margin: var(--v-separation) auto;
}

.page-main {
  margin: var(--gutter) 0;
}

@media (min-width: 576px) {
  .page {
    padding-left: var(--layout-padding-sm);
    padding-right: var(--layout-padding-sm);
  }
}
@media (min-width: 938px) {
  .page {
    padding-left: var(--layout-padding-md);
    padding-right: var(--layout-padding-md);
  }
}
@media (min-width: 1128px) {
  .page {
    display: grid;
    grid-template-columns: 25% auto;
    grid-template-areas: "header header" "sidebar main" "footer footer";
    gap: var(--gutter);
  }
  .page-header {
    grid-area: header;
  }
  .page-main {
    grid-area: main;
    overflow: hidden; /* Resolves issue with <pre> elements forcing full width. */
    margin: 0;
  }
  .page-filters {
    grid-area: sidebar;
  }
  .page-footer {
    grid-area: footer;
  }
  .no-sidebar .page {
    display: grid;
    grid-template-columns: auto;
    grid-template-areas: "header" "main" "sidebar" "footer";
  }
  .no-sidebar .class-subdetails-wrapper {
    grid-area: sidebar;
  }
  .page {
    max-width: 1110px;
  }
}
@media (min-width: 1428px) {
  .page {
    max-width: 1410px;
  }
}
.title-wrapper p,
.disclaimer-wrapper p {
  max-width: 80ch;
}

.disclaimer-wrapper {
  margin: var(--gutter-l) 0;
}

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
#extra-filters {
  border-bottom: 2px solid var(--color-black-300);
  padding-bottom: 2em;
}

#hide-descriptions {
  padding: 0.5em;
  font-size: 1em;
}

.filters-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--v-space-3xs) var(--v-space-5xs);
}
.filters-buttons input[type=submit],
.filters-buttons button[type=submit],
.filters-buttons .text-button {
  position: relative;
  flex: 1;
  margin: 0;
}

.filter,
.filters-buttons {
  margin-bottom: var(--v-space-3xs);
}

.filters-form__header {
  align-items: center;
  border-bottom: 2px solid var(--color-accent-light);
  display: flex;
  flex-flow: row nowrap;
  margin-bottom: var(--v-space-2xs);
  padding-bottom: var(--v-space-4xs);
}

.filters-form__title {
  border-bottom: 0;
  color: var(--color-title);
  font-size: var(--font-size-xs);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-s);
  line-height: var(--line-height-m);
  margin: 0;
  padding-bottom: var(--v-space-5xs);
  text-transform: uppercase;
}

.filters-form__title:before {
  background-image: url(data:image/svg+xml,%3Csvg%20role%3D%22img%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3EFilters%3C%2Ftitle%3E%3Cpath%20fill%3D%22%23151515%22%20d%3D%22M0%202h16v1.333H0zM0%2012.666h16v1.333H0zM0%207.334h16v1.333H0z%22%2F%3E%3Cpath%20fill%3D%22%23151515%22%20d%3D%22M3.26%200h1.304v5.333H3.26zM6.522%2010.666h1.304v5.333H6.522zM10.435%206h1.304v4h-1.304z%22%2F%3E%3C%2Fsvg%3E%0A);
  content: "";
  display: inline-block;
  height: var(--v-space-4xs);
  margin-bottom: var(--v-space-6xs);
  margin-right: var(--v-space-4xs);
  vertical-align: middle;
  width: var(--v-space-4xs);
}

#toggle-advanced-filters {
  position: relative;
  width: 100%;
  background-color: transparent;
  border: none;
  border-bottom: 2px solid var(--color-black-300);
  color: var(--color-accent);
  font-size: var(--font-size-2xs);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-s);
  line-height: var(--line-height-s);
  line-height: var(--line-height-m);
  padding: var(--v-space-4xs) var(--v-space-4xs) var(--v-space-4xs) 0;
  text-transform: uppercase;
  text-align: left;
}

#toggle-advanced-filters:before {
  border: 6px solid transparent;
  border-top: 6px solid var(--color-black);
  content: "";
  display: block;
  height: 0;
  pointer-events: none;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(calc(-50% + 3px));
  transform: translateY(calc(-50% + 3px));
  width: 0;
  right: 0;
}

#toggle-advanced-filters[aria-pressed=true] {
  color: var(--color-text);
}

#toggle-advanced-filters[aria-pressed=true]:before {
  border-bottom-color: var(--color-accent);
  border-top-color: transparent;
  -webkit-transform: translateY(calc(-50% - 3px));
  transform: translateY(calc(-50% - 3px));
}

/* fancy filters */
.multi-select .selected-options label::after {
  content: "X"/"";
  cursor: pointer;
  font-weight: 800;
}

.selected-options {
  padding: 0;
  border: 0;
  margin-inline: 0;
}
.selected-options label {
  font-size: var(--font-size-2xs);
  line-height: var(--line-height-m);
  width: 100%;
  background: var(--color-black-200);
  color: var(--color-black-600);
  border-radius: 0;
  border: none;
  padding: 0.5em 1em;
  display: flex;
  justify-content: space-between;
  cursor: pointer;
}
.selected-options label:hover, .selected-options label:focus {
  background: var(--color-black-400);
}

.unselected-options {
  padding: 0;
  border: 0;
  margin-inline: 0;
}

.spinner {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
}

.spinner:not(.hidden) + span {
  visibility: hidden;
}

.hidden {
  display: none !important;
}

.hide-description .description {
  display: none;
}

.search_results_msg_holder {
  display: flex;
  justify-content: space-between;
  align-items: end;
  font-weight: 600;
}

#class_search_results {
  margin: 2px 0 1.5em;
  border-collapse: collapse;
}
#class_search_results td,
#class_search_results th {
  border: 2px solid white;
}
#class_search_results td:first-child,
#class_search_results th:first-child {
  border-left: 0;
}
#class_search_results td:last-child,
#class_search_results th:last-child {
  border-right: 0;
}

fieldset.multi-select {
  position: relative;
}
fieldset.multi-select[data-open=true]:before {
  content: "X"/"";
  position: absolute;
  right: 0;
  top: -24px;
  font-weight: 600;
  width: 24px;
  height: 24px;
  line-height: 1;
  border: 2px groove rgb(192, 192, 192);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: var(--color-black-200);
}

.selected-options label::after {
  content: "X"/"";
}

.search_results_count_msg:focus-visible, .search_results_count_msg:focus {
  outline-width: 0;
  border: 0px solid black;
  border-bottom-width: 1px;
  margin-bottom: -1px;
}

.toggle-hidden {
  display: none;
}

#filter_display ul {
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}
#filter_display li {
  display: inline;
  white-space: nowrap;
}
#filter_display li:after {
  content: ", ";
}
#filter_display li:first-child:before {
  display: block;
  font-weight: 700;
  content: "Currently selected filters:";
}
#filter_display li:last-child:after {
  content: none;
}
#filter_display:before {
  content: "";
}

.system-message {
  display: block;
  border: solid 3px #00aec7;
  background-color: #f7f8f8;
  padding: 1.5rem;
  margin: 1.5rem;
}
.system-message strong {
  font-size: 1.25rem;
}

.page-footer {
  border-top: solid 1px var(--color-black-600);
  margin: 1rem 0 1rem 0;
}
.page-footer nav {
  margin: 1rem 0 1rem 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
}
.page-footer nav label {
  margin: 0 1rem 0 0;
}
.page-footer nav ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 2rem 0 0;
  padding: 0;
}
.page-footer nav ul li {
  margin: 0.5rem;
}
.page-footer nav ul li button.button-as-link {
  background-color: inherit;
  text-decoration: underline;
  padding: 0;
  border: 0;
  width: auto;
  font-weight: 400;
  padding: 0.5rem 1rem;
  display: block;
  min-width: 24px;
  min-height: 24px;
  color: #881c1c;
  transition: 0.5s;
  -webkit-text-decoration: underline solid 2px var(--color-accent);
  text-decoration: underline solid 2px var(--color-accent);
  text-underline-offset: 4px;
}
.page-footer nav ul li button.button-as-link:hover {
  background-color: var(--color-maroon-800);
  color: var(--color-black-0);
  text-decoration: underline solid 2px var(--color-black-0);
}
.page-footer nav ul li button.button-as-link:disabled, .page-footer nav ul li button.button-as-link[disabled] {
  cursor: default !important;
  background-color: var(--color-black-100) !important;
  color: var(--color-black-500) !important;
  text-decoration: underline solid 2px var(--color-black-100) !important;
}
.page-footer nav ul li.active button.button-as-link {
  font-weight: 800;
  background-color: var(--color-black-100);
}
.page-footer nav ul li.active button.button-as-link:hover {
  background-color: var(--color-maroon-800);
  color: var(--color-black-0);
  text-decoration: underline solid 2px var(--color-black-0);
}
.page-footer nav > div {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
}
.page-footer nav > div input[type=submit] {
  width: auto;
}
.page-footer nav > div select#skip-to-page {
  margin: 0 2rem 0 0;
}

#class_search_results_pagination li.active {
  font-weight: bold;
}

#class_search_results_pagination li.noselect {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--v-space-5xs);
}

.class-details-subject {
  display: inline-block;
  background: #f7f8f8;
  padding: 0.25rem 0.5rem;
}
.class-details-subject:after {
  border-bottom: 0.313rem solid transparent;
  border-left: 0.438rem solid var(--color-black-300);
  border-top: 0.313rem solid transparent;
  content: "";
  display: inline-block;
  height: 0;
  margin-left: calc(var(--v-space-5xs) + var(--v-space-6xs));
  width: 0;
}
.class-details-subject:last-of-type::after {
  content: none;
}

/*!
 * Styles from https://www.umass.edu/static/branding/css/styles.css
 * Removed unneeded overrides, removed unused search styling
 */
/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */
.hamburger {
  padding: 0.5rem 0.5rem;
  display: inline-block;
  cursor: pointer;
  transition-property: opacity, filter;
  transition-duration: 0.15s;
  transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible;
}

.hamburger:hover {
  opacity: 1;
}

.hamburger.is-active:hover {
  opacity: 1;
}

.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
  background-color: #000;
}

.hamburger-box {
  width: 40px;
  height: 24px;
  display: inline-block;
  position: relative;
}

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -2px;
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
  width: 40px;
  height: 4px;
  background-color: #fff;
  border-radius: 4px;
  position: absolute;
  transition-property: transform;
  transition-duration: 0.15s;
  transition-timing-function: ease;
}

.hamburger-inner::before, .hamburger-inner::after {
  content: "";
  display: block;
}

.hamburger-inner::before {
  top: -10px;
}

.hamburger-inner::after {
  bottom: -10px;
}

/*
 * Collapse
 */
.hamburger--collapse .hamburger-inner {
  top: auto;
  bottom: 0;
  transition-duration: 0.13s;
  transition-delay: 0.13s;
  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.hamburger--collapse .hamburger-inner::after {
  top: -20px;
  transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
}

.hamburger--collapse .hamburger-inner::before {
  transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.hamburger--collapse.is-active .hamburger-inner {
  transform: translate3d(0, -10px, 0) rotate(-45deg);
  transition-delay: 0.22s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

.hamburger--collapse.is-active .hamburger-inner::after {
  top: 0;
  opacity: 0;
  transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
}

.hamburger--collapse.is-active .hamburger-inner::before {
  top: 0;
  transform: rotate(-90deg);
  transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.blocked-style {
  border: 1px solid #fff;
  padding: 12px;
  border-radius: 5px;
  background: #eee;
}

#umass--global--header #collegiatem {
  display: none;
  height: 0;
  width: 0;
}

#umass--global--header #wordmark {
  border: none;
  display: block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background-size: contain;
  background-position: left center;
  margin: 0;
  padding: 0;
}

@media only screen and (max-width: 784px) {
  #umass--global--header #wordmark {
    background-image: url(//www.umass.edu/static/branding/images/UMassAmherst_shortform-reversed.svg);
    background-repeat: no-repeat;
    height: 30px;
    width: 173px;
    margin-left: 1rem;
    margin-top: 0;
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 785px) {
  #umass--global--header {
    padding: 0 1rem;
  }
  #umass--global--header #wordmark {
    background-image: url(//www.umass.edu/static/branding/images/UMassAmherst_longform-reversed.svg);
    background-repeat: no-repeat;
    height: 30px;
    width: 411px;
  }
}
#umass--global--footer {
  font-family: "Open Sans", sans-serif;
}

#umass--global--footer #umass--logo-longform--stacked,
#umass--global--footer #umass--seal {
  max-width: 100px !important;
  height: auto;
  margin: 1rem 0 0;
}

#umass--global--footer #umass--seal svg {
  display: block;
}

@media only screen and (max-width: 599px) {
  #umass--global--footer #umass--logo-longform--stacked,
  #umass--global--footer #umass--seal {
    margin: 1rem auto 0;
  }
}
.umass-platform-framework #umass--global--header {
  padding: 0;
}

.umass-platform-framework #umass--global--header #container {
  max-width: 920px;
  padding: 0 15px;
}

@media only screen and (max-width: 784px) {
  .umass-platform-framework #umass--global--header #wordmark {
    margin-left: 0.375rem;
  }
}
@media only screen and (min-width: 785px) {
  .umass-platform-framework #umass--global--header #wordmark {
    margin-left: 0.5rem;
  }
}
@media only screen and (min-width: 938px) {
  .umass-platform-framework #umass--global--header #container {
    max-width: 920px !important;
    padding: 0 30px;
  }
}
@media only screen and (min-width: 1128px) {
  .umass-platform-framework #umass--global--header #container {
    max-width: 1110px !important;
  }
}
@media only screen and (min-width: 1428px) {
  .umass-platform-framework #umass--global--header #container {
    max-width: 1410px !important;
  }
}
.umass-platform-framework #umass--global--header #collegiatem {
  display: block;
  width: 36px;
  height: 36px;
}

.umass-platform-framework #umass--global--footer .container {
  max-width: 920px;
  padding: 0 15px 1rem;
}

.umass-platform-framework #umass--global--footer .container #umass--global--footer-wordmark {
  flex-basis: 100px;
}

@media only screen and (min-width: 738px) {
  .umass-platform-framework #umass--global--footer .container {
    width: auto;
    max-width: 920px !important;
  }
}
@media only screen and (min-width: 938px) {
  .umass-platform-framework #umass--global--footer .container {
    max-width: 920px !important;
    padding: 0 30px 1rem;
  }
}
@media only screen and (min-width: 1128px) {
  .umass-platform-framework #umass--global--footer .container {
    max-width: 1110px !important;
  }
}
@media only screen and (min-width: 1428px) {
  .umass-platform-framework #umass--global--footer .container {
    max-width: 1410px !important;
  }
}
@media only screen and (min-width: 600px) {
  #umass--global--header #umass--global--navigation--navicon {
    display: none;
  }
  #umass--global--header #umass--global--navigation--links {
    text-align: right;
    list-style: none;
    margin: 0;
    padding: 0;
    display: block;
    line-height: 2;
  }
  #umass--global--header #umass--global--navigation--links li {
    display: inline-block;
    margin: 0 0.5rem;
    padding: 0;
  }
  #umass--global--header #umass--global--navigation--links a {
    display: inline-block;
    color: #fff;
    text-decoration: none;
    border-bottom: none;
    font-weight: 500;
  }
  #umass--global--header #umass--global--navigation--links a:hover {
    text-decoration: underline;
  }
  #umass--global--header #umass--global--navigation--links #umass--global--search {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    background-size: contain;
    background-position: left center;
    background-image: url(//www.umass.edu/static/branding/images/search-reversed.svg);
    background-repeat: no-repeat;
    height: 1.5rem;
    width: 1.5rem;
    position: relative;
    bottom: -0.4rem;
  }
}
#umass--global--header .hamburger {
  background: transparent;
}

#umass--global--header .hamburger-box {
  height: 32px;
}

@media only screen and (max-width: 599px) {
  #umass--global--header::after {
    content: "";
    position: fixed;
    z-index: 502;
    top: 0;
    right: 0;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    opacity: 0;
    transition-property: opacity;
    transition-delay: 0.13s;
    transition-duration: 0.26s;
  }
  #umass--global--header.overlay-active::after {
    display: block;
    background: rgba(255, 255, 255, 0.95);
    opacity: 1;
    clip: auto;
    top: 0;
    right: 0;
    width: 100vw;
    height: 100vh;
  }
  #umass--global--header #umass--global--navigation {
    position: static;
  }
  #umass--global--header #umass--global--navigation--navicon {
    position: absolute;
    margin: 0;
    top: 0.25rem;
    right: 0.5rem;
    z-index: 503;
    width: auto;
  }
  #umass--global--header #umass--global--navigation--navicon.is-active {
    position: fixed;
  }
  #umass--global--header #umass--global--navigation--links {
    position: absolute;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    transition-property: opacity;
    transition-delay: 0.25s;
    transition-duration: 0.25s;
    opacity: 0;
    z-index: 504;
    list-style: none;
    margin: 0;
    padding: 0;
    display: block;
    max-width: 280px;
    font-size: 3rem;
    text-align: center;
    left: 50vw;
    top: 50vh;
    transform: translate(-50%, -50%);
  }
  #umass--global--header #umass--global--navigation--links.is-active {
    border: 0;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: auto;
    position: fixed;
    white-space: wrap;
    width: auto;
    opacity: 1;
  }
  #umass--global--header #umass--global--navigation--links li {
    display: block;
    margin: 2rem 1rem;
    padding: 0;
  }
  #umass--global--header #umass--global--navigation--links a {
    display: inline-block;
    color: #881c1c;
    text-decoration: none;
    border-bottom: none;
    font-weight: 500;
    font-size: 1.5rem;
  }
  #umass--global--header .umass--global--navigation--navicon--label {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
}
#umass--global--header {
  font-family: "Open Sans", sans-serif;
  font-size: initial;
  width: 100% !important;
  background: #881c1c;
  position: relative;
  z-index: 5;
  border-bottom: solid 1px #777;
  box-sizing: border-box;
}

#umass--global--header * {
  box-sizing: border-box;
}

#umass--global--header li {
  font-size: initial;
}

#umass--global--header #container {
  width: 100%;
  max-width: 1200px !important;
  height: 60px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  box-shadow: none;
  background: none;
}

#umass--global--header #umass--global--navigation {
  position: static;
  flex-grow: 1;
}

#umass--global--header #umass--global--navigation a::after {
  content: none;
  margin: 0;
}

#umass--global--header button {
  box-shadow: none;
  border-radius: 0;
  padding: 0;
}

#umass--global--header button:hover {
  background: none;
  color: #fff;
}

#umass--global--footer {
  background-color: #881c1c;
  padding: 1rem;
  color: #fff;
}

#umass--global--footer .container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}

@media only screen and (max-width: 599px) {
  #umass--global--footer .container {
    display: block;
  }
}
#umass--global--footer .container img {
  flex-grow: 0;
  flex-shrink: 1;
}

#umass--global--footer .container #umass--global--footer--links {
  flex-grow: 1;
  flex-shrink: 1;
  text-align: right;
  margin-top: 1.5rem;
}

#umass--global--footer .container #umass--global--footer--links a:hover {
  text-decoration: underline;
}

@media only screen and (max-width: 599px) {
  #umass--global--footer .container #umass--global--footer--links {
    text-align: center;
  }
}
#umass--global--footer .container a,
#umass--global--footer .container a:link,
#umass--global--footer .container a:visited,
#umass--global--footer .container a:hover {
  color: #fff;
  flex-basis: 50%;
  border-bottom: none;
  text-decoration: none;
}

/* Add explicit print styling for the header */
@media print {
  #umass--global--header {
    background-color: #fff;
  }
  #umass--global--navigation {
    display: none;
  }
  #umass--global--header #wordmark {
    content: url(//www.umass.edu/static/branding/images/UMassAmherst_longform.svg);
    height: 30px;
    width: 411px;
  }
}
@media (max-width: 567px) {
  #umass--global--navigation--links #umass--global--navigation--search {
    padding: 0.5rem !important;
  }
}
.class-details-wrapper {
  background-color: #f7f8f8;
  margin: var(--v-separation) 0;
}
.class-details-wrapper h3 {
  font-size: var(--font-size-m);
  background-color: var(--color-accent-light);
  color: var(--color-white);
  margin: 0;
  padding: var(--v-space-3xs);
  line-height: var(--line-height-m);
}
.class-details-wrapper .class__title,
.class-details-wrapper .class__content {
  font-size: var(--font-size-xs);
}
.class-details-wrapper .class__title {
  margin-top: 0;
  margin-bottom: 0;
}
.class-details-wrapper h5.class__title {
  margin-top: var(--v-space-3xs);
}

.class-description-wrapper {
  padding: var(--v-space-3xs);
}
@media (min-width: 938px) {
  .class-description-wrapper {
    padding: var(--v-space-m);
  }
}

@media (min-width: 576px) {
  .class__featured {
    display: flex;
    gap: var(--v-space-3xs);
  }
}

.details-featured__content {
  margin: var(--v-separation) 0;
}
.details-featured__content p {
  margin: 0;
}
.details-featured__content h3, .details-featured__content h4 {
  margin-block-end: 0.5em;
}
.details-featured__content h4 {
  margin-block-start: 0;
}

.class__credit,
.class__component,
.class__session {
  margin-bottom: var(--v-space-3xs);
}
@media (min-width: 576px) {
  .class__credit,
  .class__component,
  .class__session {
    flex: 1 0 auto;
  }
}

.class-subdetails-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  flex-direction: column;
  gap: var(--v-space-3xs);
  margin-top: var(--v-separation-s);
  padding-top: var(--v-separation-s);
  border-top: solid 1px var(--color-black-600);
}
@media (min-width: 576px) {
  .class-subdetails-wrapper {
    flex-direction: row;
  }
}
.class-subdetails-wrapper h3 {
  font-size: var(--font-size-xs);
  margin-bottom: 0;
}
.class-subdetails-wrapper p {
  margin-top: 0;
}

.class__subdetail {
  flex: 50%;
}
@media (min-width: 576px) {
  .class__subdetail {
    flex: auto;
  }
}

/* Text meant only for screen readers. */
/* https://css-tricks.com/inclusively-hidden/ */
.sr-only {
  position: initial;
}

.sr-only:not(:focus):not(:active) {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  word-wrap: normal !important;
}

.sr-only:focus {
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #212721;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

/*# sourceMappingURL=styles.css.map */
