/*////////////////////////////////////////////////
/////////EXTRAS//////////////////////////////////
//////////////////////////////////////////////*/

::selection {
    color: var(--bs-secondary);
    background-color: rgba(var(--bs-info-rgb), .75);
}

svg {
    fill: currentColor;
}

.shadow-btn-wrapper {
    box-shadow: var(--bs-box-shadow-sm);
}

.shadow-btn-wrapper:hover,
.shadow-btn-wrapper:focus,
.shadow-btn-wrapper:focus-within {
    transform: scale(1.01);
    box-shadow: var(--bs-box-shadow)
}

.stretched-link-overflow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    bottom: 0;
    left: 50%;
    z-index: 1;
    width: 200vw;
    height: 200vh;
    transform: translate(-50%, -50%);
}

.mirror {
    transform: scaleX(-1);
}

.flip {
    transform: scaleY(-1);
}

.mirror.flip {
    transform: scale(-1, -1);
}

.rotate {
    rotate: 90deg;
}

.rotate-edge {
    transform: rotate(90deg);
    transform-origin: top left;
}

.translate-invert-x {
    transform: translateX(-100%);
}

.translate-invert-y {
    transform: translateY(-100%);
}

.isolate {
    isolation: isolate;
}

.mt-nudge {
    margin-top: -1.5px;
}

.mb-nudge {
    margin-bottom: -1.5px;
}

.flex-even {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
}

.min-w-0 {
    min-width: 0;
}

.ratio-self {
    padding-top: var(--bs-aspect-ratio);
}

.square {
    width: 1px !important;
    height: 1px !important;
}

.triangle {
    background: currentColor;
    clip-path: polygon(100% 0, 0% 100%, 100% 100%);
}

.parallelogram {
    background: currentColor;
    clip-path: polygon(50% 0%, 100% 0%, 50% 100%, 0% 100%);
}

/* lg */
@media (max-width: 991.98px) {
    .ratio-lg-none {
        position: relative;
    }
    .ratio-lg-none > * {
        position: relative;
    }
    .ratio-lg-none::before {
        display: block;
        padding-top: unset;
        content: '';
    }
}

/*///////FONT////////////////////////////////*/

.letter-space-wide {
    letter-spacing: .07em;
}

.text-wrap-balance {
    text-wrap: balance;
}

.quotemark {
    height: .75em;
}

/*///////BACKGROUNDS/////////////////////////*/

.bg-pattern-icons {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    mask-image: url('../svg/bg-pattern-icons.svg');
    mask-size: 500px auto;
}

.bg-stripped-light {
    background-image: linear-gradient(45deg,rgba(255,255,255,.30) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.30) 50%,rgba(255,255,255,.30) 75%,transparent 75%,transparent);
    background-size: 1.25rem 1.25rem;
}

.bg-stripped-dark {
    background-image: linear-gradient(45deg,rgba(0,0,0,.15) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.15) 75%,transparent 75%,transparent);
    background-size: 1.25rem 1.25rem;
}

.bg-gradient-radial {
    width: 1337px;
    height: 1337px;
    background: radial-gradient(ellipse at center, currentColor 0%, rgba(0,0,0,0) 60%, rgba(0,0,0,0) 100%);
}

.bg-gradient-linear-x {
    background: linear-gradient(90deg, rgba(0,0,0,0) 0%, currentColor 100%);
}

.bg-gradient-linear-y {
    background: linear-gradient(0deg, rgba(0,0,0,0) 0%, currentColor 100%);
}

.bg-cover-effect::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    backdrop-filter: blur(3px) brightness(100%);
    z-index: -1;
    transition: backdrop-filter 0.15s ease-in-out;/*replaced*/
}

.bg-cover-effect:hover::after,
.bg-cover-effect:focus-within::after {
    backdrop-filter: blur(1px) brightness(110%);
}

/*////////////////////////////////////////////////
/////////BOOTSTRAP TWEAKS////////////////////////
//////////////////////////////////////////////*/

.accordion-button::after {
    position: absolute;
    right: 1rem;
}

.accordion-button:hover {
    background-color: var(--bs-accordion-active-bg);
}

.offcanvas.offcanvas-size-lg {
    width: 600px;
}

.form-control:focus::placeholder {
	color: var(--bs-gray-500);
}

/*////////////////////////////////////////////////
/////////UTILITY NAV/////////////////////////////
//////////////////////////////////////////////*/

.utility-nav-list .utility-nav-link {
    position: relative;
    background-color: unset;
    color: var(--bs-white);
    text-decoration: none;
    display: block;
    font-family: var(--bs-body-font-family);
    border: none;
    height: 100%;
}

.utility-nav-list .utility-nav-link:hover,
.utility-nav-list .utility-nav-link:focus {
    color: var(--bs-white);
}

.utility-nav-list .utility-nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0px;
    background-color: var(--bs-warning);
    transition: all 0.15s ease-in-out;/*replaced*/
}

.utility-nav-list .utility-nav-link:hover::after,
.utility-nav-list .utility-nav-link:focus::after {
    height: 2px;
}

.utility-nav-list .utility-nav-cta {
    line-height: 1.5;
}

.utility-nav-list .utility-nav-cta:hover,
.utility-nav-list .utility-nav-cta:focus {
    scale: 1.1;
}

/*///////SEARCH FIELD////////////////////////*/

.search-wrapper input:focus {
	box-shadow: 0 0 0 3px var(--bs-tertiary-bg);
	animation: none;
}

/*///////SEARCH NAV//////////////////////////*/

.search-nav-links {
    grid-template-columns: 1fr 1fr;
}

.search-nav-links li a {
    color: var(--bs-gray-200);
    text-decoration: none;
}

.search-nav-links li a:focus,
.search-nav-links li a:hover {
    color: var(--bs-white);
    text-decoration: underline;
}

.search-nav-links li a:focus .fal,
.search-nav-links li a:hover .fal {
    color: var(--bs-warning);
}

/*///////SEARCH NEWS/////////////////////////*/

.search-nav-news li:hover,
.search-nav-news li:focus-within {
    transform: translateX(10px);
}

.search-nav-news li a {
    color: var(--bs-gray-200);
    text-decoration: none;
}

/*////////////////////////////////////////////////
/////////MAIN NAVIGATION/////////////////////////
//////////////////////////////////////////////*/

.primary-nav-list li a {
    position: relative;
    padding: 1rem .25rem 1rem .25rem;
    font-size: 1.05rem;
    line-height: 2rem;
    text-decoration: none;
}

[offcanvas="nav-primary"] .primary-nav-list li a {
    color: var(--bs-primary) !important;
}

.primary-nav-list li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 4px;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-image: url("../svg/svg_sprite.svg#bottomBorder");
    transition: all 0.3s ease;/*set*/
}

.primary-nav-list li a:hover::after,
.primary-nav-list li a:focus::after {
    width: 100%;
}

.toggle-menu[aria-pressed="true"] .fal::before {
    content: '\e59b';
}

/* xl */
@media (max-width: 1199.98px) {
    .primary-nav-list {
        column-gap: 1rem !important;
    }
}

/* lg */
@media (max-width: 991.98px) {

    .primary-nav-list li a::after {
        background-image: none;
    }

    #header {
        z-index: 1025;
    }

    #header .offcanvas-backdrop {
        display: none;
    }

    #nav-primary {
        width: 100%;
        overflow-y: auto;
    }
    
    #side-menu,
    #nav-mobile {
        z-index: 1045;
    }
}

/*///////BREADCRUMB NAV//////////////////////*/

.breadcrumb-nav-list li a {
    padding: .25rem;
    color: var(--bs-white);
    text-decoration: none;
}

.breadcrumb-nav-list li a:hover,
.breadcrumb-nav-list li a:focus {
    text-decoration: underline;
}

/*////////////////////////////////////////////////
/////////CUSTOM GLOBAL///////////////////////////
//////////////////////////////////////////////*/

.slash {
    width: 3px;
    height: 3ch;
    background-color: var(--bs-warning);
    display: inline-block;
    transform: rotate(25deg);
    vertical-align: middle;
    margin: 0 .25rem;
}

.featured-thumb {
    max-width: 150px;
}

.magical-portrait {
    min-height: 600px;
}

/*///////FLOATING BUTTONS////////////////////*/

.btn-float .triangle {
    background-color: var(--bs-orange);
}
.btn-float:hover,
.btn-float:focus {
    transform: translateX(-1rem);
}
.btn-float:hover .btn-float-wrapper,
.btn-float:focus .btn-float-wrapper {
    background-color: var(--bs-white);
}

/*///////PROGRAM SEARCH BAR//////////////////*/

#search-program .form-control {
    padding-left: 4rem;
    color: var(--bs-gray-700);
}

#search-program .form-control:focus {
    animation: none;
}

#search-program-results ul {
    max-height: 225px;
}

#search-program-results .result a,
#search-program-results .msg {
    display: block;
    padding: .5rem;
    text-decoration: none;
    transition: all .15s ease-in-out;/*set*/
}

#search-program-results .result a:hover,
#search-program-results .result a:focus {
    color: var(--bs-white);
    text-decoration-color: rgba(255, 255, 255, 0);
    background-color: var(--bs-primary);
}

/*///////BUTTON SPIN/////////////////////////*/

.btn-spin .default,
.btn-spin .hover {
    transform: translate(-50%, -50%) rotate(0deg) scale(1);
}

.btn-spin .hover {
    transform: translate(-50%, -50%) rotate(-180deg) scale(0.5);
    opacity: 0;
}

.active .btn-spin .default,
.btn-spin:active .default,
.btn-spin:focus .default,
.btn-spin:hover .default {
    transform: translate(-50%, -50%) rotate(180deg) scale(0.5);
    opacity: 0;
}

.active .btn-spin .hover,
.btn-spin:active .hover,
.btn-spin:focus .hover,
.btn-spin:hover .hover {
    transform: translate(-50%, -50%) rotate(0deg) scale(1.2);
    opacity: 1;
}

/*////////////////////////////////////////////////
/////////PROGRAM MAIN////////////////////////////
//////////////////////////////////////////////*/

.grunge-angle {
    height: 3rem;
}

/*///////VIDEO MODAL BUTTON//////////////////*/

.video-btn-wrapper img {
    transition: all 0.2s ease-in-out;/*replaced*/
    box-shadow: none;
    filter: brightness(95%);
}

.video-btn-wrapper:hover img,
.video-btn-wrapper:focus-within img {
    transform: scale(1.01);
    box-shadow: var(--bs-box-shadow-lg);
    filter: brightness(105%);
}

.video-btn-wrapper:hover span::before,
.video-btn-wrapper:focus-within span::before {
    content: '\f055';
}

/*///////FACULTY/STAFF LIST//////////////////*/

@media (min-width: 576px) and (max-width: 767.98px) {
    .list-fs .list-fs-photo {
        max-width: 8rem;
    }
}

/*///////PING BUTTON/////////////////////////*/

/* .ping {
    position: relative;
    border-radius: 50%;
    line-height: 0;
    padding: 0;
    transition: opacity 0.2s ease-in-out;
    background-image: none;
    box-shadow: none;
}

.ping .pulse::after {
    content: '';
    border: 1px;
    border-color: inherit;
    border-style: solid;
    border-radius: 50%;
    height: 100%;
    width: 100%;
    position: absolute;
    inset: 0%;
    animation: pulsate 1s ease-out;
    animation-iteration-count: infinite;
    opacity: 0;
}

.ping:focus,
.ping:hover,
.ping:focus .pulse::after,
.ping:hover .pulse::after,
.modal-open .ping .pulse::after {
    animation: none;
    opacity: .75;
} */

/*///////SECTION BUTTON//////////////////////*/

.btn-section,
.btn-section:focus-visible {
    position: relative;
    text-decoration: none;
    color: inherit;
    background-image: none;
    width: 100%;
    padding: 0 0 0 1.5rem;
    margin-bottom: .5rem;
    box-shadow: none;
    border: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.btn-section::before {
    content: '';
    position: absolute;
    width: 1rem;
    height: 3px;
    background-color: var(--bs-gray-400);
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.btn-section:focus::before,
.btn-section:has(span:hover):hover::before {
    background-color: var(--bs-warning);
}

.btn-section:active,
.btn-section:hover {
    cursor: default;
}

.btn-section span {
    color: var(--bs-gray-400);
    transition: color .2s ease-in-out;/*replaced*/
}

.btn-section:focus span,
.btn-section span:hover {
    color: var(--bs-secondary);
    cursor: pointer;
}

.btn-section-tooltip {
    --bs-tooltip-bg: var(--bs-white);
    --bs-tooltip-color: var(--bs-gray-dark);
    --bs-tooltip-padding-y: .75rem;
    --bs-tooltip-padding-x: .75rem;
    /* box-shadow: var(--bs-box-shadow); */
}
.tooltip {
    pointer-events: none !important;
}

/* .btn-section:active .tip,
.btn-section:hover .tip,
.btn-section:focus .tip {
    opacity: 1;
    transition: opacity 0.25s ease-in-out;
}

.btn-section .tip::before {
    content: '';
    position: absolute;
    display: block;
    width: 0px;
    left: 100%;
    top: 50%;
    border: 10px solid transparent;
    border-right: 0;
    border-left: 10px solid #fff;
    transform: translateY(-50%);
} */

/*///////PROGRAM SECTION NAVIGATION//////////*/

.section-nav a {
    text-decoration: none;
    position: relative;
}

.section-nav .page > a {
    padding: 1.25rem 1rem 1.25rem 1rem;
    line-height: 1;
    text-decoration: none;
    display: block;
    font-family: "gotham_bold",sans-serif;
    font-weight: 400;
}

.section-nav .page:not(:last-child) {
    border-bottom: 1px solid var(--bs-gray-400);
}

.section-nav .page > a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background-color: transparent;
    transition: background-color 0.2s ease-in-out;/*replaced*/
}

.section-nav .page > a:hover::before {
    background-color: var(--bs-warning);
}

.section-nav .page.active > a {
    border-bottom: 1px solid var(--bs-gray-400);
}

.section-nav .page.active > a::before {
    background-color: var(--bs-primary);
}

.section-nav .page ol {
    padding: 1rem 1.5rem 1rem 1.5rem;
}

.section-nav .page ol li {
    margin-left: 1rem;
}

.section-nav .page ol a:hover {
    text-decoration: underline;
}

.section-nav .page a > .fal {
    width: 1.25em;
    text-align: center;
    margin-left: -1.25rem;
}

.section-nav .page a.active {
    color: var(--bs-secondary);
}

.section-nav .page ol a > .fal::before {
    color: transparent;
    content: '\f105';
    transition: all 0.4s ease-in-out;/*replaced*/
}

.section-nav .page ol a.active > .fal::before {
    color: var(--bs-primary);
}

/* md */
/* @media (max-width: 991.98px) {
    #section-menu {
        height: 100%;
    }
} */

/*///////PROGRAM CONTENT GRID////////////////*/

.content-grid {
    display: grid;
    --fluid: 1fr;
    --gutter: .75rem;
    --breakout: 1.5rem;
    --content: minmax(0, 696px);
    --side: minmax(0, 336px);
    grid-template-columns: [fluid-start] var(--fluid) [gutter-start] var(--gutter) [side-left-start] var(--side) [side-left-end breakout-start] var(--breakout) [content-start] var(--content) [content-end] var(--breakout) [breakout-end side-right-start] var(--side) [side-right-end] var(--gutter) [gutter-end] var(--fluid) [fluid-end];
}

.content-grid .grid-sub {
    display: grid;
    grid-template-columns: subgrid;
}

.content-grid .grid-utility,
.content-grid .grid-item,
.content-grid .grid-sidebar,
.content-grid .grid-side-right,
.content-grid .grid-span-right {
    grid-column: side-left-start / side-right-end;
}

.content-grid .grid-breakout,
.content-grid .grid-breakout-plus,
.content-grid .grid-fluid {
    grid-column: fluid;
}

.content-grid .grid-nav {
    grid-column: side-left;
    grid-row: auto;
}

@media (min-width: 992px) {
    .content-grid .grid-item,
    .content-grid .grid-side-right,
    .content-grid .grid-span-right {
        grid-column: content-start / side-right-end;
    }
    
    .content-grid .grid-sidebar {
        grid-column: content-start / side-right-end;
        grid-row: 3;
    }

    .content-grid .grid-breakout,
    .content-grid .grid-breakout-plus {
        grid-column: breakout / fluid-end;
    }
}

@media (min-width: 1200px) {
    .content-grid .grid-item {
        grid-column: content;
    }

    .content-grid .grid-utility {
        grid-column: side-left / content;
    }

    .content-grid .grid-sidebar {
        grid-column: side-right;
        /* grid-row: 1 / 1337; */
        grid-row: 1 / -1;
        height: fit-content;
    }

    .content-grid .grid-side-right {
        grid-column: side-right;
    }

    .content-grid .grid-span-right {
        grid-column: content-start / side-right-end;
    }

    .content-grid .grid-breakout {
        grid-column: breakout;
    }

    .content-grid .grid-breakout-plus {
        grid-column: breakout / fluid-end;
    }
}

/*////////////////////////////////////////////////
/////////MOBILE NAV BAR//////////////////////////
//////////////////////////////////////////////*/

.nav-mobile.transition {
    bottom: -50%;
}

.nav-mobile .btn,
.nav-mobile .btn:active,
.nav-mobile .btn:focus,
.nav-mobile .btn:hover {
    color: var(--bs-white);
}

.nav-mobile .btn:focus-visible {
    background-color: transparent;
    background-image: none;
    border: none;
    box-shadow: none;
}

.nav-mobile .bump {
    box-shadow: inset 0px 0px 0px 1px #ffffff !important;
    max-width: 125px;
    clip-path: inset(0px 1rem 2px 1rem);
}

/* .nav-mobile .bump::after {
    content: '';
    position: absolute;
    top: 19px;
    left: 50%;
    transform: translate(-50%);
    width: 150%;
    height: 100%;
    background-color: inherit;
    z-index: 1;
} */

.nav-mobile .btn:hover .fal,
.toggle-section-menu[aria-pressed="true"] .fal {
    color: var(--bs-warning);
}

.toggle-section-menu[aria-pressed="true"] .fal::before {
    content: '\f00d';
}

/*////////////////////////////////////////////////
/////////FOOTER//////////////////////////////////
//////////////////////////////////////////////*/

footer a {
    color: var(--bs-white);
    text-decoration-color: var(--bs-gray-600);
    transition: all 0.2s ease-in-out;/*set*/
}

footer a:focus,
footer a:hover {
    text-decoration-color: var(--bs-warning);
} 

.social-list li a {
    padding: .5rem;
    color: var(--bs-white);
    text-decoration: none;
}

.social-list li a:hover,
.social-list li a:focus {
    color: var(--bs-warning);
}

.social-list li a:hover span {
    transform: translateY(-.5rem);
}

/*////////////////////////////////////////////////
/////////ANIMATIONS//////////////////////////////
//////////////////////////////////////////////*/

.transition-ease {
    transition: all .25s ease-in-out;
}

.animation-pulse-box {
    animation: pulseBox 1s infinite;
}

@keyframes pulseBox {
	0% {
		-moz-box-shadow: 0 0 0 3px rgba(256,256,256, 0.3);
		box-shadow: 0 0 0 3px rgba(256,256,256, 0.3);
	}
	100% {
		-moz-box-shadow: 0 0 0 10px rgba(256,256,256, 0);
		box-shadow: 0 0 0 10px rgba(256,256,256, 0);
	}
}

/*///////ACCESSIBILITY///////////////////////*/

@media (prefers-reduced-motion) {
    .transition-ease,
    #search-program-results .result a,
    #search-program-results .msg,
    .animation-pulse-box,
    .primary-nav-list li a::after,
    footer a {
        transition: unset;
        animation: unset;
    }
}

/* @keyframes pulsate {
    0% {
        -webkit-transform: scale(0.1, 0.1);
        opacity: 0.0;
    }

    50% {
        opacity: 1.0;
    }

    100% {
        -webkit-transform: scale(1.2, 1.2);
        opacity: 0.0;
    }
} */

/*////////////////////////////////////////////////
/////////PRINT///////////////////////////////////
//////////////////////////////////////////////*/

@media print {
    [class*="-n"] {
        margin: 0 !important;
    }
}