/* Roboto Regular */
@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/roboto-v49-latin_latin-ext-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/roboto-v49-latin_latin-ext-regular.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
}
/* Roboto Light */
@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/roboto-v49-latin_latin-ext-300.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
}
/* Roboto Medium */
@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/roboto-v49-latin_latin-ext-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
}
/* Roboto Bold */
@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/roboto-v49-latin_latin-ext-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
}
@font-face {
  font-family: "Roboto";
  src: url("/assets/fonts/roboto-v49-latin_latin-ext-600.woff2") format("woff2");
  font-weight: bold;
  font-style: normal;
}
/* Saira Extra Bold */
@font-face {
  font-family: "Saira-Extra-Bold";
  src: url("/assets/fonts/saira-v22-latin_latin-ext-800.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
}
/* Saira Extra Light */
@font-face {
  font-family: "Saira-Extra-Light";
  src: url("/assets/fonts/saira-v22-latin_latin-ext-200.woff2") format("woff2");
  font-style: normal;
}
/* Material Symbols Rounded */
@font-face {
  font-family: "Material Symbols Rounded";
  font-style: normal;
  src: url("/assets/fonts/MaterialSymbolsRounded.woff2") format("woff2");
}
*,
::before,
::after {
  box-sizing: border-box;
}

html {
  height: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: "Roboto", sans-serif;
  font-size: 1em;
  line-height: 1.4;
  height: 100%;
  margin: 0;
  background-color: var(--mat-sys-background, #051d31);
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

.strong {
  font-weight: 600;
}

.capitalized {
  text-transform: capitalize;
}

.text-center {
  text-align: center;
}

.root {
  display: block;
  min-height: 100%;
}
.root__spinner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100vh;
  text-align: center;
  background-color: #051d31;
}

.clear-fix::after, .clear-fix::before {
  content: "";
  display: block;
  clear: both;
}

.link,
.Link {
  color: currentColor;
}
.link:hover,
.Link:hover {
  opacity: 0.8;
}

.img {
  max-width: 100%;
  max-height: 100%;
}

.svg {
  display: block;
  max-width: 100%;
  max-height: 100%;
  fill: currentColor;
}

.hidden,
[hidden] {
  display: none !important;
}

.error-color {
  color: var(--mat-sys-error);
}

html {
  color-scheme: dark;
  --md-sys-color-primary: #b3c8e4;
  --md-sys-color-primary-container: #34485f;
  --md-sys-color-on-primary: #1d3247;
  --md-sys-color-secondary: #86cfff;
  --md-sys-color-secondary-container: #1d3a55;
  --md-sys-color-error: #ffb4ab;
  --md-sys-color-error-container: #93000a;
  --md-sys-color-background: #051d31;
  --md-sys-color-surface: #10263b;
  --md-sys-color-on-surface: #e3e2e4;
  --md-sys-color-surface-bright: #38393b;
  --md-sys-color-surface-container: #1d3a55;
  --md-sys-color-surface-container-lowest: #0d0e10;
  --md-sys-color-outline: #8e9197;
  --wsu-accent-color: #f1c100;
  --wsu-accent-container-color: var(--wsu-accent-color);
  --wsu-accent-text-color: #1d3247;
  --mat-button-filled-container-shape: 4px;
  --mat-button-text-container-shape: 4px;
  --mat-button-outlined-container-shape: 4px;
  --mat-fab-container-color: var(--wsu-accent-container-color);
  --mat-fab-foreground-color: var(--wsu-accent-text-color);
  --md-filled-button-container-shape: 4px;
  --md-text-button-container-shape: 4px;
  /* Typography */
  --mat-sys-display-large: 400 3.562rem / 4rem "Saira-Extra-Bold", sans-serif;
  --mat-sys-display-small: 400 2.25rem / 2.75rem "Saira-Extra-Bold", sans-serif;
  --mat-sys-headline-large: 400 2rem / 2.5rem "Saira-Extra-Bold", sans-serif;
  --mat-sys-headline-large-size: 2rem;
  --mat-sys-body-small: 400 0.75rem / 1rem "Roboto", sans-serif;
  --mat-sys-display-large-font: "Saira-Extra-Bold", sans-serif;
}

.md-icon {
  display: inline-block;
  font-family: "Material Symbols Rounded", sans-serif;
  font-size: 24px;
  font-weight: normal;
  line-height: 1;
  text-transform: none;
  font-style: normal;
  letter-spacing: normal;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizelegibility;
  font-feature-settings: "liga";
}

.md-icon--fill {
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}

.wsu-logo {
  line-height: 0;
  text-decoration: none;
}

.header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  min-height: 64px;
  padding: 0 12px;
  background: var(--mat-sys-background);
  transition: all 0.3s ease-in-out;
  border-bottom: 1px solid var(--wsu-layout-divider-color);
}
@media screen and (width >= 960px) {
  .header {
    padding: 0 24px;
  }
}
@media screen and (width >= 1280px) {
  .header {
    padding: 0 48px;
  }
}
@media screen and (width >= 1560px) {
  .header {
    padding: 0 60px;
  }
}
.header__lang-menu {
  position: relative;
}
.header__lang-menu-item {
  text-transform: capitalize;
}
.header__actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.header__auth-buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}

.footer {
  height: 48px;
  margin: -48px 0 0;
  border-top: 1px solid var(--wsu-layout-divider-color);
}
.footer__box {
  padding: 0 12px;
}
@media screen and (width >= 960px) {
  .footer__box {
    padding: 0 24px;
  }
}
@media screen and (width >= 1280px) {
  .footer__box {
    padding: 0 48px;
  }
}
@media screen and (width >= 1560px) {
  .footer__box {
    padding: 0 60px;
  }
}
.footer__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  margin: 0;
  padding: 6px 0;
  font: var(--mat-sys-body-small);
  list-style: none;
}
.footer__list-item {
  display: inline-block;
  line-height: 16px;
}
.footer__link {
  color: var(--md-sys-color-primary);
  font: var(--mat-sys-body-small);
  text-decoration: none;
  opacity: 0.8;
}
.footer__link:hover, .footer__link--active {
  opacity: 1;
}
.footer__link--active {
  cursor: default;
}

.mat-divider {
  --mat-divider-color: rgba(255, 255, 255, 0.12);
}
:host-context(.light-theme) .mat-divider {
  --mat-divider-color: rgba(0, 0, 0, 0.12);
}

.main {
  min-height: 100vh;
  padding: 0 0 48px;
}
.main__content {
  padding: 0 12px;
}
@media screen and (width >= 960px) {
  .main__content {
    padding: 0 24px;
  }
}
@media screen and (width >= 1280px) {
  .main__content {
    padding: 0 48px;
  }
}
@media screen and (width >= 1560px) {
  .main__content {
    padding: 0 60px;
  }
}

html {
  --wsu-layout-divider-color: rgba(255, 255, 255, 0.12);
}

.btn--filled-accent {
  --md-filled-button-container-color: var(--wsu-accent-container-color);
}
.btn .md-icon {
  font-size: 18px;
}
.btn--l {
  --md-filled-button-label-text-font: var(--mat-sys-display-large-font);
  --md-filled-button-container-height: 48px;
  --md-filled-button-leading-space: 48px;
  --md-filled-button-trailing-space: 48px;
  letter-spacing: 0.05rem;
  text-transform: uppercase;
}

.fab--accent {
  --mat-fab-container-color: var(--wsu-accent-container-color);
}