:root {
  --mdc-theme-primary: #d71f27;
  --mdc-theme-accent: #ffd54f;
}

.mdc-card {
  background-color: white;
}
.mdc-card--dense .mdc-card__supporting-text:last-child {
  padding-bottom: 16px;
}
.mdc-card--dense .mdc-card__primary:last-child {
  padding-bottom: 8px;
}
.mdc-card__title--medium {
  font-size: 1.1rem;
  line-height: 1.5rem;
  letter-spacing: 0;
}
.mdc-textfield,
.mdc-textfield input,
.mdc-textfield textarea {
  width: 100%;
}
.mdc-textfield-helptext {
  color: #444;
}

.mdc-textfield--program-fixed input {
  font-weight: bold;
}
.mdc-textfield--program-fixed input[disabled] {
  font-weight: bold;
  color: black;
  -webkit-text-fill-color: black;
}

.mdc-list-item__text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mdc-list-item--not-fixed-height {
  height: auto;
  margin-bottom: 20px;
}

.messages {
  background-color: var(--mdc-theme-accent);
  padding: 1em;
}

body > .messages {
  padding: 0;
}

div.awesomplete > ul > li {
  padding: 0.3em 0.6em 0.2em 0.6em;
}
div.awesomplete > ul > li:first-child {
  margin-top: 0.25em;
}
div.awesomplete > ul > li:last-child {
  margin-bottom: 0.25em;
}

/* >>> main layout */

body {
  margin: 0;
  padding: 0;
  box-sizing: border-box;

  min-height: 100vh;
  display: flex;
  flex-flow: column nowrap;

  font-family: Roboto, Helvetica, Arial, sans-serif;
  background-color: #efefef;
}
body > header {
  position: relative;
  z-index: 50;
  padding-right: 1.5em;
  background-color: var(--mdc-theme-primary);
}
body > main {
  padding: 1.5em;
  z-index: 5;
  flex: 1;
}
body > footer {
  flex: 0;
}
body > footer .legal {
  height: 56px;
  background-color: #282a2b;
  color: #e5e0e0;
}
body > footer a:link,
body > footer a:visited,
body > footer a:hover {
  color: #e5e0e0;
}
body > footer .legal p {
  font-size: 70%;
}
body > footer .legal__links {
  float: right;
}
body > footer > * {
  padding: 0.5em;
  padding-left: 1.5em;
  padding-right: 1.5em;
}
body > footer .secondary-nav {
  box-shadow: rgba(0, 0, 0, 0.3) 0 10px 20px -10px inset;
}
body > footer .footer-message {
  background-color: var(--mdc-theme-accent);
  margin-right: 1.5em;
  margin-left: 1.5em;
  line-height: 1.4;
  font-size: 94%;
}
body > footer .promo-links p,
body > footer .sitemap {
  color: white;
}
body > footer .promo-links {
  background-color: #777;
}

@media (max-width: 479px) {
  body > main {
    padding: 0.5em;
  }
  body > footer > * {
    padding-left: 0.5em;
    padding-right: 0.5em;
  }
  body > footer .footer-message {
    margin-right: 0.5em;
    margin-left: 0.5em;
    padding: 0.01em 1em;
  }
}

/* <<< main layout */

/* >>> form styling */

form .form-errors {
  background-color: var(--mdc-theme-accent);
}
form .field--invalid label .material-icons,
form .field--invalid .mdc-textfield-helptext .errors {
  color: var(--mdc-theme-primary);
}
form .field-group {
  display: flex;
  flex-flow: row wrap;
}
form .field-group .field {
  margin-right: 1em;
  flex: 1;
}
.attachment-upload .mdc-textfield-helptext {
  margin-top: 0.5em;
}

@media (max-width: 479px) {
  form .field-group {
    display: block;
  }
}

/* <<< form styling */

/* >>> material Icons */

/* Rules for sizing the icon. */
.material-icons.md-12 {
  font-size: 12px;
}
.material-icons.md-18 {
  font-size: 18px;
}
.material-icons.md-24 {
  font-size: 24px;
}
.material-icons.md-36 {
  font-size: 36px;
}
.material-icons.md-48 {
  font-size: 48px;
}

/* Rules for using icons as black on a light background. */
.material-icons.md-dark {
  color: rgba(0, 0, 0, 0.54);
}
.material-icons.md-dark.md-inactive {
  color: rgba(0, 0, 0, 0.26);
}

/* Rules for using icons as white on a dark background. */
.material-icons.md-light {
  color: rgba(255, 255, 255, 1);
}
.material-icons.md-light.md-inactive {
  color: rgba(255, 255, 255, 0.3);
}

.material-icons.mdi--aligned {
  vertical-align: text-bottom;
  font-size: 1.2em;
}
.fa.fa--aligned {
  vertical-align: text-bottom;
}
.mdc-textfield-helptext .errors {
  text-shadow: var(--mdc-theme-accent) 2px 2px 10px;
}
.mdc-textfield-helptext .errors .svg-inline--fa {
  vertical-align: text-top;
}
.material-icons.mdi-success {
  color: #8cdb55;
}

/* <<< material Icons */

/* >>> header */

body > header {
  flex-shrink: 0;

  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
}
body > header > .logo {
  flex: 0;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}
body > header > .logo img {
  display: block;
}
body > header > nav {
  display: flex;
  flex-flow: row nowrap;
  flex: 1;
}
body > header > .right-nav {
  flex: 1;
  justify-content: flex-end;
}
.mdc-button > .svg-inline--fa {
  font-size: 1.25em;
}

/* <<< header */

/* >>> nav buttons */

body > header > nav .mdc-button,
body > header > nav .mdc-button:link,
body > header > nav .mdc-button:hover,
body > header > nav .mdc-button:visited {
  color: white;
}
body > footer > .secondary-nav .mdc-button,
body > footer > .secondary-nav .mdc-button:link,
body > footer > .secondary-nav .mdc-button:hover,
body > footer > .secondary-nav .mdc-button:visited {
  color: white;
}

/* <<< nav buttons */

/* >>> top menu */

nav.top-menu {
  z-index: 50;
  background-color: #8f151a;
  color: white;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
nav.top-menu .top-menu__item,
nav.top-menu .top-menu__item:link,
nav.top-menu .top-menu__item:visited,
nav.top-menu .top-menu__item:hover {
  color: #fff;
  white-space: nowrap;
}
nav.top-menu > * {
  padding: 0.5em 0 0.5em 0;
}
nav.top-menu > :first-child {
  padding-left: 1.5em;
}
nav.top-menu > :last-child {
  padding-right: 1.5em;
}

@media (max-width: 400px) {
  .top-menu__item__icon {
    display: none;
  }
}

/* <<< top menu */

/* >>> top study categories */

nav.top-cats {
  overflow: visible;
  position: relative;
  max-width: 28em;
  width: 95%;
  color: white;
}
nav.top-cats .submenu {
  position: absolute;
  display: none;
}
nav.top-cats ul {
  padding: 1em 0 1em 1.5em;
  margin: 0;
  background-color: white;
  background-color: rgba(255, 255, 255, 0.95);
  border-radius: 0.25em;
}
nav.top-cats ul li {
  list-style-type: none;
  margin: 0;
  padding: 0;
  color: #444;
}
nav.top-cats > ul {
  max-width: 13em;
  width: 45%;
  z-index: 51;
  background-color: white;

  -webkit-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2);
}
nav.top-cats li > a {
  display: flex;
  margin-right: 1em;
  align-items: center;
  flex-flow: row nowrap;
  justify-content: space-between;
}
nav.top-cats li > a.maintainHover.not-actual-link,
nav.top-cats li > a.maintainHover.not-actual-link:link,
nav.top-cats li > a.maintainHover.not-actual-link:hover,
nav.top-cats li > a.maintainHover.not-actual-link:visited {
  color: var(--mdc-theme-primary);
  font-weight: bold;
}
nav.top-cats a:hover {
  text-decoration: underline;
}
nav.top-cats a.not-actual-link:link,
nav.top-cats a.not-actual-link:visited,
nav.top-cats a.not-actual-link:hover {
  color: #444;
  text-decoration: none;
}

.top-cats__menu-caption {
  text-transform: uppercase;
  position: relative;
  top: -1px;
}

/* <<< top categories */

/* >>> main header */

main > header .extra {
}

@media (min-width: 480px) {
  main > header {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
  }
  main > header > * {
    flex: 1;
  }
  main > header .extra {
    text-align: right;
    flex: 2;
  }
}

/* <<< main header */

/* >>> footer nav */

nav.footer-nav {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-end;
  justify-content: stretch;
}
nav.footer-nav > section {
  padding: 0 1em 0 0;
  margin: 0.5em 1em 0.5em 0;
  min-width: 10em;
}

.footer-nav__brand-links {
  position: relative;
  top: 0.2em;
}
.brand-links__social {
  margin-top: 1em;
}
.brand-links__social a,
.brand-links__social a:link,
.brand-links__social a:visited,
.brand-links__social a:hover {
  color: #444;
}
.brand-links__logo {
  position: relative;
  left: -1.5em;
  top: 0.25em;
}

.footer-nav__sitemap {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}

@media (min-width: 479px) {
  nav.secondary-nav > section {
    flex-basis: 45%;
  }
}
nav.footer-nav > section p {
  margin-top: 0;
}

.contact-info span {
  display: block;
  margin-bottom: 0.25em;
}

body > footer .contact-info a,
body > footer .contact-info a:link,
body > footer .contact-info a:visited,
body > footer .contact-info a:hover {
  color: white;
}

/* <<< footer nav */

/* >>> sitemap nav */

body > footer .sitemap {
  box-shadow: rgba(0, 0, 0, 0.3) 0 10px 20px -10px inset;
  background-color: #555;
  align-items: flex-start;
  justify-content: flex-start;
  padding-bottom: 2em;
}
body > footer .sitemap a:hover {
  text-decoration: underline;
}

nav.sitemap > section,
.sitemap__nav {
  margin: 0;
  padding: 0;
  margin-right: 1em;
}
.sitemap__nav__header {
  margin-bottom: 0.75em;
}

body > footer .sitemap__nav ul {
  margin: 0;
  padding: 0;
}
body > footer .sitemap__nav ul li.mdc-list-item {
  list-style-type: none;
  padding-left: 0;
  margin-left: 0;
  height: auto;
}
body > footer .sitemap__nav a,
body > footer .sitemap__nav a:link,
body > footer .sitemap__nav a:visited,
body > footer .sitemap__nav a:hover {
  color: white;
}

/* <<< sitemap nav */

/* >>> program cards */

.mdc-card.program.listing__item > .mdc-card__supporting-text {
  display: flex;
  flex-flow: row nowrap;
}
.mdc-card.program.listing__item .when-where {
  flex: 1;
}
.mdc-card.program.listing__item .how-much {
  flex-basis: 30%;
  flex-grow: 0;
  margin-left: 1em;
  align-self: flex-end;
}
.program .tuition__label,
.program .tuition__amount {
  white-space: nowrap;
}

/* <<< program cards */

/* >>> product facts */

.fact__label,
.fact__value {
  white-space: nowrap;
}

/* <<< facts */
