.flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}

    .flex.align-center {
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
    }

    .flex.align-end {
        -webkit-box-align: end;
        -webkit-align-items: end;
        -ms-flex-align: end;
        align-items: end;
    }

    .flex.align-center.gap-column-15px {
        grid-column-gap: 15px;
    }

.flex-horizontal.justify-space-between {
    justify-content: space-between;
}

.pull-right {
    float: right !important;
}

.notification-badge {
    display: inline-block;
    padding: 8px 16px;
    font-weight: bold;
    text-align: center;
    border-radius: 50px;
    background: #f3f3f3;
    margin: 0 0 15px 0;
}

    .notification-badge.urgent-red {
        background: #CF202D !important;
        color: #fff !important;
    }

.dashboard-nav-notification-dot {
    height: 18px;
    width: 18px;
    border-radius: 9px;
    justify-content: center;
    align-items: center;
    background-color: #CF202D;
    color: #fff;
    font-size: 10px;
    line-height: 1.11em;
    font-weight: 700;
    text-align: center;
}

.grid-2-columns {
    grid-column-gap: 28px;
    grid-row-gap: 28px;
    grid-template-rows: auto;
    grid-template-columns: 1fr .6fr;
    grid-auto-columns: 1fr;
    display: grid;
    justify-content: space-between;
}

@media only screen and (max-width: 767px) {
    .grid-2-columns {
        grid-column-gap: 28px;
        grid-row-gap: 28px;
        grid-template-rows: auto;
        grid-template-columns: 1fr;
        grid-auto-columns: 1fr;
        display: grid;
    }
}

.grid-4-columns {
    grid-column-gap: 28px;
    grid-row-gap: 28px;
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-auto-columns: 1fr;
    display: grid;
}

@media only screen and (max-width: 767px) {
    .grid-4-columns {
        grid-column-gap: 28px;
        grid-row-gap: 28px;
        grid-template-rows: auto;
        grid-template-columns: 1fr 1fr;
        grid-auto-columns: 1fr;
        display: grid;
    }
}

.grid-5-columns {
    grid-column-gap: 28px;
    grid-row-gap: 28px;
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    grid-auto-columns: 1fr;
    display: grid;
}

@media only screen and (max-width: 577px) {
    .grid-5-columns {
        grid-column-gap: 28px;
        grid-row-gap: 28px;
        grid-template-rows: auto;
        grid-template-columns: 1fr;
        grid-auto-columns: 1fr;
        display: grid;
    }
}


.grid-courselist {
    --grid-layout-gap: 10px;
    --grid-column-count: 4;
    --grid-item--min-width: 200px;
    --gap-count: calc(var(--grid-column-count) - 1);
    --total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));
    --grid-item--max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
    grid-gap: var(--grid-layout-gap);
}

.grid-calendar {
    display: grid;
    grid-column-gap: 16px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

.card .form-control {
    display: block;
    width: 100%;
    height: calc(2.5em + 0.75rem + 2px);
    padding: 0.75rem 1.25rem;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 400;
    color: #01001a;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(50,50,71,.08);
    -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
    -o-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}

.card {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    border: 1px solid #cccccc;
    box-shadow: 0 2px 7px 0px rgba(20, 20, 43, .09);
    border-radius: 12px;
    padding: 32px 24px;
    margin-bottom: 28px;
}

    .card.p-24 {
        padding: 24px;
    }

    .card > hr {
        margin-right: 0;
        margin-left: 0;
    }

    .card > .list-group:first-child .list-group-item:first-child {
        border-top-left-radius: 12px;
        border-top-right-radius: 12px;
    }

    .card > .list-group:last-child .list-group-item:last-child {
        border-bottom-right-radius: 12px;
        border-bottom-left-radius: 12px;
    }

.card-top {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 28px;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    grid-column-gap: 32px;
}

.card-body {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
}

.card-title {
    margin-bottom: 0.75rem;
}

.card-subtitle {
    margin-top: -0.375rem;
    margin-bottom: 0;
}

.card-text:last-child {
    margin-bottom: 0;
}

.card-link {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
}

    .card-link:hover {
        text-decoration: none;
    }

    .card-link + .card-link {
        margin-left: 1.25rem;
    }

.calendar-link {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    -webkit-transition-property: all;
    -webkit-transition-duration: 0.3s;
    -webkit-transition-timing-function: ease;
}

    .calendar-link:hover {
        box-shadow: 0 2px 7px 0px rgba(10, 88, 202, .35);
        border: 2px solid #0a58ca;
        border-radius: 6px;
    }

    .calendar-link + .calendar-link {
        margin-left: 1.25rem;
    }

.card-header {
    padding: 0.75rem 1.25rem;
    margin-bottom: 0;
    background-color: rgba(0, 0, 0, 0.03);
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

    .card-header:first-child {
        border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
    }

    .card-header + .list-group .list-group-item:first-child {
        border-top: 0;
    }

.card-footer {
    padding: 0.75rem 1.25rem;
    background-color: rgba(0, 0, 0, 0.03);
    border-top: 1px solid rgba(0, 0, 0, 0.125);
}

    .card-footer:last-child {
        border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
    }

.card-header-tabs {
    margin-right: -0.625rem;
    margin-bottom: -0.75rem;
    margin-left: -0.625rem;
    border-bottom: 0;
}

.card-header-pills {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
}

.card-img-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.25rem;
}

.card-img {
    width: 100%;
    border-radius: calc(0.25rem - 1px);
}

.card-img-top {
    width: 100%;
    border-top-left-radius: calc(0.25rem - 1px);
    border-top-right-radius: calc(0.25rem - 1px);
}

.card-img-bottom {
    width: 100%;
    border-bottom-right-radius: calc(0.25rem - 1px);
    border-bottom-left-radius: calc(0.25rem - 1px);
}

.card-icon-square {
    max-width: 48px;
    border: 1.5px solid #cccccc;
    border-radius: 6px;
    padding: 10px;
    background: white;
}

.card.flat {
    box-shadow: none;
    background: #f4f4f4;
    margin: 36px 0 20px 0;
}

.gap-column-5px {
    grid-column-gap: 5px;
}

.gap-column-10px {
    grid-column-gap: 10px;
}

.gap-column-15px {
    grid-column-gap: 15px;
}

.gap-column-20px {
    grid-column-gap: 20px;
}

.gap-column-25px {
    grid-column-gap: 25px;
}

.font-size-xl {
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5em;
}

    .font-size-xl.medium {
        font-weight: 500;
    }

    .font-size-xl.semibold {
        font-weight: 600;
    }

.font-size-lg {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5em;
}

    .font-size-lg.medium {
        font-weight: 500;
    }

    .font-size-lg.semibold {
        font-weight: 600;
    }

.font-size-md {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4em;
}

    .font-size-md.medium {
        font-weight: 500;
    }

    .font-size-md.semibold {
        font-weight: 600;
    }

.font-size-sm {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4em;
}

    .font-size-sm.medium {
        font-weight: 500;
    }

    .font-size-sm.semibold {
        font-weight: 600;
    }

.font-size-xs {
    font-size: 10px;
    font-weight: 400;
    line-height: 1.4em;
}

    .font-size-xs.medium {
        font-weight: 500;
    }

    .font-size-xs.semibold {
        font-weight: 600;
    }

.font-size-xxs {
    font-size: 8px;
    font-weight: 400;
    line-height: 1.4em;
}

    .font-size-xxs.medium {
        font-weight: 500;
    }

    .font-size-xxs.semibold {
        font-weight: 600;
    }

.btn-primary, .btn-primary:visited {
    color: #fff;
    text-align: center;
    transform-style: preserve-3d;
    background-color: rgba(0, 0, 0, 0);
    background-image: linear-gradient(#47A0E0, #007cd4);
    border: 1px solid #007cd4;
    border-radius: 76px;
    justify-content: center;
    padding: 8px 32px;
    font-weight: 500;
    line-height: 1.286em;
    text-decoration: none;
    transition: box-shadow .3s, transform .3s, background-color .3s, color .3s;
    box-shadow: 0 1px 4px rgba(0, 89, 153, .26);
}

    .btn-primary:hover {
        color: #fff !important;
        transform: scale3d(1.02, 1.02, 1.01);
        box-shadow: 0 2px 16px 1px rgba(0, 89, 153, .3);
    }

    .btn-primary.small {
        padding: 12px 18px;
        font-size: 14px;
        line-height: 1.167em;
    }

.btn-secondary {
    color: #01001a;
    text-align: center;
    transform-style: preserve-3d;
    background-color: #fff;
    border: 1px solid #dee2e6;
    border-radius: 76px;
    padding: 8px 16px;
    font-weight: 500;
    line-height: 1.286em;
    text-decoration: none;
    transition: transform .3s, box-shadow .3s, border-color .3s, background-color .3s, color .3s;
}

    .btn-secondary:hover {
        /*color: #01001a;*/
        transform: scale3d(1.02, 1.02, 1.01);
        box-shadow: 0 2px 6px rgba(20, 20, 43, .1);
    }

    .btn-secondary.small {
        padding: 12px 18px;
        font-size: 14px;
        line-height: 1.167em;
    }

.bottom-bar {
    position: fixed;
    left: 0;
    bottom: 0;
    padding: 1em;
    background: #fff;
    border-top: 1px solid #dee2e6;
    box-shadow: 2px 0px 7px 0px rgba(20, 20, 43, .09);
    text-align: center;
    width: 100%;
    z-index: 1;
}

.notification-bar {
    transform-origin: 50% 0;
    background-color: #f7f8fc;
    border: 1.2px solid #eff1f6;
    border-radius: 8px;
    font-weight: 500;
    margin-bottom: 24px;
}

    .notification-bar.blue {
        background-color: #eaf4ff;
        border-color: #8fc3ff;
    }

    .notification-bar.green {
        background-color: #def2e6;
        border-color: #7fdca4;
    }

    .notification-bar.red {
        background-color: #ffeff0;
        border-color: #ff3b49;
        color: #CF202D;
    }

    .notification-bar.orange {
        background-color: #fff3e4;
        border-color: #ffd19b;
    }

.notification-bar-icon {
    max-width: 18px;
    min-width: 18px;
    border-radius: 100%;
}

    .notification-bar-icon.blue {
        box-shadow: 0 1px 2px rgba(61, 115, 255, .36);
    }

    .notification-bar-icon.green {
        box-shadow: 0 1px 2px rgba(47, 223, 75, .26);
    }

    .notification-bar-icon.red {
        margin-right: 12px;
    }

    .notification-bar-icon.orange {
        box-shadow: 0 1px 2px rgba(255, 166, 61, .36);
    }

.ud-coursedetails {
    margin: 0 0 30px 0;
}

    .ud-coursedetails > img {
        width: 100%;
        max-height: 360px;
        object-position: center top;
        object-fit: cover;
    }

    .ud-coursedetails .hero-img {
        margin-bottom: 35px;
    }

    .ud-coursedetails .ud-maps {
        width: 100%;
        height: 360px;
    }

    .ud-coursedetails > h2, h3, h4, h5, h6 {
        margin: 35px 0 20px 0;
    }

.calendar {
    position: relative;
    max-width: 128px;
    margin-bottom: 16px;
}

    .calendar .calendar-body {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        background: #f4f4f4;
        border: 1px solid #ccc;
        border-radius: 6px;
        box-shadow: 0 2px 7px 0px rgba(20, 20, 43, .09);
    }

        .calendar .calendar-body .month-name {
            margin-top: 10px;
        }

        .calendar .calendar-body .day-name {
            font-weight: bold;
            text-align: center;
            padding: 10px 0;
            border-bottom: 1px solid #ccc;
        }

        .calendar .calendar-body .date-number {
            background: #fff;
            border-radius: 6px;
            padding: 10px;
            font-size: 2.75em;
            font-weight: 600;
            line-height: 1.2em;
            margin: 10px 0;
        }

@media only screen and (max-width: 1024px) {
    .calendar .calendar-body .date-number {
        font-size: 2.35em;
    }
}

@media only screen and (max-width: 768px) {
    .calendar .calendar-body .date-number {
        font-size: 2em;
    }
}

.calendar .calendar-body .time {
    margin-bottom: 20px;
}

.search-box {
    position: relative;
    font-size: .8rem;
    width: 20rem;
    max-width: 100%;
    align-self: flex-end;
}

    .search-box .search-box-icon {
        position: absolute;
        color: var(--phoenix-gray-500);
        top: 36%;
        left: 1rem;
        -webkit-transform: translateY(-48%);
        -ms-transform: translateY(-48%);
        transform: translateY(-48%);
        border: none;
        background: none;
    }

    .search-box .search-input {
        padding-left: 2.5rem;
        padding-right: 2rem;
        border-radius: .375rem;
        -webkit-box-shadow: none;
        box-shadow: none
    }

        .search-box .search-input::-webkit-search-cancel-button {
            display: none
        }

    .search-box [data-bs-toggle=search]:not(.show) + [data-bs-dismiss=search] {
        display: none
    }



    .search-box .file-thumbnail {
        width: 1.75rem;
        height: 1.75rem
    }

    .search-box.ecommerce-search-box {
        width: 31.25rem
    }

        .search-box.ecommerce-search-box .search-input {
            border-radius: 3rem
        }

    .search-box.navbar-top-search-box .search-input:focus {
        border-color: var(--phoenix-gray-300)
    }

    .search-box.navbar-top-search-box .show .search-input {
        border-radius: .375rem .375rem 0 0 !important
    }

    .search-box.navbar-top-search-box .dropdown-menu {
        margin-top: 0
    }

        .search-box.navbar-top-search-box .dropdown-menu.show {
            border-top: 0 !important;
            border-top-left-radius: 0;
            border-top-right-radius: 0
        }

        .search-box.navbar-top-search-box .dropdown-menu .dropdown-item:hover {
            background: var(--phoenix-gray-100)
        }

.svg-inline--fa {
    display: var(--fa-display,inline-block);
    height: 1em;
    overflow: visible;
    vertical-align: -.125em;
}