:root {
  --source-serif: source-serif-pro, serif;
  --open-sans: open-sans, sans-serif;
  --body: 400 1rem / 1.6875 var(--open-sans);
  --h1: 600 clamp(2.5rem, 7vw, 3.5rem) / 1.2 var(--source-serif);
  --h2: 600 clamp(2.25rem, 5vw, 2.75rem) / 1.25 var(--source-serif);
  --h3: 700 1.75rem / 1.35 var(--open-sans);
  --h4: 700 1.5rem / 1.5 var(--open-sans);
  --h5: 700 1.25rem / 1.5 var(--open-sans);
  --h6: 700 1rem / 1.5 var(--open-sans);
  --text-small: 400 .875rem / 1.5 var(--open-sans);
  --text-intro: 600 clamp(1.375rem, 5vw, 1.625rem) / 1.5 var(--source-serif);
  --text-button: 600 .875rem / 1.186 var(--open-sans);
  --text-stat: 700 3.3125rem / 1 var(--source-serif);
  --text-eyebrow: 600 .875rem / 1.1 var(--open-sans);
  --text-quote: 600 clamp(1.5rem, 5vw, 1.875rem) / 1.5 var(--source-serif);
  --link: 600 1rem / 1.1 var(--open-sans);
  --meta: 700 .875rem / 1.1 var(--open-sans);
  --black: #000;
  --black-75: #000000bf;
  --black-80: #000c;
  --black-90: #000000e6;
  --black-20: #0003;
  --black-10: #0000001a;
  --white: #fff;
  --white-20: #fff3;
  --white-40: #fff6;
  --carnegie-red: #c41230;
  --gray-light: #f2f2f2;
  --gray-medium: #948f8f;
  --gray-dark: #222;
  --transition: .4s ease;
  --transition-short: .2s ease;
  --transition-cubic: .4s cubic-bezier(.4, 0, .2, 1);
  --panel: clamp(3.5rem, 10vw, 4.5rem);
  --gap: clamp(1.5rem, 6vw, 3rem);
  --gap-sm: clamp(1.5rem, 6vw, 2rem);
  --gutter: clamp(1.5rem, 6vw, 4rem);
  --wrap: max(var(--gutter), (100% - 78rem) / 2);
  --wrap-sm: max(var(--gutter), (100% - 44rem) / 2);
  --radius: 0;
  --shadow: 0 0 .75rem #00000040;
  --accent: var(--carnegie-red);
  --background: var(--white);
  --color: var(--black);
  scroll-padding-top: 3.75em;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition: 0s ease;
  }
}

:root .theme-dark {
  --accent: var(--carnegie-red);
  --background: var(--black);
  --color: var(--white);
  background-color: var(--black);
  color: var(--white);
}

@media (min-width: 80em) {
  :root {
    scroll-padding-top: 7em;
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(3rem);
  }
}

*, :before, :after {
  box-sizing: border-box;
}

#root {
  container: root / inline-size;
}

body {
  -moz-text-size-adjust: none;
  text-size-adjust: none;
  overflow-wrap: break-word;
  margin: 0;
}

img, svg, video {
  max-width: 100%;
  height: auto;
  display: block;
}

video {
  aspect-ratio: 16 / 9;
  border: 0;
  width: 100%;
}

iframe {
  border: 0;
  width: 100%;
  max-width: 100%;
  display: block;
}

iframe[src*="vimeo"], iframe[src*="youtube"], iframe[src*="youtu.be"], iframe[src*="mediaservices.cmu.edu"] {
  aspect-ratio: 16 / 9;
  height: auto;
}

svg {
  fill: currentColor;
}

table {
  border-collapse: collapse;
}

blockquote, fieldset, figure, legend {
  border: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding: 0;
}

button, input, select, textarea {
  font: inherit;
  text-overflow: ellipsis;
  border-radius: 0;
  max-width: 100%;
}

input, select, textarea {
  color: var(--black);
}

button {
  color: inherit;
}

button, select, [type="button"], [type="reset"], [type="submit"] {
  cursor: pointer;
}

[type="search"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input[type="search"]::-webkit-search-decoration {
  display: none;
}

input[type="search"]::-webkit-search-cancel-button {
  display: none;
}

input[type="search"]::-webkit-search-results-button {
  display: none;
}

input[type="search"]::-webkit-search-results-decoration {
  display: none;
}

input[type="search"]::-ms-clear {
  width: 0;
  height: 0;
  display: none;
}

input[type="search"]::-ms-reveal {
  width: 0;
  height: 0;
  display: none;
}

::placeholder {
  color: #6d6e71;
  opacity: 1;
}

:focus {
  outline-offset: -.175rem;
  outline-width: .175rem;
  outline-style: inset;
  outline-color: var(--color, var(--black));
}

:focus:not(:-webkit-any(form input, form textarea, form select)) {
  outline-offset: .25rem;
  outline: .25rem dashed;
  outline-color: var(--color, var(--black));
}

:focus:not(:-moz-any(form input, form textarea, form select)) {
  outline-offset: .25rem;
  outline: .25rem dashed;
  outline-color: var(--color, var(--black));
}

:focus:not(:is(form input, form textarea, form select)) {
  outline-offset: .25rem;
  outline: .25rem dashed;
  outline-color: var(--color, var(--black));
}

:focus:not(:focus-visible) {
  outline: 0;
}

div > .form_container {
  padding: var(--gap-sm);
  color: var(--black);
  --color: var(--black);
  --background: var(--white);
  background-color: #fff;
  font-weight: 600;
}

.form_action_submit {
  padding-left: 30px;
}

:root {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  color: var(--black);
  font: var(--body);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
  margin-block-start: 2rem;
  margin-block-end: 1rem;
}

:is(h1, h2, h3, h4, h5) a {
  font-weight: inherit;
}

h1, .h1 {
  font: var(--h1);
}

h2, .h2 {
  font: var(--h2);
}

h3, .h3 {
  font: var(--h3);
}

h4, .h4 {
  font: var(--h4);
}

h5, .h5 {
  font: var(--h5);
}

h6, .h6 {
  font: var(--h6);
}

.text-small {
  font: var(--text-small);
}

.text-intro {
  font: var(--text-intro);
}

.text-stat {
  font: var(--text-stat);
  color: var(--carnegie-red);
  align-items: center;
  gap: .5rem;
  font-size: 2rem;
  display: flex;
}

.text-stat span {
  font: var(--text-stat);
  letter-spacing: -3.71px;
}

.text-stat--lg span {
  letter-spacing: 0;
  font-size: 5rem;
}

.text-eyebrow {
  font: var(--text-eyebrow);
  letter-spacing: 2px;
  text-transform: uppercase;
}

.text-eyebrow + h1 {
  margin-top: 0;
}

.text-eyebrow + h2 {
  margin-top: 0;
}

.text-eyebrow + h3 {
  margin-top: 0;
}

.text-eyebrow + h4 {
  margin-top: 0;
}

.meta {
  font: var(--meta);
  color: var(--carnegie-red);
  display: inline-grid;
}

.meta a {
  font-weight: 700;
}

.meta--alt {
  background-color: var(--gray-light);
  padding: .5rem .25rem;
}

.theme-dark .meta--alt {
  background-color: var(--carnegie-red);
  color: var(--white);
}

a {
  color: inherit;
  transition: all var(--transition);
  font-weight: normal;
  text-decoration: none;
}

.Common :is(a:not([class])) {
  transition: box-shadow var(--transition), text-shadow var(--transition);
  box-shadow: 0 .0625rem;
}

.Common :is(a:not([class])):hover {
  text-shadow: .5px 0;
  box-shadow: 0 .125rem;
}

.Common a:not([class]):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.Section--black *):not(.Section--bg-image *):not(.theme-dark *) {
  color: var(--carnegie-red);
  font-weight: 600;
}

a:not([class]):has(img) {
  text-decoration: none;
  display: inline-block;
  box-shadow: none !important;
}

a:not([class]):has(img) > [class] {
  overflow: hidden;
}

a:not([class]):has(img) img {
  transition: var(--transition);
}

a:not([class]):has(img):hover [class] img {
  background: none;
  transform: scale(1.1);
}

ol, ul {
  padding-inline-start: 1.25em;
}

strong {
  font-weight: 700;
}

blockquote {
  padding-inline: var(--wrap);
  position: relative;
}

blockquote:before {
  content: "";
  background-image: url("../assets/quote.svg");
  background-repeat: no-repeat;
  width: 44px;
  height: 44px;
  margin-block-start: 0;
  margin-block-end: 1.5rem;
  display: block;
}

blockquote p {
  font-family: var(--source-serif);
  margin-block-start: 0;
  margin-block-end: 1em;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.4;
  position: relative;
}

blockquote cite {
  font: var(--h6);
  margin-top: 2rem;
  font-weight: normal;
  display: block;
}

blockquote cite strong {
  color: var(--carnegie-red);
  font: var(--h6);
}

blockquote .Buttons {
  margin-top: var(--gap-sm);
}

@media (min-width: 48em) {
  blockquote {
    padding: 0 0 0 calc(var(--gap-sm)  + 44px);
  }

  blockquote:before {
    margin-block-start: .5rem;
    margin-block-end: 0;
    position: absolute;
    left: 0;
  }
}

.Common {
  display: flow-root;
}

main > .Common {
  margin: var(--panel) var(--wrap-sm);
}

.Common:has( > :only-child:empty) {
  display: none;
}

.Common .alignleft {
  float: none;
  display: table;
}

@media (min-width: 32em) {
  .Common .alignleft {
    width: calc(50% - 2rem);
    margin-block-start: .5rem;
    margin-block-end: 1.5rem;
  }
}

.Common .alignright {
  float: none;
  display: table;
}

@media (min-width: 32em) {
  .Common .alignright {
    width: calc(50% - 2rem);
    margin-block-start: .5rem;
    margin-block-end: 1.5rem;
  }
}

@media (min-width: 32em) {
  .Common .alignleft {
    float: left;
    margin-right: 2rem;
  }
}

@media (min-width: 32em) {
  .Common .alignright {
    float: right;
    margin-left: 2rem;
  }
}

.Common .aligncenter {
  text-align: center;
  margin-inline-start: auto;
  margin-inline-end: auto;
  display: table;
}

.ContentSidebar {
  gap: var(--gap) calc(var(--gutter) * 2);
  margin-block: var(--panel);
  padding-inline: var(--wrap);
  grid-template-rows: min-content;
  grid-template-columns: auto;
  display: grid;
}

@media (max-width: calc(64em - .001px)) {
  .ContentSidebar {
    row-gap: var(--panel);
    grid-template-columns: minmax(100px, 1fr);
    margin-top: 0;
  }
}

@media (min-width: 64em) {
  .ContentSidebar {
    grid-template-columns: minmax(0, 1fr) 20rem;
  }
}

@media (min-width: 80em) {
  .ContentSidebar {
    margin-top: var(--gap);
  }

  .ContentSidebar:not(.Hero ~ .ContentSidebar) {
    margin-top: 12rem;
  }
}

@media (min-width: 64em) {
  .ContentSidebar:not(:has(.ContentSidebar__subnav)) .ContentSidebar__sidebar {
    grid-area: 2 / 1;
  }
}

@media (min-width: 64em) {
  .Hero + .ContentSidebar .ContentSidebar__subnav:has(*) {
    z-index: 1;
    margin-top: -1rem;
  }

  .Hero + .ContentSidebar .ContentSidebar__subnav:has(*) ~ .ContentSidebar__sidebar {
    margin-top: 0;
  }

  .Hero + .ContentSidebar .ContentSidebar__sidebar {
    z-index: 1;
    margin-top: -1rem;
  }

  .Hero + .ContentSidebar .ContentSidebar__sidebar ~ .ContentSidebar__sidebar {
    margin-top: 0;
  }
}

.ContentSidebar__header {
  grid-area: 1 / 1;
}

@media (min-width: 64em) {
  .ContentSidebar__header:has(.Breadcrumbs) h1 {
    border-bottom: 1px solid var(--black-10);
    margin: 0;
    padding-bottom: 1rem;
    display: inline-flex;
  }
}

@media (min-width: 64em) {
  .ContentSidebar__header:has(*) ~ .ContentSidebar__subnav {
    grid-row: 1 / span 2;
  }

  .ContentSidebar__header:has(*) ~ .ContentSidebar__content {
    grid-row: 2 / span 3;
  }

  .ContentSidebar__header:has(*) ~ .ContentSidebar__sidebar {
    grid-row: 3;
  }
}

.ContentSidebar__subnav {
  background-color: var(--gray-light);
  margin-inline: calc(-1 * var(--wrap));
}

@media (min-width: 64em) {
  .ContentSidebar__subnav {
    margin-inline: unset;
    background-color: #0000;
    grid-area: 1 / 2;
  }
}

.ContentSidebar__subnav:not(:has(*)) {
  display: none;
}

@media (min-width: 64em) {
  .ContentSidebar__subnav:not(:has(*)) ~ .ContentSidebar__sidebar {
    grid-area: 1 / 2 / span 2;
  }
}

@media (min-width: 64em) {
  .ContentSidebar__content {
    grid-area: 1 / 1 / span 3;
  }
}

.ContentSidebar__content :nth-child(1 of .paragraph) {
  margin-block-start: 0;
}

@media (max-width: calc(64em - .001px)) {
  .ContentSidebar__header + .ContentSidebar__content {
    margin-top: calc(var(--panel) * -.5);
  }
}

@media (min-width: 64em) {
  .ContentSidebar__sidebar {
    grid-area: 2 / 2;
  }
}

#main-content .Section.Section--gray.Section--bg-split-alt:last-child {
  margin-bottom: var(--panel);
}

.paragraph--type--p-wysiwyg :-webkit-any(article, figure) {
  max-width: 100%;
  margin-bottom: 1rem;
}

.paragraph--type--p-wysiwyg :-moz-any(article, figure) {
  max-width: 100%;
  margin-bottom: 1rem;
}

.paragraph--type--p-wysiwyg :is(article, figure) {
  max-width: 100%;
  margin-bottom: 1rem;
}

.paragraph--type--p-wysiwyg .caption {
  display: block;
}

.paragraph--type--p-wysiwyg :is(.caption > figcaption) {
  caption-side: bottom;
  max-width: none;
  display: block;
}

.flush > :first-child {
  margin-top: 0;
}

.flush > :last-child {
  margin-bottom: 0;
}

.flush .reduce-margin {
  margin-block-start: 0;
  margin-block-end: .5em;
}

:is(.invis, .screen-reader-text):not(:-webkit-any(:active, :focus, :focus-within)) {
  clip-path: inset(50%);
  white-space: nowrap;
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
}

:is(.invis, .screen-reader-text):not(:-moz-any(:active, :focus, :focus-within)) {
  clip-path: inset(50%);
  white-space: nowrap;
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
}

:is(.invis, .screen-reader-text):not(:is(:active, :focus, :focus-within)) {
  clip-path: inset(50%);
  white-space: nowrap;
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
}

.contents {
  display: contents;
}

.skip-link {
  outline-color: var(--white);
  top: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4 !important;
  background: var(--black) !important;
  color: var(--white) !important;
  width: auto !important;
  position: absolute !important;
}

.link-underline {
  transition: box-shadow var(--transition), text-shadow var(--transition);
  background: none;
  border-color: #0000;
  padding: 0;
  box-shadow: 0 .0625rem;
}

.link-underline:hover {
  text-shadow: .5px 0;
  box-shadow: 0 .125rem;
}

.link-underline-show {
  transition: box-shadow var(--transition);
  box-shadow: 0 .0625rem #0000;
}

.link-underline-show:hover {
  box-shadow: 0 .0625rem;
}

.link-underline-swipe {
  transition: background var(--transition), color var(--transition);
  color: inherit;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 .0625em no-repeat;
  padding-bottom: .0625em;
  line-height: 1.5;
  text-decoration: none;
}

.link-underline-swipe:hover {
  background-size: 100% .0625em;
  text-decoration: none;
}

.link-cover {
  position: static;
}

.link-cover:after {
  content: "";
  z-index: 1;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.columns {
  gap: var(--gutter);
  grid-template-columns: 100%;
  display: grid;
}

@media (min-width: 48em) {
  .columns {
    grid-template-columns: 1fr 1fr;
  }
}

hr {
  margin: 2rem var(--wrap);
  border: 0;
  border-top: 3px solid var(--carnegie-red);
  display: block;
}

.Common :is(hr) {
  margin-inline-start: 0;
  margin-inline-end: 0;
}

.Section :is(hr) {
  margin-inline-start: 0;
  margin-inline-end: 0;
}

.grid {
  --grid-min: 14rem;
  gap: var(--gap);
  grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
  display: grid;
}

@media (min-width: 80em) {
  .grid--4 {
    --grid-min: 10rem !important;
  }
}

.with-scroll {
  position: unset;
  order: 2;
  max-height: 100vh;
  overflow: auto;
}

.with-scroll::-webkit-scrollbar {
  width: 8px;
}

.with-scroll::-webkit-scrollbar-track {
  background: var(--gray-dark);
}

.with-scroll::-webkit-scrollbar-thumb {
  background: var(--gray-light);
}

.with-scroll::-webkit-scrollbar-thumb:hover {
  background: var(--carnegie-red);
}

.article-header .date {
  margin-bottom: 1rem;
  display: block;
}

.article-header h1 {
  margin-block-start: 1rem;
  margin-block-end: 1rem;
}

.article-header h2 {
  margin-block-start: 1rem;
  margin-block-end: 1rem;
}

.article-header em + .Widget__icon {
  margin-left: 1rem;
}

.contact {
  margin-block-start: 1rem;
  margin-block-end: 1rem;
}

.contact ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.rule-bottom {
  border-bottom: 1px solid var(--black-20);
  margin-bottom: .35em;
  padding-bottom: .35em;
}

@media not print {
  [data-animation="fade-in-up"] {
    animation: .6s both fade-in-up;
  }

  [data-animate] {
    animation-play-state: paused;
  }

  [data-animate]:before {
    animation-play-state: paused;
  }

  [data-animate="true"] {
    animation-play-state: running;
  }

  [data-animate="true"]:before {
    animation-play-state: running;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    animation: none !important;
  }
}

.flickity-enabled:focus-visible {
  outline: none !important;
}

.flickity-viewport {
  position: relative;
}

.flickity-viewport:focus-visible {
  outline: none !important;
}

.slider:has(.flickity-button[disabled="true"]) {
  padding-bottom: 0;
}

.slider:has(.flickity-button[disabled="true"]) .flickity-button {
  visibility: hidden;
  display: none;
}

.slider:has(.flickity-button[disabled="true"]) .flickity-status {
  visibility: hidden;
  display: none;
}

.slider:has(.flickity-button[disabled="true"]) .flickity-cell {
  margin-right: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
}

.slider:has(.flickity-button[disabled="true"]) + .flickity-status {
  visibility: hidden;
  display: none;
}

.flickity-slider {
  flex-wrap: nowrap;
  display: flex;
}

.flickity-slider > * {
  flex-shrink: 0;
  position: absolute;
  top: 0;
}

.flickity-prev-next-button, .flickity-control {
  border: .125rem solid var(--carnegie-red);
  transition: color var(--transition), opacity var(--transition);
  background: var(--carnegie-red);
  color: inherit;
  outline-color: var(--white);
  outline-offset: -.25em;
  z-index: 1;
  border-radius: 0;
  place-items: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-grid;
  position: absolute;
  bottom: 0;
  left: calc(38px + .75rem);
}

:is(.flickity-prev-next-button, .flickity-control):after {
  content: "";
  background: var(--white);
  transition: var(--transition);
  position: absolute;
  top: -.125rem;
  bottom: -.125rem;
  left: -.125rem;
  right: -.125rem;
  -webkit-mask: none center / 60% no-repeat;
  mask: none center / 60% no-repeat;
}

:is(.flickity-prev-next-button, .flickity-control) svg {
  display: none;
}

:is(.flickity-prev-next-button, .flickity-control).previous:after {
  transform: rotate(180deg);
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
}

:is(.flickity-prev-next-button, .flickity-control).previous:hover:after {
  transform: rotate(180deg)scale(1.2);
}

@media (min-width: 64em) {
  :is(.flickity-prev-next-button, .flickity-control).previous {
    order: -1;
  }
}

:is(.flickity-prev-next-button, .flickity-control).next:after {
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
}

:is(.flickity-prev-next-button, .flickity-control):hover {
  background: var(--carnegie-red);
}

:is(.flickity-prev-next-button, .flickity-control):hover:after {
  transform: scale(1.2);
}

:is(.flickity-prev-next-button, .flickity-control)[disabled] {
  cursor: auto;
  opacity: .7;
}

:is(.flickity-prev-next-button, .flickity-control)[disabled]:hover {
  opacity: .7;
}

@media (min-width: 64em) {
  :is(.flickity-prev-next-button, .flickity-control) {
    width: 2.75rem;
    height: 2.75rem;
  }
}

.flickity-status {
  color: var(--color, var(--black));
  order: 1;
  grid-template-columns: auto auto auto;
  justify-content: center;
  place-items: center;
  gap: .5rem;
  width: auto;
  margin: 0 auto;
  font-weight: 700;
  display: grid;
}

.flickity-enabled.is-fade .flickity-slider > * {
  pointer-events: none;
  z-index: 0;
}

.flickity-enabled.is-fade .flickity-slider > .is-selected {
  pointer-events: auto;
  z-index: 1;
}

.flickity-enabled.loaded.is-fade * {
  animation-duration: 6s;
  animation-delay: .5s;
}

.FormConnector-form-container {
  --color: var(--black);
  --background: var(--white);
  color: var(--black);
  background-color: var(--white);
  padding: var(--gap-sm) !important;
}

.FormConnector-form-container select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") calc(100% - .75rem) / .75rem no-repeat;
  padding-right: 1.75rem;
}

.FormConnector-phone-cell-prefix {
  width: 115px !important;
}

.FormConnector-form-label {
  font-weight: 600 !important;
}

.FormConnector-form-input {
  border: 1px solid var(--black);
  padding: .5rem 1rem;
  font-weight: 600 !important;
}

.FormConnector-form-required {
  color: var(--carnegie-red) !important;
}

.Form {
  --color: var(--black);
  --background: var(--white);
  color: var(--black);
}

.Form input {
  border: 1px solid var(--gray-medium);
  color: var(--black);
  width: 100%;
  margin-top: .25rem;
  padding: .5rem;
  display: block;
}

.Form input[type="checkbox"] {
  border: 1px solid var(--gray-medium);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  flex-shrink: 0;
  align-self: start;
  place-items: center;
  width: 1.375em;
  height: 1.375em;
  margin: .125em 0 0;
  padding: 0;
  display: grid;
}

.Form input[type="checkbox"]:checked:before {
  content: "";
  background: currentColor;
  width: 75%;
  height: 75%;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
}

.Form input[type="radio"] {
  border: 1px solid var(--gray-medium);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  flex-shrink: 0;
  align-self: start;
  place-items: center;
  width: 1.375em;
  height: 1.375em;
  margin: .125em 0 0;
  padding: 0;
  display: grid;
}

.Form input[type="radio"]:checked:before {
  content: "";
  background: currentColor;
  width: 75%;
  height: 75%;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
}

.Form input[type="radio"] {
  border-radius: 50%;
}

.Form input[type="radio"]:checked:before {
  border-radius: 50%;
  width: 66%;
  height: 66%;
  -webkit-mask: none;
  mask: none;
}

.Form select option {
  color: var(--black);
}

.Form textarea {
  padding: .5rem;
}

.Form label {
  font-weight: 600;
  display: block;
}

.Form [data-required] label {
  font-weight: 600;
}

.Form [data-required] .form_label {
  font-weight: 600;
}

.Form select {
  color: var(--black);
  border: 1px solid var(--gray-medium);
  font: inherit;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") calc(100% - .75rem) / .75rem no-repeat;
  margin: 0;
  padding: .5em 1.75rem .5em .5rem;
  line-height: 1.5em;
  display: inline-block;
}

div.form_question {
  box-sizing: border-box;
  margin: 0 0 1em;
  padding: 0;
}

div.form_question .form_label, div.form_question label {
  margin-bottom: .25em;
  display: block;
}

div.form_question fieldset {
  border: 0;
  min-width: 0;
  margin: 0;
  padding: 0;
}

div.form_question fieldset > legend {
  display: none !important;
}

div + div.form_h1 {
  margin-top: 15px;
}

div.form_h1 .form_label {
  font-size: 1.4em;
}

div.form_h2 .form_label {
  font-size: 1.3em;
}

div.form_h3 .form_label {
  font-size: 1.1em;
}

div.form_p .form_label {
  font-weight: normal;
}

div.form_header .form_label {
  padding: 4px 5px;
  font-weight: bold;
}

div.form_responses {
  white-space: pre-wrap;
}

div.form_birthdate .form_responses {
  display: flex;
}

div.form_response input + label {
  margin-left: .5em;
  font-weight: normal;
  display: inline;
}

div.form_response:has(input[type="checkbox"]) {
  align-items: flex-start;
  display: flex;
}

div.form_response span.full_message {
  color: #c00;
  vertical-align: middle;
  margin-left: 1em;
  font-weight: bold;
}

div.form_question.selected, div.form_question.required {
  background-color: #ffc;
}

div.form_question.required {
  background-color: #fcc;
}

.form_success {
  color: #0a0;
  border: 2px solid #0a0;
  padding: .5em;
  font-size: 1.25em;
}

.form_question {
  position: relative;
}

div.form_page + div.form_page {
  margin-top: 10px;
}

div.form_page input, div.form_page label {
  vertical-align: middle;
}

div.form_page input[type="password"], div.form_page input[type="text"], div.form_page input[type="email"], div.form_page input[type="tel"], div.form_page input:not([type]), div.form_page select, div.form_page textarea {
  box-sizing: border-box;
  max-width: 100%;
}

div.form_question + div.form_question[data-type="plugin:widget"] {
  margin-top: 10px;
}

div.form_question[data-type="plugin:widget"] + div.form_question {
  margin-bottom: 10px;
}

div.form_question[data-type="likert"] > fieldset > .form_responses_labels > .form_response_label, div.form_question[data-type="likert"] > fieldset > .form_responses > .form_response {
  box-sizing: border-box;
  text-align: left;
  display: inline-block;
}

div.form_question[data-type="likert"] > fieldset > .form_responses_labels, div.form_question[data-type="likert"] > fieldset > .form_label {
  margin-bottom: .5em;
}

div.form_question.form_layout_stacked[data-type="address"] > fieldset > .form_responses > div, div.form_question.form_layout_stacked[data-type="location"] > fieldset > .form_responses > div, div.form_question.form_layout_stacked[data-type="location_nopostal"] > fieldset > .form_responses > div {
  margin-top: 5px;
}

div.form_question.form_layout_table input, div.form_question.form_layout_table textarea {
  box-sizing: border-box;
  max-width: 100%;
}

div.form_question[data-type="payment"][data-amount="0"] {
  display: none;
}

@media (min-width: 481px) {
  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table {
    width: 100%;
    margin: 0;
    padding: 0;
    display: table;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table > fieldset {
    display: table-row-group;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table > fieldset > div {
    display: table-row;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table > fieldset > .form_label {
    display: table-cell;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_header.form_layout_table {
    margin: 0;
    padding: 0;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_label {
    box-sizing: border-box;
    vertical-align: top;
    width: 150px;
    padding: 4px 5px;
    display: table-cell;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="address"] .form_label, div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="location"] .form_label, div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="location_nopostal"] .form_label {
    min-width: 150px;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses, div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses_labels {
    box-sizing: border-box;
    vertical-align: top;
    padding: 4px 5px;
    display: table-cell;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="likert"] {
    display: block;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="likert"] .form_label {
    display: inline-block;
  }

  div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="likert"] .form_responses, div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses_labels {
    width: calc(100% - 150px);
    display: inline-block;
  }

  div.form_container:not(.form_width_narrow) div.form_h1.form_layout_table, div.form_container:not(.form_width_narrow) div.form_h1.form_layout_table .form_label, div.form_container:not(.form_width_narrow) div.form_h1.form_layout_table .form_responses, div.form_container:not(.form_width_narrow) div.form_h2.form_layout_table, div.form_container:not(.form_width_narrow) div.form_h2.form_layout_table .form_label, div.form_container:not(.form_width_narrow) div.form_h2.form_layout_table .form_responses, div.form_container:not(.form_width_narrow) div.form_p.form_layout_table, div.form_container:not(.form_width_narrow) div.form_p.form_layout_table .form_label, div.form_container:not(.form_width_narrow) div.form_p.form_layout_table .form_responses {
    display: block;
    width: inherit !important;
  }

  div.form_container:not(.form_width_narrow) div.form_header.form_layout_table, div.form_container:not(.form_width_narrow) div.form_header.form_layout_table .form_label, div.form_container:not(.form_width_narrow) div.form_header.form_layout_table .form_responses {
    padding: 4px 5px;
    display: block;
    width: inherit !important;
  }

  div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"] > fieldset > .form_responses {
    margin-top: 0;
  }

  div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"] > fieldset > .form_responses_labels {
    margin-left: 150px;
  }

  div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"] > fieldset > .form_responses_labels > .form_response_label, div.form_question[data-type="likert"] > fieldset > .form_responses > .form_response {
    min-width: 25px;
  }

  div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"] > fieldset > .form_responses_labels, div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"] > fieldset > .form_label {
    margin-bottom: 0;
  }
}

@media only screen and (max-width: 736px) {
  div.form_question {
    margin: 0;
    width: 100% !important;
    padding: 0 0 .5em !important;
  }
}

.ui-draggable-handle {
  -ms-touch-action: none;
  touch-action: none;
}

.ui-helper-hidden {
  display: none;
}

.ui-helper-hidden-accessible {
  clip: rect(0 0 0 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.ui-helper-reset {
  border: 0;
  outline: 0;
  margin: 0;
  padding: 0;
  font-size: 100%;
  line-height: 1.3;
  text-decoration: none;
  list-style: none;
}

.ui-helper-clearfix:before, .ui-helper-clearfix:after {
  content: "";
  border-collapse: collapse;
  display: table;
}

.ui-helper-clearfix:after {
  clear: both;
}

.ui-helper-zfix {
  opacity: 0;
  -ms-filter: "alpha(opacity=0)";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.ui-front {
  z-index: 100;
}

.ui-state-disabled {
  pointer-events: none;
  cursor: default !important;
}

.ui-icon {
  vertical-align: middle;
  text-indent: -99999px;
  background-repeat: no-repeat;
  margin-top: -.25em;
  display: inline-block;
  position: relative;
  overflow: hidden;
}

.ui-widget-icon-block {
  margin-left: -8px;
  display: block;
  left: 50%;
}

.ui-widget-overlay {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
}

.ui-resizable {
  position: relative;
}

.ui-resizable-handle {
  -ms-touch-action: none;
  touch-action: none;
  font-size: .1px;
  display: block;
  position: absolute;
}

.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle {
  display: none;
}

.ui-resizable-n {
  cursor: n-resize;
  width: 100%;
  height: 7px;
  top: -5px;
  left: 0;
}

.ui-resizable-s {
  cursor: s-resize;
  width: 100%;
  height: 7px;
  bottom: -5px;
  left: 0;
}

.ui-resizable-e {
  cursor: e-resize;
  width: 7px;
  height: 100%;
  top: 0;
  right: -5px;
}

.ui-resizable-w {
  cursor: w-resize;
  width: 7px;
  height: 100%;
  top: 0;
  left: -5px;
}

.ui-resizable-se {
  cursor: se-resize;
  width: 12px;
  height: 12px;
  bottom: 1px;
  right: 1px;
}

.ui-resizable-sw {
  cursor: sw-resize;
  width: 9px;
  height: 9px;
  bottom: -5px;
  left: -5px;
}

.ui-resizable-nw {
  cursor: nw-resize;
  width: 9px;
  height: 9px;
  top: -5px;
  left: -5px;
}

.ui-resizable-ne {
  cursor: ne-resize;
  width: 9px;
  height: 9px;
  top: -5px;
  right: -5px;
}

.ui-selectable {
  -ms-touch-action: none;
  touch-action: none;
}

.ui-selectable-helper {
  z-index: 100;
  border: 1px dotted #000;
  position: absolute;
}

.ui-sortable-handle {
  -ms-touch-action: none;
  touch-action: none;
}

.ui-datepicker {
  width: 17em;
  padding: .2em .2em 0;
  display: none;
}

.ui-datepicker .ui-datepicker-header {
  padding: .2em 0;
  position: relative;
}

.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
  width: 1.8em;
  height: 1.8em;
  position: absolute;
  top: 2px;
}

.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover {
  top: 1px;
}

.ui-datepicker .ui-datepicker-prev {
  left: 2px;
}

.ui-datepicker .ui-datepicker-next {
  right: 2px;
}

.ui-datepicker .ui-datepicker-prev-hover {
  left: 1px;
}

.ui-datepicker .ui-datepicker-next-hover {
  right: 1px;
}

.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
  margin-top: -8px;
  margin-left: -8px;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
}

.ui-datepicker .ui-datepicker-title {
  text-align: center;
  margin: 0 2.3em;
  line-height: 1.8em;
}

.ui-datepicker .ui-datepicker-title select {
  margin: 1px 0;
  font-size: 1em;
}

.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
  width: 45%;
}

.ui-datepicker table {
  border-collapse: collapse;
  width: 100%;
  margin: 0 0 .4em;
  font-size: .9em;
}

.ui-datepicker th {
  text-align: center;
  border: 0;
  padding: .7em .3em;
  font-weight: bold;
}

.ui-datepicker td {
  border: 0;
  padding: 1px;
}

.ui-datepicker td span, .ui-datepicker td a {
  text-align: right;
  padding: .2em;
  text-decoration: none;
  display: block;
}

.ui-datepicker .ui-datepicker-buttonpane {
  background-image: none;
  border-bottom: 0;
  border-left: 0;
  border-right: 0;
  margin: .7em 0 0;
  padding: 0 .2em;
}

.ui-datepicker .ui-datepicker-buttonpane button {
  float: right;
  cursor: pointer;
  width: auto;
  margin: .5em .2em .4em;
  padding: .2em .6em .3em;
  overflow: visible;
}

.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
  float: left;
}

.ui-datepicker.ui-datepicker-multi {
  width: auto;
}

.ui-datepicker-multi .ui-datepicker-group {
  float: left;
}

.ui-datepicker-multi .ui-datepicker-group table {
  width: 95%;
  margin: 0 auto .4em;
}

.ui-datepicker-multi-2 .ui-datepicker-group {
  width: 50%;
}

.ui-datepicker-multi-3 .ui-datepicker-group {
  width: 33.3%;
}

.ui-datepicker-multi-4 .ui-datepicker-group {
  width: 25%;
}

.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
  border-left-width: 0;
}

.ui-datepicker-multi .ui-datepicker-buttonpane {
  clear: left;
}

.ui-datepicker-row-break {
  clear: both;
  width: 100%;
  font-size: 0;
}

.ui-datepicker-rtl {
  direction: rtl;
}

.ui-datepicker-rtl .ui-datepicker-prev {
  left: auto;
  right: 2px;
}

.ui-datepicker-rtl .ui-datepicker-next {
  left: 2px;
  right: auto;
}

.ui-datepicker-rtl .ui-datepicker-prev:hover {
  left: auto;
  right: 1px;
}

.ui-datepicker-rtl .ui-datepicker-next:hover {
  left: 1px;
  right: auto;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane {
  clear: right;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button {
  float: left;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .ui-datepicker-rtl .ui-datepicker-group {
  float: right;
}

.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
  border-left-width: 1px;
  border-right-width: 0;
}

.ui-datepicker .ui-icon {
  text-indent: -99999px;
  background-repeat: no-repeat;
  display: block;
  top: .3em;
  left: .5em;
  overflow: hidden;
}

legend {
  max-width: 100%;
}

blockquote.hidden, button.hidden, div.hidden, fieldset.hidden, form.hidden, iframe.hidden, li.hidden, img.hidden, input.hidden, option.hidden, p.hidden, select.hidden, span.hidden, table.hidden, thead.hidden > tr, tbody.hidden > tr, textarea.hidden, tr.hidden, ul.hidden {
  display: none !important;
}

.hidden2, .hidden2 *, .hidden_dialog_0, .hidden_dialog_1, .hidden_dialog_2 {
  visibility: hidden !important;
}

div.fixed {
  position: fixed;
  top: 0;
}

.nowrap td {
  text-overflow: ellipsis;
  overflow: hidden;
}

.nowrap div {
  white-space: nowrap;
}

.dialog div.action {
  clear: both;
}

.dialog span.action {
  margin: 10px 0;
  display: block;
}

.dialog ul.action {
  margin: 15px 0;
  padding: 0;
  list-style: none;
  display: block;
}

.dialog .action li {
  margin: 0;
  padding: 0;
  display: inline;
}

.dialog .action {
  line-height: normal;
  position: relative;
}

.dialog ul.action a, .dialog button, .dialog input[type="button"], .dialog input[type="submit"] {
  background-color: var(--cDFDFDFFF, #dfdfdf);
  color: var(--c000000FF, #000);
  cursor: pointer;
  border: 0;
  margin: 0 10px 0 0;
  padding: 5px 15px;
  font-size: 12px;
  font-weight: normal;
  line-height: 12px;
  text-decoration: none;
  display: inline-block;
  font-family: Arial, Helvetica, sans-serif !important;
}

.dialog ul.action a.default, .dialog button.default {
  background-color: var(--cC6C6C6FF, #c6c6c6);
  font-weight: bold;
}

.dialog ul.action a:hover, .dialog button:hover, .dialog input[type="button"]:hover, .dialog input[type="submit"]:hover {
  background-color: var(--cF3F3F3FF, #f3f3f3);
}

.dialog ul.action a.default:hover, .dialog button.default:hover, .dialog input[type="button"].default:hover, .dialog input[type="submit"].default:hover {
  background-color: var(--cDADADAFF, #dadada);
}

.dialog ul.action a:focus, .dialog button:focus, .dialog input[type="button"]:focus, .dialog input[type="submit"]:focus, .dialog ul.action a.default:focus, .dialog button.default:focus, .dialog input[type="button"].default:focus, .dialog input[type="submit"].default:focus {
  background-color: var(--c00669EFF, #00669e);
  color: var(--cFFFFFFFF, #fff);
}

input.expanded, select.expanded, textarea.expanded {
  box-sizing: border-box;
  width: 100%;
}

input[type="password"].validate_error, input[type="text"].validate_error, input[type="email"].validate_error, input[type="tel"].validate_error, input:not([type]).validate_error {
  color: var(--cFF0000FF, red);
}

.searchable_hidden {
  display: none;
}

table.table * tr {
  vertical-align: middle;
}

table:-webkit-any(.mixed, .plain, .table) > * > tr {
  vertical-align: middle;
}

table:-moz-any(.mixed, .plain, .table) > * > tr {
  vertical-align: middle;
}

table:is(.mixed, .plain, .table) > * > tr {
  vertical-align: middle;
}

table:-webkit-any(.fixed, .layout) {
  border-collapse: collapse;
  clear: both;
  table-layout: fixed;
}

table:-moz-any(.fixed, .layout) {
  border-collapse: collapse;
  clear: both;
  table-layout: fixed;
}

table:is(.fixed, .layout) {
  border-collapse: collapse;
  clear: both;
  table-layout: fixed;
}

table.layout {
  width: 100%;
}

table.fixed > * > tr > th, table.fixed > * > tr > td, table.layout > * > tr > th, table.layout > * > tr > td, table.fixed * tr th, table.fixed * tr td {
  margin: 0;
  padding: 0;
}

table:-webkit-any(.fixed, .layout) > * > tr {
  vertical-align: top;
}

table:-moz-any(.fixed, .layout) > * > tr {
  vertical-align: top;
}

table:is(.fixed, .layout) > * > tr {
  vertical-align: top;
}

table:-webkit-any(.mixed, .plain, .table) {
  border-collapse: collapse;
  clear: both;
  table-layout: fixed;
  text-align: left;
}

table:-moz-any(.mixed, .plain, .table) {
  border-collapse: collapse;
  clear: both;
  table-layout: fixed;
  text-align: left;
}

table:is(.mixed, .plain, .table) {
  border-collapse: collapse;
  clear: both;
  table-layout: fixed;
  text-align: left;
}

table:-webkit-any(.mixed, .table:not(.plain)) {
  width: 100%;
}

table:-moz-any(.mixed, .table:not(.plain)) {
  width: 100%;
}

table:is(.mixed, .table:not(.plain)) {
  width: 100%;
}

table.plain > * > tr > th, table.plain > * > tr > td {
  padding: 4px 5px;
}

table.plain > * > tr > th, table.plain * tr th {
  text-align: left;
  font-weight: normal;
}

table.mixed > * > tr > th, table.mixed > * > tr > td {
  padding: 4px 5px;
}

table.mixed > * > tr > th, table.mixed * tr th {
  text-align: left;
}

table.table:not(.plain) > * > tr > th, table.table:not(.plain) > * > tr > td {
  border-bottom: 1px solid var(--cCCCCCCFF, #ccc);
  text-align: left;
  padding: 4px 5px;
}

table.table:not(.plain) > * > tr > th > div:first-child, table.table:not(.plain) > * > tr > td > div:first-child {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

tr.header > th, tr.header > td, .dialog div.header {
  background-color: var(--cCCCCCCFF, #ccc);
  text-align: left;
  vertical-align: bottom;
  border: 0;
  font-weight: bold !important;
}

tr.column > th, tr.column > td {
  background-color: var(--cECECECFF, #ececec);
  text-align: left;
  vertical-align: bottom;
  font-weight: bold !important;
}

tr.column > td {
  font-weight: normal !important;
}

tr.row_select, tr.row_hover {
  cursor: pointer;
}

tr.row_select a, tr.row_hover a {
  outline: 0;
  text-decoration: none;
  color: var(--c000000FF, #000) !important;
}

tr.hover td, tr.hover th {
  background: var(--cFFFFE8FF, #ffffe8) !important;
}

tr.plain a {
  color: var(--c0000FFFF, #00f) !important;
  text-decoration: underline !important;
}

tr.plain a:active, tr.plain a:hover {
  color: var(--cFF0000FF, red) !important;
}

.clear {
  clear: both;
}

.progress_div, .progress_dialog_div {
  background-color: var(--c000000FF, #000);
  opacity: .1;
  filter: progid:DXImageTransform. Microsoft. Alpha(opacity= 10);
  z-index: 5001;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
}

.progress_box {
  text-align: center;
  z-index: 5001;
  width: 100px;
  height: 80px;
  margin: -40px 0 0 -50px;
  position: fixed;
  top: 50%;
  left: 50%;
}

.progress_timer {
  color: var(--c00669EFF, #00669e);
  text-align: center;
  margin-top: 50px;
  font-size: 11px;
}

.progress_loader:before, .progress_loader:after, .progress_loader {
  border-radius: 50%;
  width: 2.5em;
  height: 2.5em;
  font-size: 4px;
  animation: 1.8s ease-in-out infinite progress_loader;
}

.progress_loader {
  margin: 0 auto;
  animation-delay: -.16s;
  position: relative;
  transform: translateZ(0);
}

.progress_loader:before {
  animation-delay: -.32s;
  left: -3.5em;
}

.progress_loader:after {
  left: 3.5em;
}

.progress_loader:before, .progress_loader:after {
  content: "";
  position: absolute;
  top: 0;
}

@keyframes progress_loader {
  0%, 80%, 100% {
    box-shadow: 0 2.5em 0 -1.3em var(--c00669EFF, #00669e);
  }

  40% {
    box-shadow: 0 2.5em 0 .05em var(--c00669EFF, #00669e);
  }
}

.dialog {
  background-color: var(--cFFFFFFFF, #fff);
  overflow: hidden;
}

.dialog_host .dialog {
  box-shadow: 0 0 5px var(--c00000066, #0006);
  padding: 0;
}

.dialog_flat > .dialog {
  display: none;
}

.dialog .header {
  background: var(--cDADADAFF, #dadada);
  color: var(--c000000FF, #000);
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 8px 10px;
  overflow: hidden;
}

.dialog div.action {
  background: var(--cFFFFFFFF, #fff);
  border-top: 1px solid var(--cEAEAEAFF, #eaeaea);
  margin: 0;
  padding: 10px;
}

body.dialog {
  border: 0;
}

.dialog div.content {
  padding: 8px;
  overflow: hidden auto;
}

.dialog_host {
  z-index: 5000;
  position: fixed;
}

.error, .success, .alert {
  border-left: 5px solid var(--c000000FF, #000);
  color: var(--c000000FF, #000);
  padding: 10px 10px 10px 15px;
  display: block;
}

.error {
  background-color: var(--cFFFFCCFF, #ffc);
  border-color: var(--cFFCC66FF, #fc6);
}

.success {
  background-color: var(--cE6EFC2FF, #e6efc2);
  border-color: var(--c529214FF, #529214);
}

.suggest {
  background: var(--cFFFFFFFF, #fff);
  border: 1px solid var(--cCCCCCCFF, #ccc);
  -moz-user-select: none;
  font-size: 11px;
  position: absolute;
  overflow: hidden;
}

.suggest_default {
  background: var(--cECECECFF, #ececec);
  color: var(--c666666FF, #666);
  text-align: left;
  height: 1%;
  padding: 4px 5px;
}

.suggest_item {
  background-color: var(--cFFFFFFFF, #fff);
  color: var(--c000000FF, #000);
  cursor: pointer;
  text-align: left;
  height: 1%;
  padding: 2px 0;
}

.suggest_item b {
  color: var(--c3399FFFF, #39f);
  font-weight: normal;
}

.suggest_item_selected {
  background-color: var(--cEFEFEFFF, #efefef);
}

.suggest_name {
  color: var(--c000000FF, #000);
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 2px 0 10px;
  overflow: hidden;
}

.suggest_data {
  color: var(--c666666FF, #666);
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 2px 0 10px;
  font-size: 9px;
  overflow: hidden;
}

.suggest_collection_title {
  color: var(--c00669EFF, #00669e);
  padding: 4px;
}

.suggest_table > tbody > tr > td {
  vertical-align: top;
}

.suggest_table b {
  color: var(--c3399FFFF, #39f);
  font-weight: normal;
}

.suggest_color {
  vertical-align: middle;
  width: 7.5px;
  height: 7.5px;
  margin-right: 2.5px;
  display: inline-block;
}

@media print {
  :root * {
    color: #000 !important;
    background-image: none !important;
  }

  :root body {
    background-color: #fff;
    margin: 0;
    color: #000 !important;
  }

  :root .Header {
    padding-bottom: 5rem;
  }

  :root [data-automodal] {
    display: none !important;
  }

  :root img {
    display: none !important;
  }

  :root svg {
    display: none !important;
  }

  :root img.print {
    max-width: 100%;
    display: block;
  }

  :root svg.print {
    max-width: 100%;
    display: block;
  }

  :root h1 {
    break-before: always;
  }

  :root table {
    break-inside: avoid;
  }

  :root img {
    break-inside: avoid;
  }

  :root svg {
    break-inside: avoid;
  }

  :root [data-flexscroll-viewport] {
    grid-template-columns: 1fr;
    gap: 1rem;
    display: grid;
    overflow: visible;
  }

  :root .Header {
    visibility: hidden !important;
    display: none !important;
    overflow: hidden !important;
  }
}

html:has(.menu-open) {
  overflow: hidden;
}

html:has(.menu-open) #main-content {
  pointer-events: none;
  cursor: default;
  -webkit-user-select: none;
  user-select: none;
  position: relative;
}

html:has(.search-open) {
  overflow: hidden;
}

html:has(.search-open) #main-content {
  pointer-events: none;
  cursor: default;
  -webkit-user-select: none;
  user-select: none;
  position: relative;
}

.Header {
  --color: var(--white);
  --height: 3.75rem;
  background: var(--black);
  color: var(--white);
  box-shadow: var(--shadow);
  z-index: 3;
  position: sticky;
  top: 0;
}

.Header .link-underline:after {
  background-color: var(--white);
}

.Header .link-underline:hover {
  color: var(--black);
}

@media (max-width: calc(80em - .001px)) {
  .Header .Button {
    width: 100%;
  }
}

@media (min-width: 80em) {
  .Header {
    box-shadow: none;
    flex-direction: column;
    display: flex;
  }

  .Header.Header--college .Header__primary .Header__college-title {
    visibility: visible;
    background-color: #0000;
    flex: 1;
    margin-right: auto;
    padding: .25rem 0 .25rem calc(200px + 1rem);
    transition: padding .4s;
    display: block;
  }

  .menu-open :is(.Header.Header--college .Header__primary .Header__college-title) {
    padding-left: calc(132px + 1rem);
    transition: padding .4s;
  }

  [data-sticky] :is(.Header.Header--college .Header__primary .Header__college-title) {
    padding-left: calc(132px + 1rem);
    transition: padding .4s;
  }
}

.Header__primary {
  grid-template-columns: 1fr minmax(0, 3.75rem) minmax(0, 3.75rem);
  grid-template-rows: var(--height) auto 1fr;
  align-items: start;
  width: 100%;
  display: grid;
}

@media (max-width: calc(80em - .001px)) {
  .Header__primary {
    background-image: linear-gradient(to bottom, var(--black) 0 var(--height), transparent var(--height));
    interpolate-size: allow-keywords;
    height: auto;
  }

  .Header__primary:has(.Header__menu-toggle[aria-expanded="true"]) {
    height: 100dvh;
  }
}

@media (min-width: 80em) {
  .Header__primary {
    order: 1;
    justify-content: flex-end;
    align-items: center;
    gap: 1rem;
    width: auto;
    margin-inline-start: 3rem;
    margin-inline-end: 3rem;
    display: flex;
    position: relative;
  }

  .Header__primary:before {
    content: " ";
    background: var(--carnegie-red);
    height: 1px;
    margin-inline-start: auto;
    margin-inline-end: auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
}

.Header__logo-wrapper {
  z-index: 1;
  flex: 1;
  place-items: center;
  height: 100%;
  display: grid;
  position: relative;
}

@media (min-width: 80em) {
  .Header__logo-wrapper {
    margin-right: auto;
    position: absolute;
    top: 0;
    left: 0;
  }
}

.Header__logo {
  background: var(--carnegie-red);
  width: -moz-fit-content;
  width: fit-content;
  height: 100%;
  padding-inline-start: 1.25rem;
  padding-inline-end: 1.25rem;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  outline-offset: -.35rem !important;
}

.Header__logo > * {
  margin: 0 auto;
}

.Header__logo > *:first-child {
  width: 15rem;
  height: 3.75rem;
  padding-block-start: .5rem;
  padding-block-end: .5rem;
}

.Header__logo > *:nth-child(2) {
  display: none;
}

.Header__logo > *:last-child {
  display: none;
}

@media (min-width: 80em) {
  .Header__logo {
    place-items: center;
    width: 200px;
    max-width: calc(376px + 6rem);
    height: 200px;
    padding: 0;
    transition: height .4s .8s, width .4s .4s;
  }

  @media (prefers-reduced-motion: reduce) {
    .Header__logo {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .Header__logo > *:first-child {
    visibility: hidden;
    opacity: 0;
    height: 0;
    padding: 0 1.25rem;
    transition: opacity .4s, visibility 0s 1.2s, height, transform 0s 1.2s, width 0s 1.2s, padding;
  }

  @media (prefers-reduced-motion: reduce) {
    .Header__logo > *:first-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .Header__logo > *:last-child {
    visibility: visible;
    opacity: 1;
    width: 161px;
    height: 200px;
    transition: opacity .4s 1.2s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding;
    display: block;
  }

  @media (prefers-reduced-motion: reduce) {
    .Header__logo > *:last-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .Header--college :is(.Header__logo > *):first-child {
    visibility: hidden;
    display: none;
  }

  .Header--college :is(.Header__logo > *):nth-child(2) {
    visibility: hidden;
    opacity: 0;
    height: 0;
    padding: 0 1.25rem;
    transition: opacity .4s, visibility 0s 1.2s, transform 0s 1.2s, width 0s 1.2s;
    display: block;
  }

  @media (prefers-reduced-motion: reduce) {
    .Header--college :is(.Header__logo > *):nth-child(2) {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }
}

@media (min-width: 80em) {
  .menu-open .Header__logo {
    width: 320px;
    height: 3rem;
    transition: height .4s .4s, width .4s .8s, padding 0s 1.6s;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open .Header__logo {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .menu-open .Header__logo > *:first-child {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    padding: .5rem 0;
    transition: opacity .4s 1.2s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open .Header__logo > *:first-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .menu-open .Header__logo > *:last-child {
    visibility: hidden;
    opacity: 0;
    height: 0;
    transition: opacity .4s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open .Header__logo > *:last-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  [data-sticky] .Header__logo {
    width: 320px;
    height: 3rem;
    transition: height .4s .4s, width .4s .8s, padding 0s 1.6s;
  }

  @media (prefers-reduced-motion: reduce) {
    [data-sticky] .Header__logo {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  [data-sticky] .Header__logo > *:first-child {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    padding: .5rem 0;
    transition: opacity .4s 1.2s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
  }

  @media (prefers-reduced-motion: reduce) {
    [data-sticky] .Header__logo > *:first-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  [data-sticky] .Header__logo > *:last-child {
    visibility: hidden;
    opacity: 0;
    height: 0;
    transition: opacity .4s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
  }

  @media (prefers-reduced-motion: reduce) {
    [data-sticky] .Header__logo > *:last-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .menu-open .Header__logo {
    width: 400px;
  }

  [data-sticky] .Header__logo {
    width: 400px;
  }
}

@media (min-width: 85em) {
  .menu-open .Header__logo {
    width: 472px;
  }

  [data-sticky] .Header__logo {
    width: 472px;
  }
}

@media (max-width: calc(80em - .001px)) {
  .Header--college .Header__logo {
    place-items: center;
    display: grid;
    width: 132px !important;
  }

  .Header--college .Header__logo > *:first-child {
    visibility: hidden;
    display: none;
  }

  .Header--college .Header__logo > *:nth-child(2) {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    transition: visibility 0s 1.2s, height 0s 1.2s, transform, width 0s 1.2s;
    display: block;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .Header--college .Header__logo > *:nth-child(2) {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }
}

@media (min-width: 80em) {
  .Header--college .Header__logo {
    transition: height .4s, width;
  }

  .menu-open :is(.Header--college .Header__logo) {
    width: 132px !important;
  }

  .menu-open :is(.Header--college .Header__logo) > *:nth-child(2) {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    transition: opacity .4s 1.2s, visibility 0s 1.2s;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open :is(.Header--college .Header__logo) > *:nth-child(2) {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .menu-open :is(.Header--college .Header__logo) > *:last-child {
    visibility: hidden;
    opacity: 0;
    height: 0;
    transition: opacity .4s, visibility 0s 1.2s;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open :is(.Header--college .Header__logo) > *:last-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  [data-sticky] :is(.Header--college .Header__logo) {
    width: 132px !important;
  }

  [data-sticky] :is(.Header--college .Header__logo) > *:nth-child(2) {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    transition: opacity .4s 1.2s, visibility 0s 1.2s;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    [data-sticky] :is(.Header--college .Header__logo) > *:nth-child(2) {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  [data-sticky] :is(.Header--college .Header__logo) > *:last-child {
    visibility: hidden;
    opacity: 0;
    height: 0;
    transition: opacity .4s, visibility 0s 1.2s;
  }

  @media (prefers-reduced-motion: reduce) {
    [data-sticky] :is(.Header--college .Header__logo) > *:last-child {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }
}

.Header__college-logo {
  background: var(--carnegie-red);
  outline-offset: -.35rem;
  width: -moz-fit-content;
  width: fit-content;
  height: 100%;
  padding-inline-start: 1.25rem;
  padding-inline-end: 1.25rem;
}

.Header__college-logo svg {
  width: 100%;
  max-width: 376px;
  height: 3rem;
}

@media (min-width: 80em) {
  .Header__college-logo {
    flex: 1;
    place-items: center;
    width: 100%;
    max-width: calc(376px + 6rem);
    margin-right: auto;
    padding-inline-start: 3rem;
    padding-inline-end: 3rem;
  }
}

.Header__college-title {
  background-color: var(--gray-dark);
  order: 2;
  grid-column: 1 / -1;
  width: 100%;
  padding: 1.25rem;
  font-weight: 400;
  line-height: 1.1;
}

@media (min-width: 80em) {
  .Header__college-title {
    order: unset;
    min-width: 400px;
    max-width: 520px;
    transform: scale(.9);
  }
}

@media (min-width: 90em) {
  .Header__college-title {
    transform: scale(1);
  }
}

.Header__college-title a {
  letter-spacing: 0;
  font-size: 1.125rem;
  font-weight: bold;
  position: relative;
}

.Header__college-title a:after {
  content: " ";
  transition: background var(--transition), color var(--transition);
  background: linear-gradient(var(--white), var(--white)) 0 75% / 0 .0625rem no-repeat;
  width: 100%;
  height: .0625rem;
  position: absolute;
  bottom: 0;
  left: 0;
}

.Header__college-title:hover a:after {
  background-size: 100% .0625rem;
}

.Header__search-toggle, .Header__menu-toggle {
  background: none;
  border: 0;
  padding: 0;
  outline-offset: -.25rem !important;
}

:is(.Header__search-toggle, .Header__menu-toggle):before {
  content: "";
  transition: background var(--transition), transform var(--transition);
  background: var(--white);
  width: 3.75rem;
  height: 3.75rem;
  display: block;
  -webkit-mask: none center / 2rem no-repeat;
  mask: none center / 2rem no-repeat;
}

:is(.Header__search-toggle, .Header__menu-toggle)[aria-expanded="true"]:before {
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center / 2rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center / 2rem no-repeat;
}

@media (min-width: 80em) {
  :is(.Header__search-toggle, .Header__menu-toggle):before {
    width: 3rem;
    height: 3rem;
    -webkit-mask: none center / 1.5rem no-repeat;
    mask: none center / 1.5rem no-repeat;
  }

  :is(.Header__search-toggle, .Header__menu-toggle)[aria-expanded="true"]:before {
    -webkit-mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center / 1.125rem no-repeat;
    mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center / 1.125rem no-repeat;
  }

  :is(.Header__search-toggle, .Header__menu-toggle):hover:before {
    transform: scale(1.2);
  }
}

.Header__search-toggle:before {
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/search.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/search.svg");
}

@media (min-width: 80em) {
  .Header__search-toggle {
    background: var(--carnegie-red);
    order: 3;
    position: relative;
  }

  .Header__search-toggle[aria-expanded="true"]:after {
    opacity: 1;
    top: 3.75rem;
  }
}

.Header__menu-toggle {
  order: 1;
}

.Header__menu-toggle:before {
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/menu.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/menu.svg");
}

@media (min-width: 80em) {
  .Header__menu-toggle {
    visibility: hidden;
    display: none;
  }
}

.Header__search {
  --color: var(--black);
  padding: var(--gap);
  height: calc(100dvh - var(--height));
  transition: opacity var(--transition), visibility var(--transition);
  background: var(--white);
  color: var(--black);
  z-index: -1;
  opacity: 0;
  visibility: hidden;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
  transform: translateY(100%);
}

[aria-expanded="true"] + .Header__search {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--transition), visibility var(--transition);
}

@media (min-width: 80em) {
  .Header__search {
    left: unset;
    box-shadow: var(--shadow);
    width: 37.5rem;
    height: auto;
  }

  .Header--college .Header__search {
    margin-right: 3rem;
  }
}

.Header__form-wrapper {
  margin-bottom: var(--gap-sm);
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.Header__form {
  flex: 1;
  max-width: 520px;
  position: relative;
}

.Header__input {
  border: .0625rem solid var(--black);
  background: none;
  width: 100%;
  height: 2.5rem;
  padding-inline-start: 1.5rem;
  padding-inline-end: 4rem;
  display: block;
  position: relative;
}

.Header__submit {
  background: var(--carnegie-red);
  border: 0;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
}

.Header__submit:before {
  content: "";
  background: var(--white);
  width: 2.5rem;
  height: 2.5rem;
  display: block;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/search.svg") center / 1.5rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/search.svg") center / 1.5rem no-repeat;
}

.Header__heading {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  display: block;
}

@media (max-width: calc(80em - .001px)) {
  .Header__heading {
    visibility: hidden;
    display: none;
  }
}

.Header__subheading {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

.Header__frequent-wrapper {
  gap: var(--gap-sm);
  flex-direction: column;
  display: flex;
}

.Header__frequent {
  gap: var(--gap-sm);
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.Header__frequent a.link-underline {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.Header__frequent a.link-underline:before {
  content: " ";
  background: var(--carnegie-red);
  width: 10px;
  height: 10px;
}

@media (min-width: 80em) {
  .Header__frequent {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.Header__menu {
  place-content: space-between;
  gap: var(--gap);
  padding: 0 1.5rem var(--panel);
  color: var(--white);
  overscroll-behavior: contain;
  order: 3;
  grid-column: 1 / -1;
  max-height: 100%;
  overflow: auto;
}

@media (max-width: calc(80em - .001px)) {
  .Header__menu {
    opacity: 0;
    transition: opacity var(--transition);
    transition-behavior: allow-discrete;
    display: none;
  }

  [aria-expanded="true"] + .Header__menu {
    opacity: 1;
    visibility: visible;
    grid-template-columns: 1fr;
    display: grid;
  }

  @starting-style {
    [aria-expanded="true"] + .Header__menu {
      opacity: 0;
    }
  }
}

@media (min-width: 80em) {
  .Header__menu {
    background: var(--black);
    display: contents;
    position: fixed;
    top: 7.5rem;
  }
}

.Header__nav {
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: calc(80em - .001px)) {
  .Header__nav {
    margin-block-start: 1rem;
    margin-block-end: 1rem;
  }
}

@media (min-width: 80em) {
  .Header__nav {
    flex: 0;
    gap: .75rem;
    max-width: 48.5rem;
    display: flex;
  }

  .Header--college .Header__nav {
    margin-top: 0;
  }
}

@media (min-width: 90em) {
  .Header__nav {
    gap: 1.5rem;
  }
}

@media (min-width: 120em) {
  .Header__nav {
    max-width: 100%;
  }
}

.Header__nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.Header__nav ul li {
  place-items: flex-end;
  display: grid;
}

@media (min-width: 80em) {
  .Header__nav .menu-item {
    flex-direction: row;
    display: flex;
  }
}

.Header__mega-toggle, .Header__mega-link {
  color: var(--white);
  letter-spacing: -.25px;
  border: 0;
  border-bottom: 1px solid var(--white-20);
  background: none;
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
  width: 100%;
  padding: 1rem 0;
  font-size: 1.125rem;
  font-weight: 600;
  display: flex;
  position: relative;
}

@media (min-width: 80em) {
  :is(.Header__mega-toggle, .Header__mega-link) {
    color: inherit;
    border: none;
    flex: 0;
    padding: 0;
    font-size: .875rem;
    text-decoration: none;
  }

  :is(.Header__mega-toggle, .Header__mega-link) span {
    text-align: left;
    line-height: 1.1;
    position: relative;
  }

  :is(.Header__mega-toggle, .Header__mega-link) span.menu-no-wrap {
    white-space: nowrap;
  }

  :is(.Header__mega-toggle, .Header__mega-link) > span.menu-no-wrap:after {
    content: " ";
    transition: background var(--transition), color var(--transition);
    background: linear-gradient(var(--white), var(--white)) 0 75% / 0 .0625rem no-repeat;
    width: 100%;
    height: .0625rem;
    position: absolute;
    bottom: 0;
    left: 0;
  }

  :is(.Header__mega-toggle, .Header__mega-link) > span.menu-flex:after {
    content: " ";
    transition: background var(--transition), color var(--transition);
    background: linear-gradient(var(--white), var(--white)) 0 75% / 0 .0625rem no-repeat;
    width: 100%;
    height: .0625rem;
    position: absolute;
    bottom: 0;
    left: 0;
  }

  :is(.Header__mega-toggle, .Header__mega-link) > span.menu-flex {
    flex-direction: column;
    display: flex;
  }

  @media (min-width: 120em) {
    :is(.Header__mega-toggle, .Header__mega-link) > span.menu-flex {
      display: block;
    }
  }

  :is(.Header__mega-toggle, .Header__mega-link)[aria-expanded="true"] span:after {
    background-size: 100% .0625rem;
  }

  :is(.Header__mega-toggle, .Header__mega-link):hover span:after {
    background-size: 100% .0625rem;
  }
}

@media (min-width: 120em) {
  :is(.Header__mega-toggle, .Header__mega-link) span {
    white-space: nowrap;
  }
}

.Header__mega-toggle:after {
  content: "";
  transition: transform var(--transition), background var(--transition);
  background: var(--white);
  flex-shrink: 0;
  width: .8125rem;
  height: .5625rem;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / contain no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / contain no-repeat;
}

.Header__mega-toggle[aria-expanded="true"]:after {
  transform: rotate(180deg);
}

@media (max-width: calc(80em - .001px)) {
  .Header__mega {
    transition: grid-template-rows var(--transition), visibility var(--transition);
    overflow-clip-margin: .5rem;
    visibility: hidden;
    grid-template-rows: minmax(0, 0fr);
    grid-template-columns: 100%;
    display: grid;
    overflow: clip;
  }

  [aria-expanded="true"] + .Header__mega {
    visibility: visible;
    grid-template-rows: minmax(0, 1fr);
  }

  .Header__menu-toggle[aria-expanded="false"] + .Header__menu .Header__mega {
    visibility: hidden;
  }
}

@media (min-width: 80em) {
  .Header__mega {
    padding: var(--gap);
    transition: background var(--transition) .4s, visibility var(--transition) .4s;
    visibility: hidden;
    z-index: -1;
    background: none;
    margin-inline-start: -3rem;
    margin-inline-end: -3rem;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    transform: translateY(100%);
  }

  [aria-expanded="true"] + .Header__mega {
    background: var(--black);
    visibility: visible;
    transition: background var(--transition) .4s, visibility var(--transition) .4s;
  }

  [aria-expanded="true"] + .Header__mega .Header__group {
    opacity: 1;
    transition: opacity .4s .8s, transform .4s .8s;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    [aria-expanded="true"] + .Header__mega .Header__group {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  [aria-expanded="true"] + .Header__mega .Header__cta {
    opacity: 1;
    transition: opacity .4s .8s, transform .4s .8s;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    [aria-expanded="true"] + .Header__mega .Header__cta {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .Header__mega {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }
}

.Header__mega .Buttons {
  justify-content: center;
  margin-block-start: 2rem;
  margin-block-end: 2rem;
}

@media (min-width: 80em) {
  .Header__mega .Buttons {
    margin-block-start: 3rem;
    margin-block-end: 0;
  }
}

@media (min-width: 80em) {
  .menu-open .Header__mega .Header__group {
    transition: opacity .4s .4s, transform .4s .4s;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open .Header__mega .Header__group {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }

  .menu-open .Header__mega .Header__cta {
    transition: opacity .4s .4s, transform .4s .4s;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .menu-open .Header__mega .Header__cta {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }
}

@media (max-width: calc(80em - .001px)) {
  .Header__collapse a:after {
    opacity: 1;
    transform: none;
  }
}

.Header__title {
  color: var(--black);
  font: var(--h5);
  margin-block-start: 2rem;
  margin-block-end: 2rem;
  transition: background var(--transition), color var(--transition) !important;
  font-weight: bold !important;
}

@media (min-width: 80em) {
  .Header__title {
    margin-block: 0 var(--gap);
    align-items: center;
    font: var(--h2) !important;
    padding-bottom: .125rem !important;
    display: inline-flex !important;
  }

  .Header__title:after {
    margin-block-start: -1rem;
    margin-block-end: -1rem;
  }
}

.Header__grid {
  grid-template-columns: 100%;
  gap: 1rem;
  display: grid;
}

.Header__grid ul {
  column-count: 2;
  grid-template-columns: 100%;
  margin-block-start: 1rem;
  margin-block-end: 1rem;
  display: grid;
}

.Header__grid ul li a {
  color: inherit;
  border-bottom: 1px solid var(--white-20);
  width: 100%;
  padding-block-start: .875rem;
  padding-block-end: .875rem;
  text-decoration: none;
  display: block;
  position: relative;
}

.Header__grid ul li a:before {
  content: " ";
  background: var(--white);
  transition: width var(--transition);
  width: 0%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
}

.Header__grid ul li a:hover:before {
  width: 100%;
}

@media (min-width: 80em) {
  .Header__grid {
    gap: var(--gap);
  }

  .Header__grid ul {
    margin-top: 2rem;
  }

  .Header__grid:has(.Header__cta) {
    grid-template-columns: 2fr 3fr;
  }
}

@media (max-width: calc(80em - .001px)) {
  .Header__group ul {
    padding-inline-start: 1rem;
    padding-inline-end: 0;
  }
}

@media (min-width: 80em) {
  .Header__group {
    opacity: 0;
    transition: opacity .4s ease-in-out, transform .4s ease-in-out;
    transform: translateX(-10%);
  }

  .Header__group ul {
    gap: 0 var(--gap);
    grid-template-columns: 1fr 1fr;
    display: grid;
  }

  @media (prefers-reduced-motion: reduce) {
    .Header__group {
      transition-duration: 0s;
      transition-delay: 0s;
    }
  }
}

.Header__cta {
  background: var(--white);
  color: var(--black);
  opacity: 0;
  transition: opacity .4s ease-in-out, transform .4s ease-in-out;
  display: flex;
  position: relative;
  transform: translateX(10%);
}

.Header__cta:has(.link-cover:hover) .Header__cta-image img {
  transform: scale(1.1);
}

.Header__cta:has(.link-cover:hover) .link-underline-swipe {
  background-size: 100% 1px;
}

.Header__cta:has(.link-cover:focus-visible) {
  outline-offset: .25rem;
  outline: .25rem dashed;
  outline-color: var(--color, var(--black));
}

.Header__cta:has(.link-cover:focus-visible) .link-cover {
  outline: none;
}

@media (max-width: calc(80em - .001px)) {
  .Header__cta {
    opacity: 1;
    margin-inline-start: 1rem;
    margin-inline-end: 0;
    margin-bottom: 1rem;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .Header__cta {
    transition-duration: 0s;
    transition-delay: 0s;
  }
}

.Header__cta-image {
  flex: 0 0 30%;
  max-width: 344px;
  display: block;
  overflow: hidden;
}

.Header__cta-image img {
  object-fit: cover;
  height: 100%;
  transition: transform 3s;
}

@media (prefers-reduced-motion: reduce) {
  .Header__cta-image img {
    transition-duration: 0s;
    transition-delay: 0s;
  }
}

@media (max-width: calc(48em - .001px)) {
  .Header__cta-image {
    visibility: hidden;
    display: none;
  }
}

.Header__cta-main {
  --accent: var(--black);
  padding: var(--gap);
  flex-direction: column;
  justify-content: center;
  display: flex;
}

.Header__cta-title {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.Header__cta-title .link-cover {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.Header__cta-title .link-underline-swipe {
  padding-bottom: 0;
}

.Header__utility {
  --accent: var(--white);
  --background: var(--black);
  display: none;
}

@media (min-width: 80em) {
  .Header__utility {
    visibility: visible;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 4rem;
    padding-inline-start: 3rem;
    padding-inline-end: 3rem;
    display: flex;
  }
}

.Header__utility--mobile {
  flex-direction: column;
  gap: 2rem;
  display: flex;
}

@media (min-width: 80em) {
  .Header__utility--mobile {
    visibility: hidden;
    display: none;
  }
}

.Header__actions {
  grid-template-columns: auto auto;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

@media (max-width: calc(80em - .001px)) {
  .Header__actions a {
    color: var(--white);
  }
}

@media (min-width: 80em) {
  .Header__actions {
    gap: 1.5rem;
    padding-left: 1.5rem;
  }
}

.Header__audience {
  align-items: center;
  gap: .75rem;
  margin: 0 auto;
  padding: 0;
  font-size: .75rem;
  font-weight: 600;
  list-style: none;
  display: flex;
  position: relative;
  top: .25em;
}

.Header__audience a {
  line-height: 1;
  display: block;
}

.Header__audience li {
  text-align: center;
}

.Header__audience > * + * {
  align-items: center;
  height: 100%;
  display: flex;
  position: relative;
}

.Header__audience > * + *:before {
  content: " ";
  border-left: 1px solid var(--white-20);
  width: 1px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -.375rem;
}

@media (min-width: 80em) {
  .Header__audience > * + *:before {
    height: 100%;
  }
}

@media (min-width: 80em) {
  .Header__audience {
    gap: 1.5rem;
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
  }

  .Header__audience > * + *:before {
    left: -.75rem;
  }
}

.Footer {
  width: 100%;
}

.Footer__main {
  gap: var(--gap);
  padding-inline: var(--wrap);
  padding-bottom: calc(var(--panel) * 2);
  background: var(--gray-light);
  flex-direction: column;
  display: flex;
  position: relative;
}

@media (min-width: 64em) {
  .Footer__main {
    gap: calc(var(--gap) * 2);
    padding-inline-start: 3rem;
    padding-inline-end: 3rem;
    flex-direction: row;
    padding-bottom: 0;
  }
}

.Footer__brand {
  gap: var(--gap-sm);
  flex-direction: column;
  order: 1;
  display: flex;
}

.Footer__brand a {
  font-weight: 400;
}

@media (min-width: 64em) {
  .Footer__brand {
    order: unset;
    max-width: 12.5rem;
  }
}

.Footer__brand-main {
  gap: var(--gap-sm);
  font-size: .875rem;
  display: flex;
}

.Footer__brand-main a {
  border-bottom: none;
}

@media (min-width: 64em) {
  .Footer__brand-main {
    flex-direction: column;
  }
}

.Footer__logo {
  background: var(--carnegie-red);
  color: var(--white);
  outline-color: var(--white);
  outline-offset: -.35rem;
  place-items: center;
  width: 180px;
  height: 180px;
  padding-inline-start: 1.25rem;
  padding-inline-end: 1.25rem;
  display: grid;
}

@media (min-width: 64em) {
  .Footer__logo {
    width: 200px;
    height: 200px;
  }
}

.Footer__social {
  margin: 0 auto var(--gap-sm);
  flex-wrap: wrap;
  gap: 1.5rem;
  padding: 0;
  list-style-type: none;
  display: flex;
}

.Footer__social li a {
  transition: var(--transition);
  border-bottom: none;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  display: grid;
}

.Footer__social li a svg {
  width: 1.5rem;
}

.Footer__social li a:hover {
  background: none;
  transform: scale(1.2);
}

@media (min-width: 64em) {
  .Footer__social {
    margin: 0 0 var(--gap-sm);
    grid-template-columns: repeat(4, 1fr);
    place-items: center;
    display: grid;
  }

  .PreFooter .Footer__social {
    margin: var(--gap-sm) 0 0;
    grid-template-columns: repeat(4, 2rem);
  }
}

.Footer__nav {
  gap: var(--gap);
  padding-block: var(--gap-sm);
  flex: 1;
  display: grid;
}

.Footer__nav > div {
  flex-direction: column;
  flex: 1;
  gap: 1rem;
  display: flex;
}

.Footer__nav > div > p {
  border-bottom: 3px solid var(--carnegie-red);
  margin: 0;
  padding-block-start: 1.375rem;
  padding-block-end: .875rem;
  font-weight: 700;
}

.Footer__nav ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.Footer__nav ul li a {
  color: inherit;
  transition: background-position var(--transition);
  background: linear-gradient(-90deg, #0000 50%, currentColor 50%) 100% calc(100% + 1px) / 200% .0625rem no-repeat;
  width: 100%;
  font-size: .875rem;
  font-weight: 400;
  text-decoration: none;
  display: block;
  position: relative;
  border-bottom: 1px solid #6d6e7166 !important;
  padding-block-start: .875rem !important;
  padding-block-end: .875rem !important;
}

.Footer__nav ul li a:hover {
  background-position-x: 0;
}

@media (min-width: 64em) {
  .Footer__nav {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 80em) {
  .Footer__nav {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

.Footer__back-to-top {
  bottom: 0;
  right: 0;
  width: -moz-fit-content !important;
  width: fit-content !important;
  position: absolute !important;
}

.Footer__back-to-top:after {
  transform: rotate(-90deg) !important;
}

@media (min-width: 64em) {
  .Footer__back-to-top {
    margin-top: 1rem;
    margin-left: auto;
    position: relative !important;
  }
}

.Footer__legal {
  padding: 1.5rem var(--wrap);
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  font-size: .875rem;
  display: flex;
}

.Footer__legal p {
  margin: 0;
}

.Footer__legal ul {
  gap: var(--gap-sm);
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style-type: none;
  display: flex;
}

.Footer__legal ul a {
  font-weight: 400;
}

@media (min-width: 64em) {
  .Footer__legal {
    justify-content: flex-start;
    gap: var(--gap-sm);
    padding-inline-start: 3rem;
    padding-inline-end: 3rem;
    font-weight: 600;
  }

  .Footer__legal a {
    font-weight: 600;
  }
}

.Accordion {
  --background: var(--white);
  --color: var(--black);
  color: var(--black);
  box-shadow: 0px 10px 10px 0px var(--black-10);
  grid-template-columns: 100%;
  display: grid;
}

.Accordion__item {
  background: var(--white);
}

.Accordion__heading {
  font: var(--h5);
  margin: 0;
}

.Accordion__toggle {
  border: 0;
  border-bottom: 2px var(--black-10) solid;
  outline-offset: -.5rem;
  transition: background var(--transition);
  background: none;
  gap: 1rem;
  width: 100%;
  padding: 1rem 1.5rem;
  display: flex;
}

.Accordion__toggle:before {
  content: "";
  background: var(--black);
  transition: transform var(--transition);
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: block;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
}

.Accordion__toggle:hover {
  background: var(--gray-light);
}

.Accordion__toggle[aria-expanded="true"]:before {
  transform: rotate(180deg);
}

.Accordion__collapse {
  transition: grid-template-rows var(--transition), visibility var(--transition);
  overflow-clip-margin: .5rem;
  visibility: hidden;
  grid-template-rows: minmax(0, 0fr);
  grid-template-columns: 100%;
  display: grid;
  overflow: clip;
}

.Accordion__heading:has( > .Accordion__toggle[aria-expanded="true"]) + .Accordion__collapse {
  visibility: visible;
  grid-template-rows: minmax(0, 1fr);
}

.Accordion__content {
  border-bottom: 2px var(--black-10) solid;
  padding: 2rem 1.5rem;
}

.Accordion__content p {
  max-width: 80ch;
}

.Accordion__content .Buttons {
  margin-top: var(--gap-sm);
}

.Accordion--minimal {
  box-shadow: none;
}

.Accordion--minimal .Accordion__heading {
  font: inherit;
}

.Accordion--minimal .Accordion__toggle {
  transition: text-shadow var(--transition);
  border-bottom: 0;
  align-items: center;
  gap: .35em;
  padding: 0;
}

.Accordion--minimal .Accordion__toggle:before {
  content: "";
  background: var(--black);
  transition: transform var(--transition);
  flex-shrink: 0;
  width: 10px;
  height: 8px;
  display: block;
  transform: rotate(-90deg);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / .8125rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / .8125rem no-repeat;
}

.Accordion--minimal .Accordion__toggle:hover {
  text-shadow: .5px 0;
  background: none;
}

.Accordion--minimal .Accordion__toggle[aria-expanded="true"]:before {
  transform: rotate(0);
}

.Accordion--minimal .Accordion__content {
  border-bottom: 0;
  padding: 1rem 0;
}

.Alert {
  z-index: 3;
  padding-block-start: 1rem;
  padding-block-end: 1rem;
  padding-inline-start: 1rem;
  padding-inline-end: 1rem;
  position: relative;
}

.Alert .Buttons {
  flex-shrink: 0;
  margin: 0;
  padding: 0;
}

@media (min-width: 48em) {
  .Alert .Buttons {
    margin-left: auto;
  }
}

@media (min-width: 48em) {
  .Alert {
    padding: 1.5rem var(--gap-sm);
    justify-content: flex-start;
    align-items: center;
    display: flex;
  }
}

.Alert--primary {
  background: var(--carnegie-red) !important;
}

.Alert--alt {
  background: var(--gray-light);
  color: var(--black);
}

.Alert--alt .Alert__close:before {
  background-color: var(--black);
}

.Alert--alt .Alert__close:after {
  background-color: var(--black);
}

@media (min-width: 48em) {
  .Alert--alt {
    padding-right: calc(var(--gap-sm) * 2);
  }

  .Alert--alt:has(.Alert__close) {
    padding-right: calc((var(--gap-sm) * 2)  + 22px);
  }
}

.Alert__heading {
  margin: 0;
  padding-inline-start: 0;
  padding-inline-end: 5rem;
  font-weight: 700;
}

@media (min-width: 48em) {
  .Alert__heading {
    padding-inline-start: 0;
    padding-inline-end: 0;
  }
}

.Alert--primary .Alert__heading {
  font: var(--h6);
}

.Alert__warning {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.Alert__warning:before {
  content: "";
  background: currentColor;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  -webkit-mask-image: url("../assets/warning.svg");
  mask-image: url("../assets/warning.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.Alert__close {
  transition: transform var(--transition);
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
  position: absolute;
  top: .75rem;
  right: 1rem;
}

.Alert__close:hover {
  transform: scale(1.2);
}

.Alert__close:before {
  content: "";
  background: currentColor;
  width: 20px;
  height: 20px;
  display: block;
}

@media (min-width: 64em) {
  .Alert__close {
    top: unset;
    right: calc(var(--gap-sm)  - .5rem);
  }
}

.Alert__close:before {
  color: var(--white);
  -webkit-mask-image: url("../assets/close.svg");
  mask-image: url("../assets/close.svg");
}

.Alert__content {
  height: var(--height, auto);
  transition: height var(--transition), visibility var(--transition);
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  display: flex;
}

@media (min-width: 64em) {
  .Alert__content {
    justify-content: flex-start;
    align-items: center;
    gap: var(--gap-sm);
    flex-direction: row;
  }
}

.Alert__text {
  margin: 0;
}

:root:has(.Automodal) {
  overflow: hidden;
}

.Automodal {
  transition: opacity var(--transition);
  opacity: 0;
  background: none;
  border: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.Automodal::backdrop {
  transition: opacity var(--transition);
  background: var(--black-90);
  opacity: 0;
}

.Automodal--active {
  opacity: 1;
}

.Automodal--active::backdrop {
  opacity: 1;
}

.Automodal__close {
  color: var(--white);
  z-index: 1;
  outline-color: var(--white);
  transition: var(--transition);
  background: none;
  border: 0;
  padding: 0;
  position: absolute;
  top: 1rem;
  right: 1rem;
}

.Automodal__close:before {
  content: "";
  background: var(--white);
  width: 2rem;
  height: 2rem;
  display: block;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center / 1rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center / 1rem no-repeat;
}

.Automodal__close:hover {
  transform: scale(1.2);
}

.Automodal__viewport {
  pointer-events: none;
  width: 100%;
  height: 100%;
  display: grid;
}

.Automodal__item {
  padding: var(--panel) var(--wrap);
  grid-area: 1 / 1;
  place-items: center;
  display: grid;
  overflow: auto;
}

.Automodal__content {
  pointer-events: auto;
  width: 100%;
}

.BioCard {
  --image-bg: linear-gradient(to bottom, var(--background) 0 60%, var(--white) 60%);
  background-color: var(--white);
  flex-flow: column;
  display: none;
}

.BioCard.show {
  display: flex;
}

.BioCard .BioCard__image {
  background-image: var(--image-bg);
  transform: var(--transform);
  padding: 0 1.5rem;
}

.BioCard .BioCard__image-link {
  --transform: none;
  aspect-ratio: 1;
  width: var(--image-width);
  display: block;
  overflow: hidden;
}

.BioCard .BioCard__image-link:hover {
  --transform: scale(1.2);
}

.BioCard .BioCard__image-link img {
  transform: var(--transform);
}

@media (prefers-reduced-motion: no-preference) {
  .BioCard .BioCard__image-link img {
    transition: transform 3s;
  }
}

.BioCard .BioCard__details {
  flex-flow: column;
  flex-grow: 1;
  padding: 1rem 1.5rem 2rem;
  display: flex;
}

.BioCard .BioCard__name {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  display: block;
}

.BioCard .BioCard__link {
  font-weight: 700;
}

.BioCard .BioCard__title {
  flex-grow: 1;
  padding: 0 0 1.25rem;
  font-weight: 700;
  display: block;
}

.BioCard .BioCard__email {
  line-height: 1.8;
  display: block;
}

.BioCard .BioCard__email:not(:last-child) {
  padding-block-end: .25rem;
}

.BioCard .BioCard__tel {
  line-height: 1.8;
  display: block;
}

.BioCard .BioCard__tel:not(:last-child) {
  padding-block-end: .25rem;
}

@container (width >= 30em) {
  .BioList.BioList--horizontal .BioCard {
    --image-bg: linear-gradient(to right, var(--background) 0 50%, var(--white) 50%);
    flex-flow: row;
  }

  .BioList.BioList--horizontal .BioCard__image {
    flex-shrink: 0;
    width: min(25%, 8rem);
    padding: 1.5rem 0;
  }

  .BioList.BioList--horizontal .BioCard__details {
    padding: 1.5rem 2rem 1.5rem 1.5rem;
  }

  .BioList.BioList--horizontal .BioCard__title {
    flex-grow: 0;
    padding: 0 0 1rem;
  }

  .BioList.BioList--horizontal .BioCard__contact {
    flex-flow: column;
    display: flex;
  }

  .BioList.BioList--horizontal .BioCard__email {
    gap: 1em;
    display: flex;
  }

  .BioList.BioList--horizontal .BioCard__email:before {
    background-image: var(--background-image);
    content: "" / var(--label);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1.125rem;
    display: inline-block;
  }

  .BioList.BioList--horizontal .BioCard__tel {
    gap: 1em;
    display: flex;
  }

  .BioList.BioList--horizontal .BioCard__tel:before {
    background-image: var(--background-image);
    content: "" / var(--label);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1.125rem;
    display: inline-block;
  }

  .BioList.BioList--horizontal .BioCard__email {
    --background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 18 13'%3E%3Cpath d='M2.106 0h13.786c.038.006.075.015.113.019.338.036.66.134.96.31.109.065.11.084.013.175l-.035.031C14.477 2.767 12.01 4.997 9.545 7.23c-.353.319-.738.319-1.091 0L2.768 2.085 1.028.512C.92.412.922.396 1.045.324c.183-.107.377-.182.577-.238.16-.045.324-.054.485-.086ZM0 11.119V1.883c.05-.34.157-.652.348-.93C.415.857.461.85.548.928c2.01 1.823 4.024 3.643 6.036 5.463.12.11.12.11 0 .219L.555 12.064c-.116.104-.12.103-.212-.027A2.092 2.092 0 0 1 0 11.119Z'%3E%3C/path%3E%3Cpath d='M8.995 13H2.32a2.48 2.48 0 0 1-1.25-.307c-.157-.09-.159-.1-.024-.223l4.97-4.495c.351-.317.703-.631 1.05-.952.08-.073.135-.077.215-.002.238.223.482.437.723.655a1.458 1.458 0 0 0 1.993-.004c.235-.214.474-.423.705-.641.085-.08.145-.083.234-.002.833.759 1.67 1.513 2.505 2.27l3.496 3.162.044.04c.093.088.092.106-.011.167-.3.178-.62.28-.96.311-.17.017-.342.02-.514.02H8.995ZM18 6.495v4.416c0 .42-.115.797-.347 1.131-.085.124-.094.126-.204.025l-3.497-3.161-2.533-2.293c-.124-.112-.124-.113.001-.227L17.422.955c.143-.13.144-.129.252.034.216.325.326.687.325 1.09v4.415Z'%3E%3C/path%3E%3C/svg%3E");
    --label: "email";
  }

  .BioList.BioList--horizontal .BioCard__tel {
    --background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 18 18'%3E%3Cpath d='M0 4.251c.049-.337.065-.677.156-1.01C.388 2.396.79 1.642 1.339.963a1.997 1.997 0 0 1 1-.675 7.862 7.862 0 0 1 1.326-.28c.298-.036.536.05.704.318.37.593.682 1.219 1.024 1.828.295.525.595 1.046.931 1.546.373.555.338.832-.116 1.325-.405.44-.906.768-1.352 1.16-.675.592-.708.8-.257 1.575.558.959 1.14 1.898 1.878 2.734.924 1.048 2.006 1.896 3.21 2.591.347.2.679.426 1.05.587.288.124.517.05.73-.146.27-.248.512-.519.731-.81.273-.365.57-.706.91-1.009.363-.323.623-.374 1.025-.109 1.081.712 2.23 1.303 3.355 1.938.25.141.483.3.512.626v.133c-.026.176-.055.35-.077.527-.13 1.038-.61 1.827-1.545 2.35-.7.39-1.418.699-2.21.828h-1.114a11.108 11.108 0 0 1-1.837-.52c-1.007-.38-2.028-.725-2.957-1.285-1.442-.87-2.679-1.987-3.867-3.171-1.938-1.932-3.279-4.209-4.054-6.83C.172 5.63.036 5.065 0 4.475v-.223Z'%3E%3C/path%3E%3C/svg%3E");
    --label: "phone";
  }
}

:has( > .BioList) {
  container-type: inline-size;
}

.BioList {
  --columns: 1;
  --inner-gap: 2.5rem;
  --padding: var(--gap) var(--wrap);
  background-color: var(--background);
  gap: var(--inner-gap);
  grid-template-columns: repeat(var(--columns), minmax(0, 1fr));
  padding: var(--padding);
  display: grid;
}

.BioList.bg-black {
  --background: var(--black);
}

.BioList.bg-gray-light {
  --background: var(--gray-light);
}

.BioList .BioList__intro {
  grid-column: 1 / -1;
}

.BioList .BioList__description {
  max-width: 50rem;
}

.BioList .BioList__load-more {
  grid-column: 1 / -1;
}

.BioList .BioList__row-count {
  display: none;
}

.BioList__numbers {
  text-transform: uppercase;
  letter-spacing: 2px;
  vertical-align: middle;
  grid-column: 1 / -1;
  font-family: Open Sans, Helvetica, sans-serif;
  font-size: 1em;
  font-weight: 600;
  line-height: 1.15em;
}

@container (width >= 30em) {
  .BioList {
    --columns: 2;
    --inner-gap: 2rem 1.5rem;
  }

  .BioList.BioList--horizontal {
    --columns: 1;
  }
}

@container (width >= 48rem) {
  .BioList {
    --columns: 3;
    --inner-gap: 2.5rem;
  }

  .BioList.BioList--horizontal {
    --columns: 2;
  }

  .ContentSidebar .BioList {
    --columns: 2;
    --inner-gap: 2rem 1.5rem;
    --padding: 1.5rem;
  }

  .ContentSidebar .BioList.BioList--compact {
    --columns: 3;
    --inner-gap: 2rem 1rem;
  }

  .ContentSidebar .BioList.BioList--horizontal {
    --columns: 1;
  }
}

@container (width >= 70rem) {
  .BioList.BioList--compact {
    --columns: 4;
    --inner-gap: 2.5rem 2rem;
  }
}

.Breadcrumbs {
  padding: 1rem var(--wrap);
  background: var(--gray-light);
}

.Breadcrumbs a {
  transition: box-shadow var(--transition);
  background: none;
  border-color: #0000;
  padding: 0;
  box-shadow: 0 .0625rem;
}

.Breadcrumbs a:hover {
  box-shadow: 0 .125rem;
}

.Breadcrumbs a[aria-current] {
  box-shadow: none;
  font-weight: 600 !important;
}

.Breadcrumbs a[aria-current]:hover {
  color: inherit;
  background-color: #0000;
}

.ContentSidebar .Breadcrumbs {
  background: none;
  padding: 1rem 0 2rem;
}

.ContentSidebar .Breadcrumbs a {
  font-size: 16px;
  line-height: 24px;
  color: var(--black) !important;
  font-weight: 400 !important;
}

.ContentSidebar .Breadcrumbs a[aria-current] {
  box-shadow: none;
  font-weight: 600 !important;
}

.ContentSidebar .Breadcrumbs a[aria-current]:hover {
  color: inherit;
  background-color: #0000;
}

.ContentSidebar__header .Breadcrumbs {
  background: none;
  padding: 1rem 0 2rem;
}

.ContentSidebar__header .Breadcrumbs a {
  font-size: 16px;
  line-height: 24px;
  color: var(--black) !important;
  font-weight: 400 !important;
}

.ContentSidebar__header .Breadcrumbs a[aria-current] {
  box-shadow: none;
  font-weight: 600 !important;
}

.ContentSidebar__header .Breadcrumbs a[aria-current]:hover {
  color: inherit;
  background-color: #0000;
}

.Hero .Breadcrumbs {
  background: none;
  padding: 1rem 0 2rem;
}

.Hero .Breadcrumbs a {
  font-size: 16px;
  line-height: 24px;
  color: var(--black) !important;
  font-weight: 400 !important;
}

.Hero .Breadcrumbs a[aria-current] {
  box-shadow: none;
  font-weight: 600 !important;
}

.Hero .Breadcrumbs a[aria-current]:hover {
  color: inherit;
  background-color: #0000;
}

.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs {
  background: var(--white);
}

:is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) a {
  color: var(--black) !important;
}

.ContentSidebar :is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) {
  background: none;
}

.ContentSidebar :is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) a {
  color: var(--black) !important;
  font-weight: 400 !important;
}

.ContentSidebar__header :is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) {
  background: none;
}

.ContentSidebar__header :is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) a {
  color: var(--black) !important;
  font-weight: 400 !important;
}

.Hero :is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) {
  background: none;
}

.Hero :is(.Breadcrumbs--light, .Breadcrumbs--light .Breadcrumbs) a {
  color: var(--black) !important;
  font-weight: 400 !important;
}

.Button, .FormConnector-form-button, .form_button_submit {
  --theme: var(--color, var(--black));
  border: 1px solid var(--theme);
  transition: background var(--transition), color var(--transition);
  color: inherit;
  font: var(--text-button);
  letter-spacing: -.14px;
  text-align: center;
  z-index: 1;
  background: none;
  width: -moz-fit-content;
  width: fit-content;
  padding: .75rem 1.25rem;
  display: inline-block;
  position: relative;
  overflow: clip;
}

:is(.Button, .FormConnector-form-button, .form_button_submit):before {
  content: "";
  border-radius: inherit;
  background: var(--theme);
  transition: transform var(--transition);
  z-index: -1;
  position: absolute;
  top: -.125rem;
  bottom: -.125rem;
  left: -.125rem;
  right: -.125rem;
  transform: translateY(100%);
}

@media (max-width: calc(64em - .001px)) {
  :is(.Button, .FormConnector-form-button, .form_button_submit) {
    width: 100%;
  }
}

:is(.Button, .FormConnector-form-button, .form_button_submit):hover {
  color: var(--background, var(--white));
}

:is(.Button, .FormConnector-form-button, .form_button_submit):hover:before {
  transform: none;
}

.Buttons--alt .Button, .Button--alt {
  --theme: var(--accent, var(--black));
  padding: .75rem 1.25rem;
  border: 1px solid var(--carnegie-red);
  transition: background var(--transition), color var(--transition);
  color: inherit;
  font: var(--text-button);
  letter-spacing: -.14px;
  text-align: center;
  background: none;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  min-height: 45px;
  padding-left: calc(43px + 1.25rem);
  display: inline-flex;
  position: relative;
  overflow: clip;
}

:is(.Buttons--alt .Button, .Button--alt):hover {
  color: var(--background, var(--white));
  background: none;
}

:is(.Buttons--alt .Button, .Button--alt):before {
  content: "";
  top: 0;
  left: 0;
  bottom: unset;
  right: unset;
  transform: unset;
  background: var(--carnegie-red);
  transition: width var(--transition);
  z-index: -1;
  width: 43px;
  height: 100%;
  position: absolute;
}

:is(.Buttons--alt .Button, .Button--alt):after {
  content: "";
  background-color: var(--white);
  width: 43px;
  height: 100%;
  display: inline-flex;
  position: absolute;
  top: 0;
  left: 0;
  transform: rotate(-45deg);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
}

:is(.Buttons--alt .Button, .Button--alt):hover {
  color: var(--white);
}

:is(.Buttons--alt .Button, .Button--alt):hover:before {
  width: 100%;
}

@media (max-width: calc(64em - .001px)) {
  :is(.Buttons--alt .Button, .Button--alt) {
    width: 100%;
  }
}

.Buttons {
  align-items: center;
  gap: var(--gap-sm);
  margin-block: var(--gap);
  flex-wrap: wrap;
  display: flex;
}

@media (max-width: calc(64em - .001px)) {
  .Buttons {
    width: 100%;
  }
}

.Buttons--stack {
  flex-direction: column;
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.CheckList {
  gap: var(--gap);
  grid-template-columns: 100%;
  display: grid;
}

@media (min-width: 64em) {
  .CheckList {
    gap: var(--gutter);
  }
}

.CheckList__header {
  grid-template-columns: 100%;
  gap: 1rem;
  display: grid;
}

@media (min-width: 64em) {
  .CheckList__header {
    gap: var(--gutter);
    grid-template-columns: auto calc(60% - var(--gutter));
  }
}

.CheckList__grid {
  position: relative;
}

@media (min-width: 64em) {
  .CheckList__grid {
    flex-direction: column;
    justify-content: flex-start;
    min-height: 400px;
    display: flex;
  }
}

.CheckList__heading {
  margin: 0;
  position: relative;
}

@media (min-width: 64em) {
  .CheckList__heading {
    width: calc(40% - var(--gutter));
    border-bottom: 0;
    margin-right: auto;
    padding-bottom: 1.5rem;
  }

  .CheckList__heading:before {
    content: " ";
    border-left: 1px dashed var(--white-40);
    height: 100%;
    position: absolute;
    bottom: -30%;
    left: .62rem;
  }

  .CheckList__heading:last-of-type:before {
    display: none;
  }

  .CheckList__heading .close-toggle {
    display: none;
  }
}

.CheckList__toggle {
  --text: var(--white);
  border: 0;
  border-bottom: 1px solid var(--white-40);
  text-align: left;
  transition: var(--transition);
  background: none;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding-block-start: 1rem;
  padding-block-end: 1rem;
  font-size: 1rem;
  font-weight: 600;
  display: flex;
  position: relative;
}

.CheckList__toggle:before {
  background: var(--white);
  content: "";
  flex-shrink: 0;
  width: 10px;
  height: 10px;
}

.CheckList__toggle[aria-expanded="true"] {
  border-color: var(--carnegie-red);
}

.CheckList__toggle[aria-expanded="true"]:before {
  background: var(--carnegie-red);
}

.CheckList__toggle:hover {
  border-color: var(--carnegie-red);
}

.CheckList__toggle:hover:before {
  background: var(--carnegie-red);
}

@media (min-width: 64em) {
  .CheckList__toggle {
    border-bottom: none;
    gap: 2rem;
  }

  .CheckList__toggle span {
    border-bottom: 1px solid #0000;
  }

  .CheckList__toggle[aria-expanded="true"] {
    border-color: #0000;
  }

  .CheckList__toggle[aria-expanded="true"] span {
    border-color: var(--carnegie-red);
  }

  .CheckList__toggle:hover span {
    border-color: var(--carnegie-red);
  }
}

.CheckList__content {
  transition: visibility var(--transition);
  visibility: hidden;
  height: 0;
  position: relative;
}

.CheckList__heading:has( > .CheckList__toggle[aria-expanded="true"]) + .CheckList__content {
  margin-block: var(--gap-sm);
  visibility: visible;
  height: 400px;
}

.CheckList__heading:has( > .CheckList__toggle[aria-expanded="true"]) + .CheckList__content .CheckList__wrapper {
  opacity: 1;
  visibility: visible;
}

@media (min-width: 64em) {
  .CheckList__heading:has( > .CheckList__toggle[aria-expanded="true"]) + .CheckList__content {
    height: 100%;
    margin-block-start: 1rem;
    margin-block-end: 0;
  }
}

@media (min-width: 64em) {
  .CheckList__content {
    width: calc(60% - var(--gutter));
    height: 100%;
    margin-top: 1rem;
    position: absolute;
    top: 0;
    right: 0;
  }
}

.CheckList__wrapper {
  --background: var(--white);
  --color: var(--black);
  background: var(--white);
  color: var(--black);
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--transition), visibility var(--transition);
  height: 100%;
  overflow-y: scroll;
}

.CheckList__wrapper::-webkit-scrollbar {
  width: 8px;
}

.CheckList__interior {
  padding: var(--gap-sm) var(--gap-sm) calc(2 * var(--gap-sm));
  position: relative;
}

@media (min-width: 64em) {
  .CheckList__interior {
    padding: var(--gap-sm) var(--gap-sm) calc(var(--gap-sm)  + var(--gap));
  }
}

.CTAPanel {
  align-items: center;
  gap: var(--gap);
  padding: var(--gap) var(--wrap);
  grid-template-columns: 100%;
  display: grid;
  position: relative;
}

@media (min-width: 64em) {
  .CTAPanel {
    grid-template-columns: 42rem auto;
  }

  .CTAPanel.CTAPanel--alt {
    grid-template-columns: 100%;
  }
}

.CTAPanel > * {
  margin: 0;
}

.CTAPanel .Common {
  background-color: var(--black-80);
  padding: var(--gap);
  position: relative;
}

.CTAPanel--alt :is(.CTAPanel .Common) {
  text-align: center;
  place-items: center;
  display: grid;
}

.CTAPanel--alt :is(.CTAPanel .Common) > p {
  max-width: 780px;
}

@media (min-width: 64em) {
  .CTAPanel .Common {
    padding: 5.75rem;
  }
}

.CTAPanel .Image {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.CTAPanel .Image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.Events {
  gap: var(--gutter);
  display: grid;
}

.Section--black .Events {
  background-color: var(--white);
  padding: var(--gutter);
}

.Section--gray .Events {
  background-color: var(--white);
  padding: var(--gutter);
}

@media (min-width: 64em) {
  .Events {
    gap: var(--gutter) calc(var(--gutter) * 2);
    grid-template-columns: 1fr 1fr;
    overflow: visible;
  }
}

.Events__item {
  border-bottom: 1px solid var(--black-10);
  padding-bottom: var(--gap-sm);
  gap: var(--gap);
  grid-template-columns: 100%;
  display: grid;
  position: relative;
}

.Events__item * {
  margin: 0;
}

.Events__item h3 {
  margin-top: 1.5rem;
}

.Events__item h3 a {
  color: inherit;
  font-weight: 400;
}

@media (min-width: 64em) {
  .Events__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .Events__item:nth-last-child(2) {
    border-bottom: none;
    padding-bottom: 0;
  }
}

.FacultyCard {
  align-items: center;
  gap: var(--gap);
  padding-block: var(--gap-sm);
  border-bottom: 1px solid var(--black-10);
  grid-template-columns: 100%;
  display: grid;
  position: relative;
}

.FacultyCard:has(.Image) {
  grid-template-columns: auto 1fr;
}

@media (min-width: 32em) {
  .FacultyCard:has(.Image) .FacultyCard__details {
    height: calc(100% - var(--gap));
  }
}

.FacultyCard .Image {
  order: 1;
  min-width: 60px;
  max-width: 238px;
}

@media (min-width: 32em) {
  .FacultyCard .Image {
    order: unset;
  }
}

.FacultyCard__details {
  padding-left: var(--gap);
  place-content: center;
  width: 100%;
  position: relative;
}

.FacultyCard__details:before {
  content: "";
  background-color: var(--carnegie-red);
  width: 8px;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.FacultyCard__details.Common a {
  color: var(--color);
}

@media (min-width: 32em) {
  .FacultyCard__details {
    min-height: 200px;
  }
}

.FacultyCard__name {
  font: var(--h4);
  margin-bottom: 0;
}

.FacultyCard__title {
  margin-block-start: .5rem;
  margin-block-end: 0;
  font-weight: 700;
}

.FacultyCard__contact {
  flex-direction: column;
  gap: .5rem;
  margin-top: 1rem;
  display: flex;
}

.FacultyCard__contact p {
  margin: 0;
}

.FeaturedPosts {
  grid-template-columns: 100%;
  display: grid;
}

@media (min-width: 64em) {
  .FeaturedPosts {
    grid-template-columns: 1fr 1fr;
    place-items: stretch stretch;
  }
}

.FeaturedPosts h3 {
  margin: 0;
}

.FeaturedPosts a {
  font-weight: 400;
}

.FeaturedPosts__card {
  aspect-ratio: 1;
  position: relative;
  overflow: hidden;
}

.FeaturedPosts__card:has(.link-cover:hover) .Image {
  transform: scale(1.1);
}

.FeaturedPosts__card .Image {
  width: 100%;
  height: 100%;
  transition: transform 3s;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.FeaturedPosts__card .Image:before {
  content: " ";
  background: linear-gradient(246deg, #0000 -4.12%, #000000b3 77.91%) no-repeat;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.FeaturedPosts__card .Image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

@media (min-width: 64em) {
  .FeaturedPosts__card .Image:before {
    background: linear-gradient(198deg, #0000 32.69%, #000000b3 65.04%) no-repeat;
  }
}

.FeaturedPosts__card .Posts__title {
  font-size: 1.75rem;
}

.FeaturedPosts__card .Posts__title a {
  z-index: 1;
  position: relative;
}

.FeaturedPosts__card .Posts__title a span {
  transition: box-shadow var(--transition);
  z-index: -1;
  position: relative;
}

.FeaturedPosts__card .Posts__title a:hover span {
  box-shadow: 0 .0625rem;
}

.FeaturedPosts__card .FeaturedPosts__content {
  padding: var(--gap);
  place-content: flex-end flex-start;
  width: 100%;
  height: 100%;
  display: grid;
  position: absolute;
}

@media (min-width: 64em) {
  .FeaturedPosts__card .FeaturedPosts__content {
    padding: var(--gap);
  }
}

.FeaturedPosts__card .Posts__title {
  width: -moz-fit-content;
  width: fit-content;
}

.FeaturedPosts__card .meta {
  width: -moz-fit-content;
  width: fit-content;
}

@media (min-width: 64em) {
  .FeaturedPosts--flip .FeaturedPosts__card {
    order: 1;
  }
}

.FeaturedPosts__list {
  place-content: flex-start;
  align-self: center;
  gap: var(--gap-sm);
  grid-template-columns: 100%;
  display: grid;
}

.FeaturedPosts__list > * {
  margin: 0;
}

.FeaturedPosts__list > * .h4 {
  margin: 0;
}

.FeaturedPosts__list .Buttons {
  margin: 0 0 0 auto;
}

.FeaturedPosts--flip :is(.FeaturedPosts__list .Buttons) {
  margin: 0;
}

.Section--gray .FeaturedPosts__list {
  background-color: var(--white);
  padding: var(--gap-sm);
}

.Seciton--black .FeaturedPosts__list {
  background-color: var(--white);
  padding: var(--gap-sm);
}

@media (min-width: 64em) {
  .FeaturedPosts__list {
    height: 100%;
  }
}

.FeaturePanel {
  padding: var(--panel) var(--wrap);
  grid-template-columns: 100%;
  align-items: center;
  display: grid;
  position: relative;
}

.FeaturePanel + .FeaturePanel {
  margin-top: calc(-1 * var(--panel));
}

.FeaturePanel + .Section--black {
  margin-top: calc(-1 * var(--panel));
}

.FeaturePanel + .Section--bg-image {
  margin-top: calc(-1 * var(--panel));
}

.ContentSidebar .FeaturePanel {
  margin-inline: calc(-1 * var(--wrap));
}

@media (min-width: 64em) {
  .ContentSidebar .FeaturePanel {
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding: 0;
  }
}

.FeaturePanel .Image {
  height: 100%;
}

.FeaturePanel .Image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.FeaturePanel .FeaturePanel__content {
  background-color: var(--gray-light);
  padding: var(--gap);
  order: -1;
  grid-template-columns: 100%;
  align-items: center;
  height: 100%;
  display: grid;
}

.FeaturePanel .FeaturePanel__content .Buttons {
  margin-top: var(--gap-sm);
}

.FeaturePanel--alt :is(.FeaturePanel .FeaturePanel__content) {
  background-color: var(--white);
}

@media (min-width: 64em) {
  .FeaturePanel .FeaturePanel__content {
    order: 0;
  }

  .FeaturePanel .FeaturePanel__content .Buttons {
    margin-top: var(--gap);
  }
}

.FeaturePanel:before {
  content: " ";
  background-color: var(--black);
  z-index: -2;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

@media (min-width: 64em) {
  .FeaturePanel {
    grid-template-columns: 1fr 1fr;
  }

  .FeaturePanel + .FeaturePanel {
    margin-top: var(--panel);
  }

  .FeaturePanel + .Section--black {
    margin-top: var(--panel);
  }

  .FeaturePanel + .Section--bg-image {
    margin-top: var(--panel);
  }

  .FeaturePanel:before {
    left: unset;
    width: 65%;
  }
}

@media (min-width: 64em) {
  .FeaturePanel .FeaturePanel__content {
    order: -1;
  }

  .FeaturePanel--flip :is(.FeaturePanel .FeaturePanel__content) {
    order: 0;
  }
}

.ContentSidebar .FeaturePanel {
  grid-template-columns: 100%;
}

@media (min-width: 64em) {
  .ContentSidebar .FeaturePanel {
    grid-template-columns: 100%;
  }

  .ContentSidebar .FeaturePanel:before {
    display: none;
  }

  .ContentSidebar .FeaturePanel .FeaturePanel__content {
    padding: 0 0 var(--gap-sm);
    background: none;
    order: -1;
  }

  .ContentSidebar .FeaturePanel .FeaturePanel__content .Buttons {
    margin-top: var(--gap-sm);
  }
}

.FeaturePanel--alt:before {
  background-color: var(--gray-light);
}

@media (min-width: 64em) {
  .FeaturePanel--alt:before {
    left: 0;
    right: unset;
  }
}

.Finder__hero {
  flex-direction: column;
  padding-block-start: 4.875rem;
  padding-block-end: 4.875rem;
  display: flex;
  position: relative;
}

@media (min-width: 80em) {
  .Finder__hero {
    padding-top: 12rem;
  }
}

.Finder__background {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

.Finder__background img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.Finder__intro {
  color: var(--white);
}

.Finder__intro .h2 {
  margin-bottom: -1.5rem;
}

.Finder__hero-container {
  z-index: 1;
  padding-inline: var(--wrap);
  flex-direction: column;
  flex: 1;
  height: 100%;
  display: flex;
  position: relative;
}

.Finder__hero-container form {
  flex-direction: column;
  flex: 1;
  justify-content: flex-start;
  height: 100%;
  display: flex;
}

.Finder__input-label {
  margin-top: var(--gap);
  display: block;
}

.Finder__input {
  font: var(--body);
  background-color: var(--white);
  color: var(--black);
  background-image: url("../assets/search.svg");
  background-position: right 2rem center;
  background-repeat: no-repeat;
  background-size: 23px;
  border: 0;
  width: 100%;
  margin-block-start: 1rem;
  margin-block-end: 0;
  padding: 1.5rem 4rem 1.5rem 1.5rem;
}

.Finder__input::placeholder {
  opacity: 1;
}

.Finder__input:focus {
  outline-offset: -.5rem;
  outline-color: var(--black);
}

.Finder__filter-toggle {
  background-color: var(--black);
  color: var(--white);
  border: 0;
  border-top: 6px solid var(--carnegie-red);
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 1rem;
  font-weight: 700;
  display: flex;
  position: relative;
}

.Finder__filter-toggle:after {
  content: "";
  background: var(--white);
  transition: transform var(--transition);
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: block;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
}

.Finder__filter-toggle[aria-expanded="true"]:after {
  transform: rotate(180deg);
}

.Finder__filter-toggle[aria-expanded="false"] {
  transition: var(--transition);
}

.Finder__filter-toggle:focus {
  outline-offset: -.5rem;
}

.Finder__filter-content {
  border: 1px solid var(--black);
  height: calc(var(--height, auto)  + 2rem);
  background-color: var(--black);
  color: var(--white);
  transition: height var(--transition), padding var(--transition), visibility var(--transition);
  width: 100%;
  max-height: 25.375rem;
  padding: 1rem 2rem;
  position: relative;
  overflow: auto;
}

[aria-expanded="true"] + .Finder__filter-content::-webkit-scrollbar {
  width: 8px;
}

[aria-expanded="true"] + .Finder__filter-content::-webkit-scrollbar-track {
  background: var(--gray-dark);
}

[aria-expanded="true"] + .Finder__filter-content::-webkit-scrollbar-thumb {
  background: var(--gray-light);
}

[aria-expanded="true"] + .Finder__filter-content::-webkit-scrollbar-thumb:hover {
  background: var(--carnegie-red);
}

[aria-expanded="false"] + .Finder__filter-content {
  visibility: hidden;
  height: 0;
  padding: 0 2rem;
}

@media (min-width: 48em) {
  .Finder__filter-content {
    z-index: 1;
    position: absolute;
  }
}

.Finder__filters-wrapper {
  padding-inline: var(--wrap);
  margin-top: var(--gap);
}

.Finder__filters {
  margin-bottom: var(--gap);
  flex-direction: column;
  gap: 2.5rem;
  display: flex;
}

@media (min-width: 48em) {
  .Finder__filters {
    flex-direction: row;
  }
}

.Finder__checkbox-group {
  --color: var(--white);
  flex: 1;
  position: relative;
}

.Finder__checkbox-label {
  text-transform: capitalize;
  cursor: pointer;
  width: 100%;
  margin: 0 0 .75rem;
  display: flex;
}

.Finder__checkbox {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 1px solid var(--white);
  background: none;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 3px;
  margin-right: 15px;
}

.Finder__checkbox:checked {
  background-color: var(--white);
  border: 1px solid var(--black);
  background-image: url("../assets/check.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 10px;
}

.Finder__items {
  --outline: var(--black);
  padding-block: 0 var(--panel);
  padding-inline: var(--wrap);
}

.Finder__item-list {
  --grid-min: var(--grid-min-item-size-custom, max(16rem, min(50vw, 20rem)));
  grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
  gap: 2rem;
  display: grid;
}

.Finder__load {
  text-align: center;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  display: flex;
}

.Finder__active-filters {
  margin-bottom: 2rem;
  margin-inline: var(--wrap);
  border-top: 1px dashed var(--black);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding-top: 1rem;
  display: flex;
}

.Finder__current {
  flex-wrap: wrap;
  gap: 1.5rem;
  display: flex;
}

.Finder__remove {
  text-transform: capitalize;
  text-align: center;
  color: var(--black);
  transition: var(--transition);
  border: none;
  border-radius: 20px;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 8px 18px;
  font-size: 14px;
  line-height: 18px;
  display: flex;
}

.Finder__remove:after {
  content: "";
  -webkit-mask-image: url("../assets/close.svg");
  mask-image: url("../assets/close.svg");
  -webkit-mask-repeat: none;
  mask-repeat: none;
  background: currentColor;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-left: 8px;
  -webkit-mask-repeat: no-repeat;
}

.Finder__remove:hover {
  background-color: var(--carnegie-red);
  color: var(--white);
}

.Finder__current:empty + .Finder__reset {
  display: none;
}

.Item__card {
  z-index: 0;
  background-color: var(--gray-light);
  transition: box-shadow var(--transition);
  padding: 0 0 3rem;
  position: relative;
}

.Item__card[data-finder-item="hide"] {
  display: none;
}

[data-finder-limit] ~ .Item__card {
  display: none;
}

.Item__card:has(.link-cover:hover) {
  box-shadow: var(--shadow);
}

.Item__card.Item__card--portrait {
  margin-top: 26.8585%;
  padding: 0 3rem 3rem;
}

.Item__card.Item__card--portrait > img {
  object-fit: contain;
  object-position: top;
  max-width: 100%;
  min-height: 6rem;
  max-height: 18rem;
  margin-top: -26.8585%;
}

.Item__card:not(.Item__card--portrait) > img {
  width: 100%;
  height: auto;
  position: relative;
}

.Item__card--portrait .Item__title {
  margin-top: 1.25rem;
  padding-top: 0;
}

.Item__title a {
  color: var(--color);
}

.Item__keys {
  padding: 0;
  list-style-type: none;
}

.Item__keys li {
  gap: .5rem;
  margin: 0 0 .25rem;
  font-size: .875rem;
  font-weight: 600;
  display: flex;
}

.Item__keys li svg {
  width: .875rem;
}

.Item__card > p {
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.Item__card > p:last-child {
  margin-bottom: 0;
}

.Item__card:not(.Item__card--portrait) .Item__title {
  margin: 1.25rem 3rem auto;
}

.Item__card:not(.Item__card--portrait) .Item__keys {
  margin-left: 3rem;
  margin-right: 3rem;
}

.Item__card:not(.Item__card--portrait) > p {
  margin-left: 3rem;
  margin-right: 3rem;
}

.bottom-buttons {
  margin-top: 32px;
}

@media (min-width: 64em) {
  .bottom-buttons {
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 45px;
    display: flex;
  }
}

.bottom-buttons p {
  margin-bottom: 20px;
}

.bottom-buttons .link-secondary {
  --strokeHeight: 1px;
  margin: 0;
  padding: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 17px;
}

.bottom-buttons .button {
  min-width: 290px;
}

@media (min-width: 64em) {
  .bottom-buttons .button {
    min-width: 225px;
  }
}

[data-finder-done] [data-finder-load] {
  display: none;
}

[data-flexscroll] {
  --flexscroll-loop: true;
  --flexscroll-move: all;
  --show: 1;
  --size: calc((100% / var(--show))  - ((var(--gap) * (var(--show)  - 1)) / var(--show)));
  align-items: center;
  gap: var(--gap);
  grid-template-columns: 1fr 1fr;
  display: grid;
  position: relative;
  overflow: hidden;
}

@media (min-width: 64em) {
  [data-flexscroll] {
    grid-template-columns: 3rem 1fr 3rem;
    overflow: visible;
  }
}

[data-flexscroll]:not(:has([inert])) {
  display: block;
}

[data-flexscroll]:not(:has([inert])) [data-flexscroll-dots] {
  display: none;
}

[data-flexscroll]:not(:has([inert])) [data-flexscroll-nav] {
  display: none;
}

[data-flexscroll]:not(:has([inert])) [data-flexscroll-counter] {
  display: none;
}

[data-flexscroll-viewport] {
  gap: var(--gap);
  scroll-behavior: smooth;
  scroll-snap-type: both mandatory;
  scrollbar-width: none;
  grid-column: span 3;
  display: flex;
  position: relative;
  overflow: auto;
}

@media (min-width: 64em) {
  [data-flexscroll-viewport] {
    grid-column: 1;
    grid-template-columns: 2.75rem 1fr 2.75rem;
  }
}

[data-flexscroll-viewport]::-webkit-scrollbar {
  display: none;
}

[data-flexscroll-item] {
  flex: none;
  flex-basis: var(--size);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  grid-template-columns: 100%;
  display: grid;
}

[data-flexscroll-dots] {
  gap: .25rem;
  display: flex;
}

@media (min-width: 64em) {
  [data-flexscroll-dots] {
    order: 1;
    grid-column: 2;
    justify-content: center;
  }
}

[data-flexscroll-goto] {
  border: .0625rem solid var(--accent);
  transition: background-color var(--transition);
  background: var(--accent);
  color: var(--background);
  outline-color: var(--accent);
  border-radius: 50%;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
}

[data-flexscroll-goto][data-flexscroll-goto="inert"] {
  color: currentColor;
  background: none;
}

@media (max-width: calc(64em - .001px)) {
  [data-flexscroll-nav] {
    justify-content: space-between;
    justify-self: unset;
    display: flex;
    position: absolute;
    top: 25%;
    left: 0;
    right: 0;
  }
}

@media (min-width: 64em) {
  [data-flexscroll-nav] {
    display: contents;
  }
}

[data-flexscroll-prev], [data-flexscroll-next] {
  border: .125rem solid var(--carnegie-red);
  transition: color var(--transition), opacity var(--transition);
  background: var(--carnegie-red);
  color: inherit;
  outline-color: var(--white);
  outline-offset: -.25em;
  z-index: 1;
  width: 2rem;
  height: 2rem;
  padding: 0;
  position: relative;
}

:is([data-flexscroll-prev], [data-flexscroll-next]):after {
  content: "";
  background: var(--white);
  transition: var(--transition);
  position: absolute;
  top: -.125rem;
  bottom: -.125rem;
  left: -.125rem;
  right: -.125rem;
  -webkit-mask: none center / 60% no-repeat;
  mask: none center / 60% no-repeat;
}

:is([data-flexscroll-prev], [data-flexscroll-next]):hover:after {
  transform: scale(1.2);
}

:is([data-flexscroll-prev], [data-flexscroll-next])[disabled] {
  opacity: .25;
  pointer-events: none;
}

@media (min-width: 64em) {
  :is([data-flexscroll-prev], [data-flexscroll-next]) {
    width: 2.75rem;
    height: 2.75rem;
  }
}

[data-flexscroll-prev]:after {
  transform: rotate(180deg);
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
}

[data-flexscroll-prev]:hover:after {
  transform: rotate(180deg)scale(1.2);
}

@media (min-width: 64em) {
  [data-flexscroll-prev] {
    order: -1;
  }
}

[data-flexscroll-next]:after {
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/arrow.svg");
}

[data-flexscroll-counter] {
  color: var(--color, var(--black));
  order: 1;
  grid-column: 2;
  justify-content: center;
  place-items: center;
  margin: 0 auto;
  font-weight: 700;
  display: grid;
}

@media (max-width: calc(64em - .001px)) {
  [data-flexscroll-counter] {
    grid-column: 1;
  }
}

.Hero {
  z-index: 1;
  grid-template-columns: 100%;
  align-items: end;
  min-height: 30rem;
  display: grid;
  position: relative;
}

.Hero .Common {
  margin: var(--gap-sm) var(--wrap);
}

.Hero--home :is(.Hero .Common) {
  flex-direction: column;
  justify-content: flex-end;
  display: flex;
}

@media not (prefers-reduced-motion: reduce) {
  .Hero--home :is(.Hero .Common) {
    animation-delay: 1.5s;
  }
}

@media (min-width: 64em) {
  .Hero--home :is(.Hero .Common) {
    min-height: unset;
    justify-content: center;
  }
}

@media (min-width: 80em) {
  .Hero .Common {
    margin: 12rem var(--wrap) var(--gap);
    max-width: 37.5rem;
  }
}

.Hero:has(.Hero__control) .Common {
  padding-block: 10rem var(--panel);
}

@media (min-width: 80em) {
  .Hero:has(.Hero__control) .Common {
    padding-block-start: 0;
    padding-block-end: 0;
  }
}

@media (min-width: 64em) {
  .Hero:has(.Hero__control):has(.Hero__posts) .Common {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  .Hero:has(.Hero__control):has(.Hero__posts) .Hero__control {
    right: unset;
    left: 4rem;
  }
}

@media (min-width: 80em) {
  .Hero:has(.Hero__control):has(.Hero__posts) {
    padding-bottom: 6rem;
  }
}

.Hero:has(.columns) .Common {
  max-width: unset;
}

.Hero--home + .Update {
  border-top: 1px solid var(--carnegie-red);
}

.Hero--form .columns .Hero__main-content {
  margin-inline: var(--gap-sm);
}

@media (min-width: 48em) {
  .Hero--form .columns {
    grid-template-columns: 100%;
  }
}

@media (min-width: 64em) {
  .Hero--form .columns {
    grid-template-columns: 1fr 1fr;
  }

  .Hero--form .columns .Hero__main-content {
    margin-inline-start: 0;
    margin-inline-end: 0;
  }
}

@media (min-width: 80em) {
  .Hero--form .columns {
    gap: calc(var(--gutter) * 2);
  }
}

.Hero--form .Hero__form {
  box-shadow: var(--shadow);
  margin-bottom: calc(-150px - 4.875rem);
}

.Hero--form .Hero__form form {
  padding: var(--gap);
  background-color: var(--white);
  color: var(--black);
  flex-direction: column;
  width: 100%;
}

.Hero--form .Hero__form form blockquote.hidden {
  display: none !important;
}

.Hero--form .Hero__form form button.hidden {
  display: none !important;
}

.Hero--form .Hero__form form div.hidden {
  display: none !important;
}

.Hero--form .Hero__form form fieldset.hidden {
  display: none !important;
}

.Hero--form .Hero__form form form.hidden {
  display: none !important;
}

.Hero--form .Hero__form form iframe.hidden {
  display: none !important;
}

.Hero--form .Hero__form form li.hidden {
  display: none !important;
}

.Hero--form .Hero__form form img.hidden {
  display: none !important;
}

.Hero--form .Hero__form form input.hidden {
  display: none !important;
}

.Hero--form .Hero__form form option.hidden {
  display: none !important;
}

.Hero--form .Hero__form form p.hidden {
  display: none !important;
}

.Hero--form .Hero__form form select.hidden {
  display: none !important;
}

.Hero--form .Hero__form form span.hidden {
  display: none !important;
}

.Hero--form .Hero__form form table.hidden {
  display: none !important;
}

.Hero--form .Hero__form form thead.hidden > tr {
  display: none !important;
}

.Hero--form .Hero__form form tbody.hidden > tr {
  display: none !important;
}

.Hero--form .Hero__form form textarea.hidden {
  display: none !important;
}

.Hero--form .Hero__form form tr.hidden {
  display: none !important;
}

.Hero--form .Hero__form form ul.hidden {
  display: none !important;
}

.Hero--form .Hero__form form div.form_question fieldset > legend {
  display: none !important;
}

.Hero--form .Hero__form form div.form_question {
  box-sizing: border-box;
  margin: 0 0 1em;
  padding: 0;
  position: relative;
}

.Hero--form + section {
  margin-top: calc(150px + 4.875rem) !important;
}

.Hero--form + div {
  margin-top: calc(150px + 4.875rem) !important;
}

.Hero--faculty {
  min-height: unset;
}

.Hero--faculty .Common {
  gap: 0 var(--gutter);
  max-width: unset;
  margin: var(--gap-sm) var(--wrap);
  grid-template-columns: 100%;
  display: grid;
  position: relative;
}

.Hero--faculty .Common .h1 {
  border-bottom: 4px solid var(--carnegie-red);
  order: 2;
  margin: 0 0 1rem;
  padding-bottom: 1rem;
}

.Hero--faculty .Common .h5 {
  order: 2;
  grid-column: 1;
  margin-top: 0;
  font-weight: 700;
}

.Hero--faculty .Common a {
  color: var(--color);
  word-break: break-word;
  font-weight: normal;
}

.Hero--faculty .Common ul {
  flex-direction: column;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style-type: none;
  display: flex;
}

.Hero--faculty .Common .columns {
  order: 4;
  grid-column: 1;
}

.Hero--faculty .Common .columns:not(:has(ul)) {
  display: none;
}

.Hero--faculty .Common > picture {
  margin-bottom: var(--gap-sm);
  grid-column: 1;
  width: 100%;
}

.Hero--faculty .Common > img {
  margin-bottom: var(--gap-sm);
  grid-column: 1;
  width: 100%;
}

.Hero--faculty .Common:before {
  content: "";
  top: calc(-1 * var(--gap-sm));
  left: calc(-1 * var(--wrap));
  width: calc(100% + (2 * var(--wrap)));
  background-color: var(--gray-light);
  z-index: -1;
  aspect-ratio: 4 / 3;
  display: block;
  position: absolute;
}

@media (min-width: 48em) {
  .Hero--faculty .Common {
    margin: var(--gap) var(--wrap) var(--gap-sm);
    grid-template-columns: repeat(8, 1fr);
  }

  .Hero--faculty .Common .Hero__faculty-main {
    background-color: var(--white);
    grid-area: 1 / 3 / 1 / 9;
    padding: 65px 64px 44px 14.5%;
    position: relative;
  }

  .Hero--faculty .Common .Hero__faculty-main:has(.flush) {
    padding-top: 44px;
  }

  .Hero--faculty .Common > picture {
    z-index: 2;
    grid-area: 1 / 1 / 1 / 4;
    width: auto;
    margin-top: 44px;
    margin-bottom: 0;
  }

  .Hero--faculty .Common > img {
    z-index: 2;
    grid-area: 1 / 1 / 1 / 4;
    width: auto;
    margin-top: 44px;
    margin-bottom: 0;
  }

  .Hero--faculty .Common:before {
    display: none;
  }
}

@media (min-width: 80em) {
  .Hero--faculty .Common .Hero__faculty-main {
    padding-top: 148px;
  }

  .Hero--faculty .Common .Hero__faculty-main:has(.flush) {
    padding-top: 65px;
  }
}

@media (min-width: 112.5em) {
  .Hero--faculty .Common {
    margin-left: var(--wrap);
  }
}

--dark.Hero--faculty .Common :before {
  background-color: var(--black);
}

@media (min-width: 80em) {
  .Hero--tall {
    min-height: 40rem;
  }
}

@media (min-width: 80em) {
  .Hero--news {
    aspect-ratio: 2;
    width: 100%;
    max-height: 70vh;
  }
}

.Hero__wrapper {
  grid-template-columns: 100%;
  place-content: flex-end flex-start;
  height: 100%;
  display: grid;
  position: relative;
}

.Hero--home .Hero__wrapper {
  min-height: 80vh;
}

@media (min-width: 64em) {
  .Hero--home .Hero__wrapper {
    position: unset;
    place-content: unset;
    min-height: unset;
  }
}

@media (min-width: 48em) {
  .Hero--faculty .Hero__wrapper:before {
    content: "";
    background-color: var(--gray-light);
    z-index: 1;
    width: 100%;
    height: 260px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
  }

  .Hero--faculty .Hero__wrapper .Common {
    z-index: 2;
  }
}

@media (min-width: 80em) {
  .Hero--faculty .Hero__wrapper {
    padding-top: 5.625em;
  }

  .Hero--faculty .Hero__wrapper:before {
    height: 65%;
  }
}

@media (min-width: 48em) {
  .Hero--faculty--dark .Hero__wrapper:before {
    background-color: var(--black);
  }
}

.Hero__background {
  border-radius: var(--radius);
  z-index: -1;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}

@media not (prefers-reduced-motion: reduce) {
  .Hero--home .Hero__background {
    animation: 1s ease-in fade-in;
  }
}

.Hero__background:after {
  content: "";
  background: linear-gradient(0deg, #000c 0%, #0006 100%);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.Hero__background img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.Hero__background video {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.Hero--hidden .Hero__background:after {
  display: none;
}

@media (min-width: 64em) {
  .Hero__background:after {
    background: linear-gradient(90deg, #000c 0%, #0006 100%);
  }
}

.Hero__control {
  bottom: var(--gap);
  right: var(--wrap);
  border: 1px solid var(--white);
  transition: transform var(--transition);
  background: var(--black);
  z-index: 1;
  place-items: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: grid;
  position: absolute;
}

.Hero__control:before {
  content: "";
  background: var(--white);
  width: 50%;
  height: 50%;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/pause.svg") center / contain no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/pause.svg") center / contain no-repeat;
}

.Hero__control:hover {
  transform: scale(1.1);
}

.Hero__control--paused:before {
  -webkit-mask-image: url("/themes/custom/cmu_base/dist/assets/play.svg");
  mask-image: url("/themes/custom/cmu_base/dist/assets/play.svg");
}

.Hero__posts {
  background-color: var(--black-80);
  padding: 1.5rem var(--wrap);
  gap: var(--gap-sm);
  margin: 0;
  list-style-type: none;
  display: grid;
}

.Hero__posts li {
  align-items: center;
  gap: 1.5rem;
  display: flex;
  position: relative;
}

.Hero__posts li:before {
  content: " ";
  background-color: var(--carnegie-red);
  width: 3px;
  height: 20px;
  position: relative;
}

.Hero__posts li a {
  font-weight: 700;
}

@media (min-width: 64em) {
  .Hero__posts {
    grid-template-columns: 1fr 1fr 1fr;
    width: 60%;
    padding: 1.5rem;
    position: absolute;
    bottom: 0;
    right: 0;
  }
}

.Hero--program, .Hero--form {
  min-height: unset;
}

@media (max-width: calc(80em - .001px)) {
  :is(.Hero--program, .Hero--form) .Common {
    margin-block: var(--gap);
  }
}

:is(.Hero--program:not(.theme-dark), .Hero--form) .Hero__background:after {
  display: none;
}

@media (max-width: calc(48em - .001px)) {
  .Hero--program.theme-dark .columns > div:last-child {
    margin-inline: calc(-1 * var(--wrap));
    padding-inline: var(--wrap);
    padding-block: var(--gap-sm);
    margin-bottom: calc(-1 * var(--gap-sm));
    background: #000;
  }
}

.Hero__program-list > * {
  margin-top: 0;
}

.Hero__program-list .h5 {
  border-top: 3px solid var(--carnegie-red);
  padding-top: .5rem;
}

.Hero__program-list ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.Common :is(.Hero__program-list ul li a) {
  color: var(--color);
  -webkit-text-decoration-color: var(--color);
  text-decoration-color: var(--color);
}

@keyframes scaleUp {
  0% {
    transform: scale(.25);
  }

  100% {
    transform: scale(1);
  }
}

.Image {
  margin: 0;
}

.Image:where(.Common) .Image {
  margin-block: var(--gap);
}

.Image img {
  border-radius: var(--radius);
}

.Image figcaption {
  font: var(--text-small);
  background: var(--white);
  padding-block-start: 1rem;
  padding-block-end: 0;
  position: relative;
}

.Section--black :is(.Image figcaption) {
  background: var(--black);
}

.Section--gray :is(.Image figcaption) {
  background: var(--gray-light);
}

.Section--bg-split :is(.Image figcaption) {
  background: var(--white);
}

.Image:has(a[rel="modal"]) {
  position: relative;
}

.Image:has(a[rel="modal"]):before {
  content: " ";
  background-color: var(--black-20);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.Image:has(a[rel="modal"]) img {
  position: relative;
}

.Image a {
  z-index: 1;
  outline-color: var(--carnegie-red);
}

.paragraph--type--video-embed .Image a {
  border-radius: var(--radius);
  display: block;
  position: relative;
}

.paragraph--type--video-embed .Image a:before {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.paragraph--type--video-embed .Image a:after {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.paragraph--type--video-embed .Image a:before {
  background: var(--carnegie-red);
  border-radius: 50%;
}

.paragraph--type--video-embed .Image a:after {
  background: var(--white);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.paragraph--type--video-embed .Image a:hover:before {
  transform: scale(1.1);
}

.paragraph--type--video-embed .Image a:hover:after {
  transform: scale(1.1);
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]) {
  border-radius: var(--radius);
  display: block;
  position: relative;
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):before {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):after {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):before {
  background: var(--carnegie-red);
  border-radius: 50%;
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):after {
  background: var(--white);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):hover:before {
  transform: scale(1.1);
}

.Image a:-webkit-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):hover:after {
  transform: scale(1.1);
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]) {
  border-radius: var(--radius);
  display: block;
  position: relative;
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):before {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):after {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):before {
  background: var(--carnegie-red);
  border-radius: 50%;
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):after {
  background: var(--white);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):hover:before {
  transform: scale(1.1);
}

.Image a:-moz-any([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):hover:after {
  transform: scale(1.1);
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]) {
  border-radius: var(--radius);
  display: block;
  position: relative;
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):before {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):after {
  content: "";
  transition: transform var(--transition);
  z-index: 1;
  width: 5rem;
  height: 5rem;
  position: absolute;
  top: calc(50% - 2.5rem);
  left: calc(50% - 2.5rem);
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):before {
  background: var(--carnegie-red);
  border-radius: 50%;
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):after {
  background: var(--white);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):hover:before {
  transform: scale(1.1);
}

.Image a:is([href*="//www.youtube.com"], [href*="//youtu.be"], [href*="//vimeo.com"], [href*="kaltura"]):hover:after {
  transform: scale(1.1);
}

.ImageCarousel {
  margin-inline: calc(-1 * var(--wrap));
}

@media (min-width: 64em) {
  .ImageCarousel {
    padding-inline: var(--space-sm);
    margin-inline-start: 0;
    margin-inline-end: 0;
  }
}

.ImageCarousel__slide {
  margin-right: calc(var(--gap-sm) / 2);
  width: 100%;
  height: auto;
}

@media (min-width: 64em) {
  .ImageCarousel__slide:not(.is-selected) figcaption {
    visibility: hidden;
    transform: translateY(100%);
  }
}

.ImageCarousel__slide figcaption {
  padding: var(--gap-sm);
  background-color: var(--gray-light);
  color: var(--black);
  font: var(--body);
  visibility: visible;
  transition: all .6s .3s;
  transform: translateY(0);
}

@media (min-width: 64em) {
  .ImageCarousel__slide {
    width: calc(90% - calc(var(--gap-sm) / 2));
  }

  .ImageCarousel__slide:after {
    content: attr(data-index);
    top: var(--gap-sm);
    left: var(--gap-sm);
    background: var(--carnegie-red);
    border: 1px solid var(--carnegie-red);
    color: var(--white);
    font: var(--h5);
    transition: var(--transition);
    padding: .5rem 1rem;
    position: absolute;
  }

  .ImageCarousel__slide:has( + .is-selected):after {
    left: unset;
    right: var(--gap-sm);
  }

  .ImageCarousel__slide:not(.is-selected):after {
    border-color: var(--white);
    background: none;
  }

  .ImageCarousel__slide .ImageCarousel__content {
    transform-origin: 0 0;
    transition: var(--transition);
    transform: scale(.6);
  }

  .ImageCarousel__slide .Image:before {
    content: " ";
    background: linear-gradient(335deg, #0000 45.79%, #0000004d 80.81%), linear-gradient(0deg, #0000 0% 100%);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }

  .ImageCarousel__slide .Image figcaption {
    max-width: 538px;
    position: absolute;
    bottom: 0;
    left: 0;
  }
}

.ImageCarousel__slider {
  flex: 1;
  width: 100%;
  position: relative;
}

.ImageCarousel__slider .slider {
  margin-bottom: var(--gap-sm);
  flex-direction: column-reverse;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
}

.ImageCarousel__slider .flickity-viewport {
  width: 100%;
  overflow: hidden;
}

.ImageCarousel__slider .flickity-button {
  top: calc(var(--nav) / 2);
  outline-color: var(--white);
  outline-offset: -.2rem;
  outline-width: 2px;
  left: 100%;
}

.ImageCarousel__slider .flickity-button.previous {
  left: 0;
}

@media (min-width: 64em) {
  .ImageCarousel__slider .flickity-button.previous {
    left: -3.25rem;
    right: 100%;
  }
}

.ImageCarousel__slider .flickity-button.next {
  left: unset;
  right: 0;
}

@media (min-width: 64em) {
  .ImageCarousel__slider .flickity-button.next {
    right: -3.25rem;
  }
}

@media (min-width: 64em) {
  .ImageCarousel__slider .flickity-button {
    outline-color: var(--black);
    outline-offset: .05rem;
    outline-width: .25rem;
  }
}

@media (min-width: 64em) {
  .ImageCarousel__slider .flickity-button {
    left: unset;
  }

  .ImageCarousel__slider .flickity-status {
    left: 1.5rem;
  }
}

.Panel {
  margin-block: var(--space);
  background: var(--background);
  color: var(--text);
  width: 100%;
}

.Panel--inset {
  padding: 0;
}

.Panel__grid {
  gap: 2rem;
  display: grid;
}

@media (min-width: 48em) {
  .Panel__grid--2 {
    grid-template-columns: repeat(2, minmax(0, 542px));
    justify-content: space-between;
    gap: 4rem;
  }
}

@media (min-width: 48em) {
  .Panel__grid--3 {
    grid-template-columns: repeat(2, minmax(0, 542px));
    justify-content: space-between;
    gap: 4rem;
  }
}

@media (min-width: 64em) {
  .Panel__grid--3 {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (min-width: 48em) {
  .Panel__item {
    max-width: 542px;
  }
}

@media (min-width: 64em) {
  .Panel__header p {
    max-width: 50%;
  }
}

.Panel__heading {
  font: var(--h4);
}

.Pagination {
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  display: flex;
}

.Pagination a {
  border: .0625rem solid var(--black);
  background: var(--white);
  color: var(--black);
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
}

.Pagination a:hover {
  background: var(--black);
  color: var(--white);
}

.Pagination a[aria-current] {
  background: var(--black);
  color: var(--white);
}

.Pagination span {
  border: .0625rem solid var(--black);
  background: var(--white);
  color: var(--black);
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
}

.Pagination span:hover {
  background: var(--black);
  color: var(--white);
}

.Pagination span[aria-current] {
  background: var(--black);
  color: var(--white);
}

.Posts {
  gap: var(--gap);
  display: grid;
}

@media (min-width: 64em) {
  .Posts {
    gap: var(--gap-sm) calc(var(--gutter) * 2);
    grid-template-columns: 1fr 1fr;
    overflow: visible;
  }

  .ContentSidebar__content .Posts {
    grid-template-columns: 100%;
  }
}

.Posts__item {
  grid-template-columns: 100%;
  gap: 1rem;
  margin-bottom: 2em;
  display: grid;
  position: relative;
}

.Posts__item:has(.Image) {
  grid-template-columns: 1fr;
}

@media (min-width: 48em) {
  .Posts__item:has(.Image) {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 64em) {
  .Posts__item:has(.Image) {
    gap: 1.5rem;
    margin-bottom: 0;
  }
}

.Posts__item:has(.Image) .Image img {
  object-fit: cover;
  aspect-ratio: 3 / 2;
  width: 100%;
  height: 100%;
}

.Posts__item:has(.link-cover:hover) .Image img {
  transform: scale(1.1);
}

.Posts__item .Image {
  margin: 0;
  overflow: hidden;
}

.Posts__item .Image img {
  transition: transform 3s;
}

.Posts__item:has(.meta) .meta {
  margin-bottom: .25rem;
}

.Posts__item:has(.meta) .meta--alt {
  margin-bottom: 1rem;
}

.Posts__item:has(.meta) .Posts__title {
  margin-top: 0;
}

@media (min-width: 64em) {
  .Posts__item:has(.Image) {
    grid-template-columns: 1fr 2fr;
  }
}

.Posts__title {
  font: var(--h5);
  margin-top: 1rem;
  font-size: 1.125rem;
}

.Posts__title a {
  color: inherit;
  font-weight: 400;
}

.PreFooter {
  gap: var(--gutter);
  background-color: var(--black);
  padding: var(--gap) var(--wrap);
  display: grid;
}

@media (min-width: 64em) {
  .PreFooter {
    padding-inline: var(--gap);
    grid-template-columns: 1fr 2fr;
    margin-inline-start: 3rem;
    margin-inline-end: 3rem;
  }

  .PreFooter .Common {
    max-width: 350px;
  }
}

.ResearchGrid {
  margin: 0 auto;
}

.ResearchPanel {
  grid-template-columns: 100%;
  align-items: center;
  max-width: 1600px;
  display: grid;
  position: relative;
}

@media (min-width: 64em) {
  .ResearchPanel {
    grid-template-columns: 1fr 1fr;
  }
}

.ResearchPanel__content {
  padding: var(--gap);
  grid-template-columns: 100%;
  align-items: center;
  display: grid;
}

@media (min-width: 64em) {
  .ResearchPanel--flip .ResearchPanel__content {
    order: 1;
  }
}

.ResearchPanel__fact {
  position: relative;
}

@media (min-width: 64em) {
  .ResearchPanel__fact {
    height: 100%;
  }

  .ResearchPanel__fact .Image {
    height: 100%;
  }

  .ResearchPanel__fact .Image img {
    object-fit: cover;
    aspect-ratio: 3 / 2;
    height: 100%;
  }
}

.ResearchPanel__stat {
  background-color: var(--gray-light);
  color: var(--black);
  padding: var(--gap);
}

.ResearchPanel__stat * {
  margin: 0;
}

.ResearchPanel__stat a {
  transition: box-shadow var(--transition), text-shadow var(--transition);
  box-shadow: 0 .0625rem;
}

.ResearchPanel__stat a:hover {
  text-shadow: .5px 0;
  box-shadow: 0 .125rem;
}

.ResearchPanel__stat .text-stat {
  margin-bottom: 1rem;
}

@media (min-width: 64em) {
  .ResearchPanel__stat {
    max-width: 430px;
    position: absolute;
    bottom: 0;
    left: 0;
  }
}

.RFIPanel {
  gap: var(--gap-sm);
  display: grid;
}

@media (min-width: 64em) {
  .RFIPanel {
    grid-template-columns: 1fr 1fr;
  }

  .RFIPanel.RFIPanel--alt {
    grid-template-columns: 100%;
  }
}

@media (min-width: 64em) {
  .RFIPanel__content {
    place-content: center;
    display: grid;
  }

  .RFIPanel--alt .RFIPanel__content {
    align-items: center;
    gap: var(--gap-sm);
    grid-template-columns: 1fr 1fr;
  }
}

.Router {
  --accent: var(--black);
  font: var(--h5);
  grid-template-columns: 100%;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.Router a {
  color: inherit;
  border-bottom: .0625rem solid var(--black-20);
  transition: background var(--transition), color var(--transition);
  background: linear-gradient(var(--accent), var(--accent)) 0 100% / 0 .0625rem no-repeat;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1.5rem;
  font-weight: 700;
  text-decoration: none;
  display: flex;
  position: relative;
}

.Router a:after {
  content: "";
  background-color: var(--black);
  transition: transform var(--transition);
  width: 37px;
  height: 37px;
  display: block;
  transform: rotate(-45deg);
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
}

.RouterPanel--alt :is(.Router a) {
  --accent: var(--white);
  border-color: var(--white-20);
}

.RouterPanel--alt :is(.Router a):after {
  background-color: var(--white);
}

.Router a:hover {
  background-size: 100% .0625rem;
  text-decoration: none;
}

.Router a:hover:after {
  transform: rotate(-45deg)translate(15%, 5%);
}

.PreFooter .Router {
  --accent: var(--black);
  gap: var(--gap-sm);
  font: var(--h5);
  grid-template-columns: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.PreFooter .Router a {
  color: inherit;
  transition: background-position var(--transition);
  background: linear-gradient(-90deg, #0000 50%, currentColor 50%) 100% calc(100% + 1px) / 200% .0625rem no-repeat;
  border-bottom: 1px solid #6d6e7166;
  width: 100%;
  padding-block-start: .875rem;
  padding-block-end: .875rem;
  font-size: .875rem;
  font-weight: 400;
  text-decoration: none;
  display: block;
  position: relative;
}

.PreFooter .Router a:after {
  display: none;
}

.PreFooter .Router a:hover {
  background-position-x: 0;
}

@media (min-width: 64em) {
  .PreFooter .Router {
    gap: 0 var(--gap-sm);
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (min-width: 64em) {
  .RouterList .Router {
    column-gap: var(--gutter);
    grid-template-columns: 1fr 1fr;
  }
}

.RouterPanel {
  background: var(--white);
  color: var(--black);
  --color: var(--black);
  grid-template-columns: 100%;
  align-items: center;
  display: grid;
}

@media (min-width: 64em) {
  .RouterPanel {
    grid-template-columns: 1fr 1fr;
  }

  .RouterPanel .Image {
    height: 100%;
  }

  .RouterPanel .Image img {
    object-fit: cover;
    height: 100%;
  }
}

.ContentSidebar .RouterPanel {
  grid-template-columns: 100%;
}

@media (min-width: 75em) {
  .ContentSidebar .RouterPanel {
    grid-template-columns: 1fr 1fr;
  }
}

.RouterPanel__group {
  gap: var(--gap);
  padding: var(--gap);
  grid-template-columns: 100%;
  display: grid;
}

@media (min-width: 64em) {
  .RouterPanel__group {
    order: -1;
  }

  .RouterPanel--flip .RouterPanel__group {
    order: 0;
  }
}

.RouterPanel--alt {
  background: var(--black);
  color: var(--white);
  --color: var(--white);
}

.Section {
  gap: var(--gap);
  padding-block: var(--panel);
  padding-inline: var(--wrap);
  grid-template-columns: 100%;
  display: grid;
}

.ContentSidebar .Section {
  margin-block: var(--panel);
  padding: 0;
}

@media (min-width: 64em) {
  .Section:has(.Section__filters) {
    grid-template-columns: 1fr;
  }

  .Section:has(.Section__filters) .Section__header {
    display: block;
  }

  .Section:has(.Section__filters) .Section__filters {
    justify-self: center;
  }

  .Section:has(.Section__filters) .Section__filters .Buttons {
    justify-content: center;
  }

  .Section:has(.Section__filters) .Section__footer {
    justify-self: center;
  }

  .Section:has(.Section__filters) .Section__footer .Buttons {
    justify-content: center;
  }
}

@media (min-width: 64em) {
  .Section:has(.Section__footer) {
    grid-template-columns: 1fr;
  }

  .Section:has(.Section__footer) .Section__header {
    display: block;
  }

  .Section:has(.Section__footer) .Section__filters {
    justify-self: center;
  }

  .Section:has(.Section__footer) .Section__filters .Buttons {
    justify-content: center;
  }

  .Section:has(.Section__footer) .Section__footer {
    justify-self: center;
  }

  .Section:has(.Section__footer) .Section__footer .Buttons {
    justify-content: center;
  }
}

.Section:not(.Section--black):not(.Section--gray):not(.Section--bg-split) + .Section:not(.Section--black):not(.Section--gray):not(.Section--bg-split) {
  padding-block-start: 0;
}

.Section--full {
  padding-inline-start: 0;
  padding-inline-end: 0;
}

.Section--centered-left {
  padding-inline: var(--wrap-sm);
}

.Section--left {
  padding-inline: var(--wrap) max(var(--wrap), 100% - (var(--wrap)  + 47.75rem));
}

.Section--black, .Section--bg-image {
  --accent: var(--white);
  --background: var(--black);
  --color: var(--white);
  background: var(--black);
  color: var(--white);
}

:is(.Section--black, .Section--bg-image) + .Section--black {
  position: relative;
}

:is(.Section--black, .Section--bg-image) + .Section--black:before {
  content: " ";
  top: 0;
  left: var(--wrap);
  right: var(--wrap);
  background-color: var(--carnegie-red);
  z-index: 1;
  height: 1px;
  margin: 0;
  position: absolute;
}

.Section--gray {
  --background: var(--gray-light);
  background: var(--gray-light);
}

.Section--gray:not(.Section--bg-split-alt) + .Section--gray:not(.Section--bg-split-alt) {
  padding-top: 0;
}

.Section--bg-split {
  --color: var(--black);
  color: var(--black);
  overflow: hidden;
}

.Section--bg-split.Section--black {
  background: unset;
}

.Section--bg-split.Section--black .Section__header {
  background: var(--black);
  --color: var(--white);
  color: var(--white);
  margin-top: calc(-1 * var(--panel));
  padding-block: var(--panel) calc((var(--panel) * 5) / 2);
  position: relative;
}

.Section--bg-split.Section--black .Section__header:before {
  content: "";
  background-color: var(--black);
  z-index: -1;
  width: 100vw;
  height: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.Section--bg-split.Section--black .Section__main {
  margin-top: calc(-1 * ((var(--panel) * 5) / 2));
}

.Section--bg-split + .Section:not(.Section--black):not(.Section--gray):not(.Section--bg-split) {
  margin-top: 0;
}

.Section--bg-split + .FeaturePanel {
  margin-top: 0;
}

@media (min-width: 64em) {
  .Section--bg-split-alt {
    --color: var(--black);
    background: unset;
    color: var(--black);
    position: relative;
  }

  .Section--bg-split-alt:before {
    content: "";
    background-color: var(--background);
    width: calc(var(--wrap)  + 40rem);
    z-index: -1;
    height: 100%;
    position: absolute;
    right: 0;
  }

  .Section--bg-split-alt:has(.FeaturedPosts--flip):before {
    left: 0;
    right: unset;
  }

  .Section--bg-split-alt.Section--black .Section__header {
    background: var(--black);
    color: var(--white);
  }
}

@media (min-width: 78em) {
  .Section--bg-split-alt:before {
    width: calc(var(--wrap)  + 52rem);
  }
}

.Section--bg-image {
  position: relative;
}

.Section--bg-image > * {
  z-index: 1;
}

.Section__header {
  display: grid;
}

.Section--centered .Section__header {
  text-align: center;
  place-content: center;
  place-items: center;
}

@media (min-width: 64em) {
  .Section__header {
    gap: var(--gap-sm);
    display: grid;
  }

  .Section__header * {
    margin: 0;
  }

  .Section__header p {
    max-width: 80ch;
  }

  .Section__header p:not(:last-child) {
    margin-bottom: 1em;
  }

  .Section__header .Buttons:nth-child(2) {
    justify-content: end;
  }
}

.Section__header .Common:has( + .Buttons) {
  grid-row: span 2;
  grid-template-columns: 2fr 3fr;
}

.Section__main {
  gap: var(--gap-sm);
  grid-template-columns: 100%;
  display: grid;
}

.Section__main .Section--bg-image {
  z-index: 0;
}

.Section__pagination {
  order: 1;
}

@media (min-width: 64em) {
  .Section__pagination {
    grid-column: span 2;
  }
}

.Section__background {
  z-index: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.Section__background:before {
  content: " ";
  background-color: var(--black-75);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.Section__background img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

@media (min-width: 80em) {
  .Section--no-hero {
    padding-block-start: 12rem;
  }
}

.Search__form-wrapper {
  margin-bottom: var(--gap-sm);
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  display: flex;
}

.Section--centered .Search__form-wrapper {
  width: 100%;
  max-width: 700px;
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.Search__heading {
  font: var(--h2);
  text-align: left;
  width: 100%;
  margin: 0;
}

.Search__subheading {
  text-align: left;
  width: 100%;
  margin: 0;
}

.Search__form {
  flex: 1;
  width: 100%;
  max-width: 700px;
  position: relative;
}

.Search__form p {
  margin: 0;
}

.Search__input {
  border: .0625rem solid var(--black);
  color: var(--black);
  background: none;
  width: 100%;
  height: 2.5rem;
  padding-inline-start: 1.5rem;
  padding-inline-end: 4rem;
  font-weight: 600;
  display: block;
  position: relative;
}

.Search__input::placeholder {
  color: var(--gray-medium);
  font-weight: 600;
}

.Search__submit {
  background: var(--carnegie-red);
  border: 0;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
}

.Search__submit:before {
  content: "";
  background: var(--white);
  width: 2.5rem;
  height: 2.5rem;
  display: block;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/search.svg") center / 1.5rem no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/search.svg") center / 1.5rem no-repeat;
}

.StatPanel {
  --grid-min: 100%;
  gap: var(--gap);
  grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
  display: grid;
}

@media (min-width: 48em) {
  .StatPanel {
    --grid-min: 18rem;
  }
}

.StatPanel__item {
  --background: var(--white);
  --color: var(--black);
  background-color: var(--white);
  border-top: 8px var(--carnegie-red) solid;
  color: var(--black);
  gap: var(--gap-sm);
  padding: var(--gap);
  grid-template-columns: 100%;
  display: grid;
}

.Subnav {
  border-top: .625rem solid var(--carnegie-red);
}

.Subnav__heading {
  padding-inline: var(--wrap);
  margin: 1rem 0;
}

@media (min-width: 64em) {
  .Subnav__heading {
    padding-inline-start: 1rem;
    padding-inline-end: 1rem;
  }
}

.Subnav__heading {
  font: var(--h4);
}

@media (max-width: calc(64em - .001px)) {
  .Subnav__heading {
    flex-flow: row-reverse wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0 1rem;
    display: flex;
  }

  .Subnav__heading ~ .Subnav__menu {
    interpolate-size: allow-keywords;
    transition: height var(--transition), margin-bottom var(--transition), visibility var(--transition);
    height: auto;
    overflow: clip;
  }

  .Subnav__heading:has([aria-expanded="false"]) ~ .Subnav__menu {
    visibility: hidden;
    height: 0;
    margin-bottom: 0;
  }

  .Subnav__heading:has([aria-expanded="false"]) ~ .Subnav__menu .Subnav__nested {
    visibility: hidden;
  }
}

@media (min-width: 64em) {
  .Subnav__heading .Subnav__subtoggle {
    display: none;
  }
}

.Subnav__menu {
  margin-inline: var(--wrap);
  margin-bottom: 1rem;
}

.Subnav__menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.Subnav__menu li {
  padding: .875rem 0;
  border-bottom: .0625rem solid var(--black-20);
  font: var(--link);
  padding-left: calc(44px + 1rem);
}

.Subnav__menu li:has( > .Subnav__subtoggle) {
  padding-block-start: 0;
  padding-block-end: 0;
  padding-left: unset;
  flex-flow: row-reverse wrap;
  justify-content: flex-end;
  gap: 0 1rem;
  display: flex;
}

.Subnav__menu li:has( > .Subnav__subtoggle) > span {
  max-width: calc(100% - 44px - 1rem);
  margin-bottom: .75rem;
  padding-block-start: calc(.5rem + .0625em);
  padding-block-end: 0;
}

.Subnav__menu li:first-of-type {
  border-top: .0625rem solid var(--black-20);
}

.Subnav__menu a {
  color: inherit;
  font-weight: 600;
}

.Subnav__menu a[aria-current] {
  font-weight: bold;
  line-height: 1.5;
}

.Subnav__menu ul ul {
  padding-left: calc(44px + 1rem);
}

.Subnav__menu li li {
  font: var(--body);
  border: 0;
  margin-bottom: 1rem;
  padding: 0;
}

.Subnav__menu li li a {
  font-weight: normal;
}

.Subnav__menu li li a[aria-current] {
  font-weight: 600;
}

.Subnav__menu li li:first-of-type {
  border-top: unset;
}

@media (max-width: calc(64em - .001px)) {
  [aria-expanded="true"] + .Subnav__menu {
    visibility: visible;
    grid-template-rows: minmax(0, 1fr);
  }
}

@media (min-width: 64em) {
  .Subnav__menu {
    margin: 0;
  }
}

.Subnav__subtoggle {
  background: none;
  border: 0;
  place-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: grid;
}

.Subnav__subtoggle:before {
  content: "";
  transition: transform var(--transition);
  background: var(--black);
  width: .8125rem;
  height: .5625rem;
  transform: rotate(0);
  -webkit-mask: url("../assets/caret-down.svg") center / contain no-repeat;
  mask: url("../assets/caret-down.svg") center / contain no-repeat;
}

.Subnav__subtoggle:hover:before {
  transform: scale(1.2)rotate(0);
}

.Subnav__subtoggle:focus {
  outline-offset: -.35rem;
}

.Subnav__subtoggle[aria-expanded="true"]:before {
  transform: rotate(180deg);
}

.Subnav__subtoggle[aria-expanded="true"]:hover:before {
  transform: rotate(180deg)scale(1.2);
}

.Subnav__nested {
  transition: grid-template-rows var(--transition), visibility var(--transition);
  overflow-clip-margin: .5rem;
  visibility: hidden;
  grid-template-rows: minmax(0, 0fr);
  grid-template-columns: 100%;
  width: 100%;
  display: grid;
  overflow: clip;
}

[aria-expanded="true"] + .Subnav__nested {
  visibility: visible;
  grid-template-rows: minmax(0, 1fr);
}

.Subnav__nested a:has(.link) .link {
  font-weight: 400;
}

@media (max-width: calc(64em - .001px)) {
  .Section--table {
    background-color: var(--gray-light);
  }

  .ContentSidebar .Section--table {
    margin-inline: calc(-1 * var(--wrap));
    padding-inline: var(--wrap);
  }
}

@media (min-width: 64em) {
  .Table__stack {
    background-attachment: local, local, scroll, scroll;
    background-image: linear-gradient(to right, var(--white), var(--white)), linear-gradient(to left, var(--white), var(--white)), linear-gradient(to right, var(--black-10), transparent), linear-gradient(to left, var(--black-10), transparent);
    background-position: 0, 100%, 0, 100%;
    background-size: 1rem 100%;
    border: 0;
    overflow: auto;
  }
}

.Table__stack table {
  width: 100%;
  margin-block-start: 1rem;
  margin-block-end: 1rem;
}

@media (max-width: calc(48em - .001px)) {
  .Table__stack table {
    min-width: auto !important;
  }
}

@media (max-width: calc(64em - .001px)) {
  .Table__stack table.Table__stack--desktop {
    display: none;
  }
}

@media (min-width: calc(64em + .001px)) {
  .Table__stack table {
    table-layout: auto !important;
  }

  .Table__stack table.Table__stack--mobile {
    display: none;
  }

  .Table__stack table.Table__stack--desktop {
    display: table;
  }
}

.Table__stack thead {
  border-bottom: 1px solid var(--black);
  display: none;
}

@media (min-width: 64em) {
  .Table__stack thead {
    display: table-header-group;
  }

  .Table__stack thead th {
    vertical-align: bottom;
  }
}

.Table__stack th {
  text-align: right;
  color: var(--black);
  padding: .5rem 0;
  font-size: 1rem;
  font-style: normal;
  line-height: 1.5;
  display: block;
}

.Table__stack th a {
  color: var(--carnegie-red);
  transition: box-shadow var(--transition), text-shadow var(--transition);
  font-weight: 600;
  box-shadow: 0 .0625rem;
}

.Table__stack th a:hover {
  text-shadow: .5px 0;
  box-shadow: 0 .125rem;
}

@media (min-width: 64em) {
  .Table__stack th {
    font-style: normal;
    font-weight: 400;
    display: table-cell;
    padding: 1.25rem !important;
  }
}

.Table__stack th:before {
  content: attr(data-label);
  padding-block-end: .125rem;
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
  display: block;
}

@media (min-width: 64em) {
  .Table__stack th:before {
    display: none;
  }
}

.Table__stack td {
  text-align: right;
  color: var(--black);
  padding: .5rem 0;
  font-size: 1rem;
  font-style: normal;
  line-height: 1.5;
  display: block;
}

.Table__stack td a {
  color: var(--carnegie-red);
  transition: box-shadow var(--transition), text-shadow var(--transition);
  font-weight: 600;
  box-shadow: 0 .0625rem;
}

.Table__stack td a:hover {
  text-shadow: .5px 0;
  box-shadow: 0 .125rem;
}

@media (min-width: 64em) {
  .Table__stack td {
    font-style: normal;
    font-weight: 400;
    display: table-cell;
    padding: 1.25rem !important;
  }
}

.Table__stack td:before {
  content: attr(data-label);
  padding-block-end: .125rem;
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
  display: block;
}

@media (min-width: 64em) {
  .Table__stack td:before {
    display: none;
  }
}

.Table__stack th {
  font: var(--h5);
  font-size: 1.125rem;
}

@media (max-width: calc(64em - .001px)) {
  .Table__stack th {
    border-bottom: 1px solid var(--black) !important;
    text-align: left !important;
    padding: .5rem .75rem !important;
  }
}

@media (min-width: calc(64em + .001px)) {
  .Table__stack th {
    border-bottom: unset !important;
  }
}

.Table__stack td {
  border-bottom: unset !important;
}

@media (max-width: calc(64em - .001px)) {
  .Table__stack td {
    text-align: left !important;
    padding: .5rem .75rem 0 !important;
  }

  .Table__stack td:not(:last-child) {
    margin-block-start: .5rem;
    margin-block-end: .5rem;
  }
}

@media (max-width: calc(64em - .001px)) {
  .Table__stack tr {
    background-color: var(--white);
    margin-block-start: .5rem;
    margin-block-end: .5rem;
    padding: .5rem 1rem 1rem;
    display: block;
  }
}

@media (min-width: calc(64em + .001px)) {
  .Table__stack tr:nth-child(2n) {
    background: var(--gray-light);
  }
}

.Testimonial {
  background-color: var(--gray-light);
  margin-top: 7rem;
}

:where(.Common) .Testimonial {
  margin-block: var(--gap-sm);
  padding: 4rem;
}

:where(.ContentSidebar__content) .Testimonial {
  margin-block: var(--gap-sm);
  padding: 4rem;
}

@media (min-width: 48em) {
  .Testimonial {
    align-items: flex-start;
    display: grid;
  }

  .Testimonial .Testimonial__content {
    max-width: 700px;
  }

  .Testimonial:has(.Image) {
    grid-template-columns: 1fr 20rem;
  }
}

@media (min-width: 64em) {
  .Testimonial:has(.Image) {
    grid-template-columns: 1fr 26rem;
  }
}

@media (min-width: 80em) {
  .Testimonial {
    gap: 2rem;
    padding-block-start: 4rem;
    padding-block-end: 4rem;
  }
}

.Testimonial .Image {
  margin: 0 0 var(--gap-sm);
}

@media (max-width: calc(48em - .001px)) {
  .Testimonial .Image {
    max-width: 12.5rem;
  }
}

@media (min-width: 48em) {
  .Testimonial .Image {
    order: 2;
    max-width: none;
    margin: 0;
    padding-left: 2rem;
  }
}

.Testimonial__content h2 {
  margin-bottom: var(--gap-sm);
}

.Testimonial__text {
  font: var(--body);
  border: 0;
  margin: 0;
  padding: 0;
}

.Testimonial__text p {
  padding: 0 0 0 var(--gap-sm);
  font: var(--text-quote);
  border-left: 1px solid var(--black-20);
  margin-block-start: 1em;
  margin-block-end: 1em;
  position: relative;
}

.theme-dark :is(.Testimonial__text p) {
  border-left: 1px solid var(--white-20);
}

.Testimonial__text cite {
  font: var(--h6);
  margin-top: 2rem;
  padding-top: 1rem;
  display: block;
}

.Testimonial__text cite strong {
  color: var(--accent);
  font: var(--h5);
}

.Testimonial__text .Buttons {
  margin-block: var(--gap-sm) 0;
}

@media (min-width: 48em) {
  .Testimonial__text:before {
    content: "";
    margin-bottom: var(--gap-sm);
    background-image: url("../assets/quote.svg");
    background-repeat: no-repeat;
    width: 72px;
    height: 72px;
    display: block;
    position: relative;
  }
}

.Testimonial--alt {
  gap: 0;
  margin: 0;
  padding: 0;
}

.Testimonial--alt .Image {
  margin: 0;
  padding: 0;
}

@media (max-width: calc(48em - .001px)) {
  .Testimonial--alt .Image {
    max-width: 12.5rem;
    margin-inline-start: auto;
    margin-inline-end: auto;
  }
}

@media (min-width: 48em) {
  .Testimonial--alt .Image {
    order: unset;
    max-width: 340px;
    height: 100%;
  }

  .Testimonial--alt .Image img {
    object-fit: cover;
    height: 100%;
  }
}

.Testimonial--alt .Testimonial__content {
  padding: var(--gap);
}

.Testimonial--alt .Testimonial__text {
  gap: var(--gap-sm);
  padding: 0;
  display: flex;
}

.Testimonial--alt .Testimonial__text:before {
  margin-bottom: unset;
  width: 44px;
  height: 44px;
}

.Testimonial--alt .Testimonial__text > div {
  flex: 1;
}

.Testimonial--alt .Testimonial__text p {
  border: none;
  margin: 0;
  padding: 0;
  font-size: 1.375rem;
  font-weight: 400;
}

@media (min-width: 48em) {
  .Testimonial--alt .Testimonial__text {
    padding-inline-start: 0;
    padding-inline-end: 0;
  }

  .Testimonial--alt .Testimonial__text:before {
    position: unset;
    left: unset;
    margin-block-start: 0;
    margin-block-end: 1.5rem;
  }
}

@media (min-width: 64em) {
  .Testimonial--alt .Testimonial__text {
    gap: var(--gap-sm);
    padding: 0 0 0 calc(var(--gap-sm)  + 44px);
    display: flex;
  }

  .Testimonial--alt .Testimonial__text:before {
    margin-block-start: .5rem;
    margin-block-end: 0;
    position: absolute;
    left: 0;
  }
}

@media (min-width: 48em) {
  .Testimonial--alt:has(.Image) {
    grid-template-columns: 340px 1fr;
  }
}

.TestimonialStats {
  gap: var(--gap);
  grid-template-columns: 100%;
  display: grid;
}

.Section--gray .TestimonialStats {
  gap: unset;
}

.Seciton--black .TestimonialStats {
  gap: unset;
}

.TestimonialStats .Image {
  margin: 0;
  padding: 0;
}

@media (max-width: calc(48em - .001px)) {
  .TestimonialStats .Image {
    max-width: 12.5rem;
    margin-inline-start: auto;
    margin-inline-end: auto;
  }
}

@media (min-width: 48em) {
  .TestimonialStats .Image {
    order: unset;
    max-width: 340px;
    height: 100%;
  }

  .TestimonialStats .Image img {
    object-fit: cover;
    height: 100%;
  }
}

.TestimonialStats blockquote {
  margin-top: var(--gap-sm);
  padding-inline-start: 0;
  padding-inline-end: 0;
}

@media (min-width: 48em) {
  .TestimonialStats blockquote {
    padding: 0 0 0 calc(var(--gap-sm)  + 44px);
  }

  .TestimonialStats blockquote:before {
    margin-block-start: .5rem;
    margin-block-end: 0;
    position: absolute;
  }
}

.TestimonialStats .Posts__item {
  border-top: 1px solid var(--black-20);
  padding-top: calc(var(--gap) / 2);
}

.TestimonialStats .Posts__item:first-child {
  border: none;
  padding-top: 0;
}

@media (min-width: 80em) {
  .TestimonialStats {
    grid-template-columns: 6fr 2fr;
  }

  .TestimonialStats .text-stat {
    font-size: 53px;
  }
}

.TestimonialStats .h3 {
  align-items: center;
  gap: 1rem;
  margin: 0;
  display: flex;
}

.TestimonialStats__card {
  gap: var(--gap-sm);
  flex-direction: column;
  display: flex;
}

@media (min-width: 48em) {
  .TestimonialStats__card {
    background-color: var(--gray-light);
    flex-direction: row;
  }
}

@media (min-width: 64em) {
  .TestimonialStats__card-content {
    padding: var(--gap-sm);
    flex: 1;
  }
}

.TestimonialStats__list {
  align-self: center;
  gap: calc(var(--gap) / 2);
  grid-template-columns: 100%;
  display: grid;
}

.TestimonialStats__list .Buttons {
  margin: 0 0 0 auto;
}

.Section--gray .TestimonialStats__list {
  background-color: var(--white);
  padding: var(--gap);
}

.Seciton--black .TestimonialStats__list {
  background-color: var(--white);
  padding: var(--gap);
}

.TimelineCarousel {
  --background: var(--black);
  --accent: var(--white);
}

.TimelineCarousel [data-flexscroll] {
  gap: var(--gap) 0;
  grid-template-columns: 100%;
}

.TimelineCarousel [data-flexscroll] .flexscroll-area {
  order: 0;
  grid-area: 1 / 1;
  position: relative;
  overflow-x: scroll;
}

.TimelineCarousel [data-flexscroll] .flexscroll-area:after {
  z-index: 1;
}

@media (max-width: calc(64em - .001px)) {
  .TimelineCarousel [data-flexscroll] .flexscroll-area {
    padding-bottom: 1rem;
    overflow: scroll visible;
  }

  .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar {
    width: unset;
    height: .5rem;
  }

  .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar-track {
    background: var(--gray-dark);
  }

  .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar-thumb {
    background: var(--gray-light);
  }

  .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar-thumb:hover {
    background: var(--carnegie-red);
  }
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll] {
    gap: var(--gap);
    grid-template-columns: 16.75rem 1fr;
  }

  .TimelineCarousel [data-flexscroll] .flexscroll-area {
    height: 550px;
    overflow: visible scroll;
  }
}

.TimelineCarousel [data-flexscroll-viewport] {
  scroll-behavior: unset;
  grid-column: 1;
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-viewport] {
    grid-column: 2;
    overflow: hidden;
  }
}

.TimelineCarousel [data-flexscroll-item] {
  position: relative;
}

.TimelineCarousel [data-flexscroll-item] figcaption {
  padding: var(--gap-sm);
  background-color: var(--gray-dark);
  color: var(--white);
  font: var(--body);
  visibility: visible;
  transform: translateY(0);
}

.TimelineCarousel [data-flexscroll-item] figcaption a {
  color: var(--white);
}

@media not (prefers-reduced-motion: reduce) {
  .TimelineCarousel [data-flexscroll-item] figcaption {
    transition: all .3s .8s;
  }
}

.TimelineCarousel [data-flexscroll-item] .Image img {
  opacity: 1;
  visibility: visible;
}

@media not (prefers-reduced-motion: reduce) {
  .TimelineCarousel [data-flexscroll-item] .Image img {
    transition: opacity .2s, transform .9s;
    transform: scale(1);
  }
}

.TimelineCarousel [data-flexscroll-item][inert] .Image img {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.3);
}

@media not (prefers-reduced-motion: reduce) {
  .TimelineCarousel [data-flexscroll-item][inert] .Image img {
    transition: opacity .2s, transform .9s;
  }
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-item][inert] figcaption {
    visibility: hidden;
    transform: translateY(100%);
  }
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-item] figcaption {
    max-width: 538px;
    position: absolute;
    bottom: 0;
    right: 0;
  }
}

.TimelineCarousel [data-flexscroll-dots] {
  justify-content: space-between;
  width: 100%;
  margin: .75rem;
  display: flex;
  position: relative;
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-dots] {
    flex-direction: column;
    width: auto;
  }
}

.TimelineCarousel [data-flexscroll-goto] {
  z-index: 1;
  color: var(--white);
  align-items: flex-start;
  gap: var(--gap-sm);
  background-color: #0000;
  border-color: #0000;
  border-radius: 0;
  flex-direction: column;
  width: 50vh;
  height: auto;
  display: flex;
  position: relative;
}

.TimelineCarousel [data-flexscroll-goto]:before {
  content: " ";
  background-color: var(--carnegie-red);
  transition: var(--transition);
  width: 10px;
  height: 10px;
}

.TimelineCarousel [data-flexscroll-goto]:after {
  content: " ";
  border-top: 1px dashed var(--white-40);
  z-index: -1;
  width: 100%;
  height: 1px;
  position: absolute;
  top: 5px;
  left: 5px;
}

.TimelineCarousel [data-flexscroll-goto] span {
  pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto] img {
  pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto] span {
  transition: var(--transition);
  font-size: .875rem;
  font-weight: 700;
}

.TimelineCarousel [data-flexscroll-goto] span:last-child {
  border-bottom: 3px solid var(--white);
  margin-right: var(--gap-sm);
}

.TimelineCarousel [data-flexscroll-goto] span:first-child {
  visibility: hidden;
  display: none;
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-goto] {
    flex-direction: row;
    padding-bottom: 1rem;
  }

  .TimelineCarousel [data-flexscroll-goto]:after {
    content: " ";
    border-top: none;
    border-left: 1px dashed var(--white-40);
    width: 1px;
    height: 100%;
    position: absolute;
    top: 1px;
    left: 4px;
  }

  .TimelineCarousel [data-flexscroll-goto] span:first-child {
    visibility: visible;
    border: 4px solid var(--white);
    display: block;
  }

  .TimelineCarousel [data-flexscroll-goto] span:last-child {
    margin-right: 0;
  }
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] {
  z-index: 1;
  color: var(--white);
  align-items: flex-start;
  gap: var(--gap-sm);
  background-color: #0000;
  border-color: #0000;
  border-radius: 0;
  flex-direction: column;
  width: 50vh;
  height: auto;
  display: flex;
  position: relative;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:before {
  content: " ";
  background-color: var(--carnegie-red);
  transition: var(--transition);
  width: 10px;
  height: 10px;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:after {
  content: " ";
  border-top: 1px dashed var(--white-40);
  z-index: -1;
  width: 100%;
  height: 1px;
  position: absolute;
  top: 5px;
  left: 5px;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span {
  pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] img {
  pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span {
  transition: var(--transition);
  font-size: .875rem;
  font-weight: 700;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:last-child {
  border-bottom: 3px solid var(--white);
  margin-right: var(--gap-sm);
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:first-child {
  visibility: hidden;
  display: none;
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] {
    flex-direction: row;
    padding-bottom: 1rem;
  }

  .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:after {
    content: " ";
    border-top: none;
    border-left: 1px dashed var(--white-40);
    width: 1px;
    height: 100%;
    position: absolute;
    top: 1px;
    left: 4px;
  }

  .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:first-child {
    visibility: visible;
    border: 4px solid var(--white);
    display: block;
  }

  .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:last-child {
    margin-right: 0;
  }
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:before {
  background-color: var(--white);
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:last-child {
  border-color: #0000;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:first-child {
  border-color: #0000;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:hover:before {
  background-color: var(--white);
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:hover span:last-child {
  border-color: var(--white);
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:hover span:first-child {
    border-color: var(--white);
  }
}

.TimelineCarousel [data-flexscroll-nav] {
  top: calc((var(--nav) / 2)  + 70px + var(--gap));
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-nav] {
    visibility: hidden;
    grid-column: 2;
    display: none;
  }
}

@media (min-width: 64em) {
  .TimelineCarousel [data-flexscroll-prev] {
    order: unset;
  }
}

.TimelineCarousel [data-flexscroll-counter] {
  grid-column: span 2;
}

.Update {
  gap: var(--gap-sm);
  padding-block: var(--gap-sm);
  padding-inline: var(--wrap);
  grid-template-columns: 100%;
  display: grid;
  position: relative;
}

.Update .Common {
  width: calc(100% - (var(--gap-sm)  + 44px));
}

@media (min-width: 64em) {
  .Update {
    grid-template-columns: 3fr 2fr;
    align-items: center;
  }

  .Update .Common {
    width: 100%;
  }
}

.Update h2 {
  font: var(--h4);
  margin: 0;
}

.Update p {
  margin: 0;
}

.Update .Buttons {
  margin: 0;
}

@media (min-width: 64em) {
  .Update .Buttons {
    padding-inline: var(--wrap) calc(var(--wrap)  + (var(--gap-sm)  + 2rem));
    justify-content: end;
    justify-self: end;
  }
}

.ContentSidebar .Update {
  margin-inline-start: 0;
  margin-inline-end: 0;
}

.Update__close {
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
  position: absolute;
  top: 1rem;
  right: 1rem;
}

.Update__close:before {
  content: "";
  background: var(--white);
  transition: transform var(--transition);
  width: 20px;
  height: 20px;
  display: block;
  -webkit-mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center no-repeat;
  mask: url("/themes/custom/cmu_base/dist/assets/close.svg") center no-repeat;
}

.Update__close:hover:before {
  transform: scale(1.2);
}

@media (min-width: 64em) {
  .Update__close {
    right: var(--wrap);
    top: unset;
  }
}

.VisualRouter {
  --grid-min: 100%;
  gap: var(--gap);
  grid-template-columns: 100%;
  display: grid;
}

@media (min-width: 48em) {
  .VisualRouter {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 75em) {
  .VisualRouter {
    grid-template-columns: repeat(3, 1fr);
  }

  .VisualRouter.grid--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

.VisualRouter__item {
  gap: var(--gap-sm);
  grid-template-rows: auto 1fr;
  grid-template-columns: 100%;
  display: grid;
}

.VisualRouter__item .Image {
  margin: 0;
}

.VisualRouter__item h3 {
  width: 100%;
  margin-top: 1.5rem;
}

.VisualRouter__item h3 a {
  color: inherit;
}

.VisualRouter__item a:has(.VisualRouter__title):hover .VisualRouter__title {
  color: var(--white);
}

.VisualRouter__item a:has(.VisualRouter__title):hover .VisualRouter__title:before {
  transform: none;
}

.VisualRouter__item a .VisualRouter__title {
  padding: .5rem var(--gap-sm);
  background-color: var(--white);
  color: var(--black);
  border-bottom: 4px solid var(--carnegie-red);
  line-height: 1;
  text-decoration: none;
  transition: all .3s cubic-bezier(.4, 0, .2, 1);
  display: inline-block;
  position: relative;
}

.VisualRouter__item a .VisualRouter__title:before {
  content: "";
  border-radius: inherit;
  background: var(--carnegie-red);
  transition: transform var(--transition);
  position: absolute;
  top: -.125rem;
  bottom: -.125rem;
  left: -.125rem;
  right: -.125rem;
  transform: translateY(100%);
}

.VisualRouter__item a .VisualRouter__title span {
  position: relative;
}

.VisualRouter__image {
  grid-template-areas: "stack";
  place-items: flex-end flex-start;
  height: -moz-fit-content;
  height: fit-content;
  display: grid;
  position: relative;
  overflow: hidden;
}

.VisualRouter__image .Image {
  grid-area: stack;
}

.VisualRouter__image .Image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.VisualRouter__image .VisualRouter__title {
  grid-area: stack;
  place-content: flex-end;
  margin: 0;
}

.VisualRouter__title {
  font: var(--h4);
}

.VisualRouter__title.h5 {
  font: var(--h5);
}

.Widget {
  margin-block: var(--gap);
}

.Widget :where(h2) {
  font: var(--h4);
}

.Widget :where(h2) span {
  font-family: var(--source-serif);
  font-size: 1rem;
  font-weight: 300;
}

.Widget--bg {
  border-radius: var(--radius);
  background: var(--gray-light);
  padding: 2rem;
}

.Widget__list {
  grid-template-columns: 100%;
  gap: 1rem;
  padding: 0;
  list-style: none;
  display: grid;
}

.Widget__list li {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.Widget__list a {
  color: inherit;
  font-weight: normal;
}

.Widget__list--red svg {
  fill: var(--carnegie-red);
}

.Widget__icon {
  border: none;
  flex-shrink: 0;
  width: 1.125rem;
  display: inline-block;
}

a.Widget__icon svg {
  transition: transform var(--transition);
}

a.Widget__icon:hover svg {
  transform: scale(1.1);
}

.Widget__links ul {
  grid-template-columns: 100%;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.Widget__links a {
  color: inherit;
}
