/******************************************************************************
      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;
    }
}

/******************************************************************************
      Listing
  ******************************************************************************/

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%;
    }

}
