@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wdth,wght@0,75,100..700;1,75,100..700&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap");

html {
  font-size: 16px !important;
}

body {
  margin: 0;
  padding: 0;
  background-color: #fafafa;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

header,
footer {
  flex: auto 0 0;
}

main {
  flex-grow: 1;
}

.byu-header {
  z-index: 1;
  /* overrides for current oit design tokens */
  display: block !important;
  padding-block: 0 !important;
  margin-inline: 0 !important;
  inline-size: 100% !important;
  /* ugly-but-necessary quasi-hack to ensure .byu-header extends to the right and left edges of the screen */
  position: relative !important;
  width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

.byu-header .byu-titles a {
  color: #fff !important;
  background-color: #002e5d;
  display: inline-block;
  font-size: inherit;
  font-weight: 400;
  bottom: 1px;
  text-decoration: none;
  clear: right;
  order: 1;
  margin: 0.25em 0 !important;
}

.byu-menu {
  inline-size: 100% !important;
}

.visually-hidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

.hidden {
  display: none !important;
}

.byu-footer {
  background-color: #002e5d;
  text-align: center;
  font-family: "IBM Plex Sans", Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-size: 13.8px;
  line-height: 1.33333em;
  color: #fff !important;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  box-sizing: border-box;
  /* overrides for current oit design tokens */
  padding-block: 0 !important;
  /* ugly-but-necessary quasi-hack to ensure .byu-header extends to the right and left edges of the screen */
  position: relative !important;
  width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

.byu-footer a {
  color: white !important;
  text-decoration: none;
}

.byu-footer a:hover {
  text-decoration: underline;
}

.byu-footer .university-logo-wrapper {
  max-width: 1200px;
  width: 100%;
  padding: 0.25em 0.5em;
  box-sizing: border-box;
}

.byu-footer .university-logo {
  font-size: 1.17rem;
  letter-spacing: 5px;
  font-weight: bolder;
  text-transform: uppercase;
}

.byu-footer .university-logo a:hover {
  text-decoration: none;
}

.byu-footer .university-logo-image {
  height: 23px;
  font-size: 10px;
}

.byu-footer .university-info {
  display: flex;
  margin-top: 0.5em;
  flex-direction: column;
  align-items: center;
  line-height: 17px;
}

.byu-footer .university-footer-gte-1440 {
  display: none;
}

.byu-footer .university-footer-lt-1440 {
  display: grid;
  align-items: center;
  flex-direction: column;
  width: 100%;
  padding: 30px 20px;
  box-sizing: border-box;
  font-size: 10px;
}

@media (min-width: 50rem) {
  .byu-footer .university-info {
    flex: auto;
  }
}

@media (min-width: 1024px) {
  .byu-footer .university-footer-lt-1440 {
    display: grid;
    grid-template-columns: 0fr 2fr;
    grid-template-rows: auto;
    padding: 30px 80px;
    font-size: 14px;
    max-width: 1240px;
    margin: 0 auto;
  }

  .byu-footer .university-logo {
    margin: 0;
    grid-area: 1/1/3/2;
  }

  .byu-footer .university-info {
    margin: 0;
    flex-direction: row;
    justify-content: center;
    grid-area: 1/2/2/3;
  }

  .byu-footer .university-info> :not(:first-of-type) {
    margin-top: 0;
  }

  .byu-footer .university-info> :not(:first-of-type)::before {
    display: inline-block;
    color: #fff !important;
    content: "|";
    text-align: center;
    width: 1em;
  }

  .byu-footer .privacy-notice {
    margin-top: 0.8em;
    justify-content: center;
    grid-area: 2/2/3/3;
  }

  .byu-footer .privacy-notice> :not(:first-of-type) {
    margin-top: 0;
  }

  .byu-footer .privacy-notice> :not(:first-of-type)::before {
    display: inline-block;
    color: #fff !important;
    content: "|";
    text-align: center;
    width: 1em;
  }
}

@media (min-width: 90rem) {
  .byu-footer {
    padding: 1.25em;
  }

  .byu-footer .university-footer-lt-1440 {
    display: none;
  }

  .byu-footer .university-footer-gte-1440 {
    display: block;
  }

  .byu-footer .university-info {
    margin-left: 0;
    margin-top: 0.5em;
  }
}

.byu-header {
  z-index: 10;
  font-size: 1.125rem;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
  border-bottom: 1px solid #ddd;
  font-family: "IBM Plex Sans", Helvetica, Arial, sans-serif;
  background: #002e5d;
}

.byu-header a,
.byu-header a:link,
.byu-header a:visited {
  color: #fff;
  text-decoration: none;
  transition: opacity 200ms ease;
}

@media (min-width: 50rem) {
  .byu-header {
    font-size: 1.5rem;
  }
}

.byu-header .byu-site-banner {
  background: #002e5d;
  min-height: 2.88889em;
}

@supports (display: grid) {
  @media (min-width: 0) {
    .byu-header .byu-site-banner {
      display: grid;
      grid-template-columns: 4em auto;
    }
  }

  @media (min-width: 28rem) {
    .byu-header .byu-site-banner {
      grid-template-columns: 4.75em auto;
    }
  }
}

.byu-header .byu-link {
  background: #002e5d url("monogram-white.svg") 0.6em center/2.9em auto no-repeat;
  display: block;
  height: 2em;
  width: 4em;
  text-decoration: none;
}

@supports (display: grid) {
  @media (min-width: 0) {
    .byu-header .byu-link {
      height: auto;
    }
  }

  @media (min-width: 28rem) {
    .byu-header .byu-link {
      width: 4.75em;
      background-position: 1em center;
    }
  }
}

.byu-header .byu-titles {
  position: relative;
  padding: 0.5em 0.75em;
  margin: 2px 0;
  flex-grow: 1;
}

.byu-header .byu-titles:before {
  content: " ";
  display: block;
  position: absolute;
  width: 94%;
  height: 1px;
  right: 3%;
  top: 0;
  background: rgba(255, 255, 255, 0.25);
}

@supports (display: grid) {
  @media (min-width: 0) {
    .byu-header .byu-titles {
      align-self: center;
    }

    .byu-header .byu-titles:before {
      width: 1px;
      height: 70%;
      right: auto;
      left: 0;
      top: 15%;
    }
  }

  @media (min-width: 0) {
    .byu-header .byu-titles {
      padding-right: 2em;
    }
  }

  @media (min-width: 28rem) {
    .byu-header .byu-titles {
      padding: 0.5em 1em;
    }
  }
}

.byu-header .byu-titles {
  color: #fff !important;
  background-color: #002e5d;
  display: inline-block;
  font-size: inherit;
  font-weight: 400;
  bottom: 1px;
  text-decoration: none;
  clear: right;
  order: 1;
  margin: 0.25em 0 !important;
}

.byu-header .byu-site-breadcrumbs {
  line-height: 1.4;
  font-size: 0.67em;
}

.byu-user-info {
  background-color: #fff;
  padding: 0.65em;
  color: #002e5d !important;
  text-align: right;
  height: 100%;
  box-sizing: border-box;
  font-size: 0.88889em;
  justify-content: flex-end;
}

@media (min-width: 28rem) {
  .byu-user-info {
    padding: 0.65em 1.1em;
  }
}

.byu-user-info a,
.byu-user-info svg {
  font-size: 1rem;
}

.byu-user-info a,
.byu-user-info a:link,
.byu-user-info a:visited,
.byu-user-info * {
  color: #002e5d !important;
  display: inline-block;
  padding: 0.25em 0;
  text-decoration: none;
}

.byu-user-info svg {
  width: 1.25em;
  height: 1.25em;
  display: inline-block;
  position: relative;
  top: 0.25em;
  margin: 0 0.25em;
}

@supports (display: grid) {
  .byu-user-info {
    display: none;
    grid-template-columns: auto min-content;
    grid-row: 2/2;
    grid-column: 1/3;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
  }

  @media (min-width: 50rem) {
    .byu-user-info {
      grid-row: 1;
      grid-column: 3;
      display: flex;
      font-size: 1rem;
      align-items: center;
      background: transparent none;
      box-shadow: none;
      order: 2;
      color: #fff !important;
      padding: 0 0.5em;
      justify-content: flex-end;
    }

    .byu-user-info svg {
      top: 0;
      margin: 0 0.5em;
    }

    .byu-user-info a,
    .byu-user-info a:link,
    .byu-user-info a:visited,
    .byu-user-info * {
      color: #fff !important;
      white-space: nowrap;
    }
  }

  @media (min-width: 60rem) {
    .byu-user-info {
      padding: 0 1em;
    }
  }
}

.byu-menu {
  display: none;
  margin: 0;
  padding: 0;
  font-size: 0.88889em !important;
  letter-spacing: 0;
  background: #fff;
}

.byu-menu a,
.byu-menu a:link,
.byu-menu a:visited {
  color: #002e5d !important;
  display: block;
  padding: 11px 22px !important;
  border-bottom: solid 3px rgba(0, 0, 0, 0);
  line-height: 1.6;
  font-size: 1rem !important;
  transition: background 250ms ease;
  text-decoration: none !important;
}

@media (min-width: 50rem) {

  .byu-menu a,
  .byu-menu a:link,
  .byu-menu a:visited {
    display: inline-block;
  }

  .byu-menu a a,
  .byu-menu a a:link,
  .byu-menu a a:visited,
  .byu-menu a:link a,
  .byu-menu a:link a:link,
  .byu-menu a:link a:visited,
  .byu-menu a:visited a,
  .byu-menu a:visited a:link,
  .byu-menu a:visited a:visited {
    padding: 0.5em 1.35em !important;
    white-space: nowrap;
  }
}

.byu-menu a.active {
  border-left: solid 3px #002e5d;
  border-bottom: none;
}

@media (min-width: 50rem) {
  .byu-menu a.active {
    border-left: none;
    border-bottom: 3px solid #002e5d !important;
  }
}

.byu-menu a:hover,
.byu-menu a:focus {
  background-color: #fafafa;
}

@media (min-width: 50rem) {

  .byu-menu a:hover,
  .byu-menu a:focus {
    border-left: none;
    border-bottom: 3px solid #002e5d !important;
  }
}

@media (min-width: 50rem) {
  .byu-menu {
    display: block;
    padding-left: 5.5em;
    border-top: 1px solid #f4f4f4;
  }
}

.byu-menu-button {
  display: block;
  cursor: pointer;
  height: 32px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  right: 0.5rem;
  text-indent: 50em;
  top: 10px;
  width: 32px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: #004286;
  transition: background 200ms ease, transform 200ms ease;
  background-position: center center;
  color: #fff;
  z-index: 10000;
}

.byu-menu-button:hover {
  background-color: #004286;
}

.byu-menu-button:focus {
  border-color: #8097ae;
  outline: none;
}

.byu-menu-button:before,
.byu-menu-button:after {
  content: " ";
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 32px;
  height: 32px;
  background-position: center center;
  transition: background 200ms ease, transform 200ms ease;
}

.byu-menu-button:before {
  opacity: 1;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><path fill="none" stroke="white" stroke-width="0.75" d="M2 3h6M2 5h6M2 7h6"/></svg>');
}

.byu-menu-button:after {
  opacity: 0;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><path fill="none" stroke="white" stroke-width="0.75" d="M 2.5,2.5 L 7.5,7.5"/><path fill="none" stroke="white" stroke-width="0.75" d="M 2.5,7.5 L 7.5,2.5"/></svg>');
}


@media (min-width: 50rem) {

  .byu-menu-button,
  input#byu-menu-button-check {
    display: none;
  }
}

input#byu-menu-button-check {
  position: absolute;
  visibility: hidden;
}

input#byu-menu-button-check:checked~.byu-menu {
  display: block;
}

input#byu-menu-button-check:checked~.byu-site-banner .byu-user-info {
  display: flex;
}

input#byu-menu-button-check:checked~.byu-menu-button {
  background-color: #0055af;
}

input#byu-menu-button-check:checked~.byu-menu-button:after,
input#byu-menu-button-check:checked~.byu-menu-button:before {
  transform: rotate(360deg);
}

input#byu-menu-button-check:checked~.byu-menu-button:before {
  opacity: 0;
}

input#byu-menu-button-check:checked~.byu-menu-button:after {
  opacity: 1;
}

.byu-notification-banner {
  display: flex;
  align-items: center;
  padding: 1rem 1.5rem;
}
.byu-notification-banner.success {
  background-color: #E6F4EA;
}
.byu-notification-banner.info {
  background-color: #E3F2FD;
}
.byu-notification-banner.error {
  background-color: #FCE8E8;
}
.byu-notification-banner .banner-icon {
  width: 2rem;
}
.byu-notification-banner .banner-message {
  flex-grow: 1;
  font-family: "IBM Plex Sans", Helvetica, Arial, sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: normal;
  padding-left: 1rem;
}
.byu-notification-banner button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 1rem;
  height: 1rem;
}
