/******************************************************************************
      Loading
  ******************************************************************************/

.online__loading {
  margin: 2rem auto;
  padding: 7rem 0;
  width: 150px;
}

.online__loading > * {
  display: block !important;
  margin: 0 auto;
  text-align: center;
  white-space: nowrap;
}

.lds-ring {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
}

.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 64px;
  height: 64px;
  margin: 8px;
  border: 8px solid #fcf;
  border-radius: 50%;
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: var(--cwf-color--gold) transparent transparent transparent;
}

.lds-ring div:nth-child(1) {
  animation-delay: -0.45s;
}

.lds-ring div:nth-child(2) {
  animation-delay: -0.3s;
}

.lds-ring div:nth-child(3) {
  animation-delay: -0.15s;
}

@keyframes lds-ring {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.online-program-search__container {
  margin-bottom: 2rem !important;
}

/******************************************************************************
  Filters Quick Combo
  ******************************************************************************/
.online-program-search__filter-quick-combo {
  border: solid 3px var(--cwf-color--gold);
}

@media (max-width: 1023px) {
  .online-program-search__filter-quick-combo {
    margin-top: 1rem;
  }
}

/******************************************************************************
  Filters Bulletin Message
  ******************************************************************************/
.online-program-search__bulletin-message {
  font-size: 0.75rem;
  font-style: italic;
  margin-bottom: 3rem;
  text-align: right;
}

.online-program-search__bulletin-message a {
  color: var(--color--rust);
  font-weight: 600;
}

.online-program-search__bulletin-message a:active,
.online-program-search__bulletin-message a:focus,
.online-program-search__bulletin-message a:hover {
  color: var(--color--rust);
  text-decoration: none;
}

/******************************************************************************
      Filters
  ******************************************************************************/
.online-program-search__filters {
  /* border: solid 3px var(--cwf-color--gold); */
  display: grid;
  grid-template-columns: auto;
  grid-template-areas:
    "header"
    "keywords"
    "degreeLevel"
    "unit"
    "submits";
  margin-bottom: 1rem;
  padding: 1.5rem;
  row-gap: 1rem;
}

.online-program-search__filters label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.25rem;
}

.online-program-search__filters label span {
  display: block;
}

.online-program-search__filters label span.cwf-text--muted {
  color: #666666;
  font-size: 0.8rem;
  font-weight: 500;
}

.online-program-search__filters :is(input[type="text"], select) {
  /* background: #ffffff;
  border: solid 1px var(--vcu-gray);
  border-radius: 5px;
  padding: 0.5rem;
  width: 100%; */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--color--white);
  border: 2px solid var(--color--black);
  border-radius: 0;
  color: var(--color--black);
  padding: 0.5rem;
  width: 100%;
}

.online-program-search__filters :is(select) {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free v7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="%23f8b300" d="M480 224C492.9 224 504.6 231.8 509.6 243.8C514.6 255.8 511.8 269.5 502.7 278.7L342.7 438.7C330.2 451.2 309.9 451.2 297.4 438.7L137.4 278.7C128.2 269.5 125.5 255.8 130.5 243.8C135.5 231.8 147.1 224 160 224L480 224z"/></svg>');
  background-position: right 0.5em center;
  background-repeat: no-repeat;
  background-size: 1rem;
}

.online-program-search__filter-row {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}

.online-program-search__filter-header {
  grid-area: header;
  margin: 0;
  padding: 0;
}

.online-program-search__filter-keywords {
  grid-area: keywords;
}

.online-program-search__filter-degree-level {
  grid-area: degreeLevel;
}

.online-program-search__filter-unit {
  grid-area: unit;
}

.online-program-search__filter-submit {
  display: flex;
  gap: 0.5rem;
  grid-area: submits;
}

.online-program-search__filter-submit :is(a, button) {
  align-self: flex-end;
  background: #ffffff;
  border: solid 2px var(--vcu-gold);
  border-radius: 2rem;
  color: var(--color--black);
  cursor: pointer;
  padding: 0.5rem 1rem;
}

.online-program-search__filter-submit :is(button[type="submit"]) {
  background: var(--vcu-gold);
}

@media (min-width: 768px) {
  .online-program-search__filters {
    column-gap: 1rem;
    grid-template-columns: 2fr 2fr 1fr;
    grid-template-areas:
      "header header header"
      "keywords keywords ."
      "degreeLevel unit submits";
  }
}

/******************************************************************************
      Quick searches
  ******************************************************************************/

.online-program-search__quick-search {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
  padding: 1.5rem;
  position: relative;
  /* margin: 2rem 0 4rem 0; */
}

.online-program-search__quick-search:before {
  content: "";
  position: absolute;
  background-color: var(--color--gold);
  height: 3px;
  width: calc(100% - 3rem);
  top: 0;
}

.online-program-search__quick-search-label {
  align-items: center;
  display: flex;
  font-weight: 700;
  text-transform: uppercase;
}

.online-program-search__quick-search ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.online-program-search__quick-search li {
}

.online-program-search__quick-search li :is(a, button) {
  background: #ffffff;
  border: solid 2px #575757;
  border-radius: 1rem;
  color: #575757;
  cursor: pointer;
  padding: 0.5rem 1.5rem;
  text-decoration: none;
}

.online-program-search__quick-search li :is(a, button):is(:focus, :hover) {
  background: var(--vcu-gold);
  border-color: var(--vcu-gold);
  color: #000000;
}

@media (min-width: 768px) {
  .online-program-search__quick-search {
    flex-direction: row;
    padding: 1.5rem;
    position: relative;
  }

  .online-program-search__quick-search ul {
    gap: 1rem;
  }
}

/* Industry keyword highlight */
.online-program-search__filter-keywords input.is-highlight {
  border-color: transparent;
  outline: 2px solid #006894;
}

.online-program-search__filter-hint {
  margin-top: 0.35rem;
  font-size: 0.875rem;
  color: #006894;
  font-weight: 600;
}

/******************************************************************************
      Listing
  ******************************************************************************/

.online-program-search__list-status {
  font-size: 1.2rem;
  font-weight: bold;
  text-align: center;
  text-transform: uppercase;
}

.online-program-search__list-status__reset-link,
.online-program-search__list-status__reset-link:active,
.online-program-search__list-status__reset-link:focus,
.online-program-search__list-status__reset-link:hover {
  color: var(--color--rust);
}

.online-program-search__list-status__reset-link:active,
.online-program-search__list-status__reset-link:focus,
.online-program-search__list-status__reset-link:hover {
  text-decoration: none;
}

body:not(#page-179150) .online-program-search__listing {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
}

.online-program-search__program-listing-group {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: space-between;
  padding-bottom: 1rem;
}

.online-program-search__program-listing-group--hide {
  display: none;
}

.online-program-search__program-listing-group > h2 {
  align-items: center;
  display: flex;
  flex: 0 0 100%;
  gap: 0.5rem;
  margin: 3rem 0 0 0;
}

@media (min-width: 540px) {
  .online-program-search__program-listing-group > h2::after {
    border-bottom: 1px solid var(--vcu-gold);
    content: "";
    display: block;
    height: 10px;
    width: 100%;
  }

  .online-program-search__program-listing-group > h2 > span {
    white-space: nowrap;
  }
}

.online-program-search__program-listing-item {
  background-color: var(--color--gray--light);
  border: solid 2px var(--vcu-gray);
  display: flex;
  flex: 0 0 100%;
  flex-direction: column;
}

.online-program-search__program-listing-item--hide {
  display: none !important;
}

.online-program-search__program-name {
  font-size: 1.3rem;
  font-weight: 900;
  margin: 0;
  order: 1;
  padding: 1rem 1rem 0 1rem;
}

.online-program-search__program-units {
  background: var(--vcu-gold);
  font-weight: 900;
  order: 0;
  padding: 0.5rem 1rem;
  text-transform: uppercase;
}

.online-program-search__program-degree-level {
  font-style: italic;
  font-weight: 600;
  order: 2;
  padding: 0.75rem 1rem 0 1rem;
  text-transform: uppercase;
}

.online-program-search__program-description {
  flex: 0 1 100%;
  font-size: 0.888888rem;
  line-height: 1.5;
  order: 3;
  padding: 0.75rem 1rem 1rem 1rem;
}

.online-program-search__program-buttons {
  order: 4;
  padding: 0 1rem;
}

.online-program-search__program-buttons :is(a, button) {
  background: none;
  border: solid 1px #000000;
  color: #000000;
  cursor: pointer;
  display: block;
  margin: 0 0 0.5rem 0;
  padding: 0.5rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  user-select: none;
  width: 100%;
}

.online-program-search__program-buttons :is(a, button):is(:focus, :hover) {
  background: #000000;
  color: #ffffff;
}

.online-program-search__program-buttons a {
  background: #000000;
  color: var(--vcu-gold);
  font-weight: 600;
  letter-spacing: 0.1em;
}

.online-program-search__program-buttons a:is(:focus, :hover) {
  background: var(--vcu-gold);
  color: #000000;
}

@media (min-width: 640px) {
  .online-program-search__program-listing-group {
    justify-content: center;
  }

  .online-program-search__program-listing-item {
    flex: 0 0 calc(50% - 1rem);
  }
}

@media (min-width: 1024px) {
  .online-program-search__program-listing-item {
    flex: 0 0 calc(33.3% - 1.33rem);
  }
}

/******************************************************************************
      Listing - No result
  ******************************************************************************/

.online-program-search__listing-no-result {
  background: var(--vcu-gray);
  border: solid 2px #000000;
  display: none;
  font-size: 1.2rem;
  padding: 1rem;
  text-align: center;
}

.online-program-search__listing-no-result.online-program-search__listing-no-result--show {
  display: block;
}

/******************************************************************************
      Error
  ******************************************************************************/

.online-program-search__load-error {
  margin: 0 auto;
  padding: 2rem;
  width: fit-content;
}

.online-program-search__load-error span {
  border: solid 3px red;
  border-radius: 50%;
  color: red;
  display: inline-block;
  font-weight: 700;
  margin-right: 0.5rem;
  text-align: center;
  width: 33px;
}

/******************************************************************************
      Related programs section on degree pages
  ******************************************************************************/

.online-related-programs {
  padding: 2rem;
}

.online-related-programs__container {
  max-width: 1040px;
  margin: 0 auto;
}

.online-related-programs__title {
  font-size: 2.5rem;
  font-weight: 900;
  margin-top: 0;
  text-transform: uppercase;
}

/******************************************************************************
      Program search page - modify CWF breadcrumb and hero styles
  ******************************************************************************/

.cwf-grid--page-layout {
  --cwf-grid--grid-template-columns: 1fr;
  grid-template-areas: "main";
  padding: 0;
  width: 100%;
}

.cwf-grid__column--page-layout--main {
  max-width: 100%;
  padding: 0;
  position: relative;
}

.online-program-search__container {
  background: #ffffff;
  margin: 0 1rem;
  max-width: 1040px;
  min-height: 500px;
  position: relative;
  z-index: 20;
}

.cwf-breadcrumb {
  color: #ffffff;
  max-width: 1040px;
  padding: 0 1rem;
  position: absolute;
  top: 0;
  z-index: 20;
}

.cwf-breadcrumb a,
.cwf-breadcrumb a:is(:link, :visited) {
  color: var(--vcu-gold);
}

@media (min-width: 1024px) {
  .cwf-breadcrumb {
    margin: 0 calc((100% - 1400px) / 2);
  }

  .online-program-search__container {
    margin: 0 auto;
    padding: 0 1rem;
    margin-top: -8rem;
  }
}

@media (min-width: 1055px) {
  .online-program-search__container {
    padding: 0;
  }
}

/******************************************************************************
      Program listing in noscript
  ******************************************************************************/

.online-program-listing {
  background: #ffffff;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0 auto;
  max-width: 1024px;
  padding: 1rem;
}

.online-program-listing__item {
}

.online-program-listing__item__title h3 {
  margin: 0;
}

.online-program-listing__item__title h3 a {
  color: var(--color--rust);
}

.online-program-listing__item__title h3 a:is(:focus, :hover) {
  text-decoration: none;
}

.online-program-listing__item__degree {
  font-style: italic;
}

@media (min-width: 768px) {
  .online-program-listing {
    gap: 0;
  }

  .online-program-listing__item {
    align-items: center;
    border-bottom: 1px solid var(--color--gray--medium);
    border-left: 1px solid var(--color--gray--medium);
    border-right: 1px solid var(--color--gray--medium);
    display: flex;
  }

  .online-program-listing__item:first-of-type {
    border-top: 1px solid var(--color--gray--medium);
  }

  .online-program-listing__item:nth-of-type(2n) {
    background: var(--color--gray--light);
  }

  .online-program-listing__item > * {
    padding: 0.5rem;
  }

  .online-program-listing__item__title {
    flex: 0 1 50%;
  }

  .online-program-listing__item__degree {
    flex: 0 1 25%;
  }

  .online-program-listing__item__unit {
    flex: 0 1 25%;
  }
}
