/* Footer. */
/* Footer layout. */
.site-footer {
    position: relative;
    z-index: 20;
    width: 100%;
    background: var(--primary-footer, #4A628A);
    border-top-left-radius: 40px;
    border-top-right-radius: 40px;
    color: var(--white, #ffffff);
    overflow: visible
}

.footer-container {
    position: relative;
    width: 100%;
    padding: 40px 80px 84px;
    display: grid;
    grid-template-columns: minmax(180px, 1.2fr) repeat(2, minmax(180px, 1fr));
    gap: 48px;
    align-items: start
}

.footer-logo {
    display: inline-flex;
    width: fit-content;
    text-decoration: none
}

.footer-logo img {
    width: 20rem;
    max-width: 100%;
    height: auto;
    display: block
}

.footer-section {
    background: transparent;
    border-radius: 0;
    padding: 0;
    overflow: visible;
    width: auto
}

.footer-title {
    color: var(--white, #ffffff);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.2;
    margin-bottom: 18px
}

/* Footer links. */
.footer-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px
}

.footer-link {
    color: var(--white, #ffffff);
    font-size: 0.95rem;
    line-height: 1.5;
    text-decoration: none;
    opacity: 0.88;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: opacity 0.2s ease, color 0.2s ease
}

.footer-link::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: currentColor
}

.footer-link:hover,
.footer-link.active {
    color: var(--accent-light, #d8ebe9);
    opacity: 1
}

.footer-credits {
    position: absolute;
    right: 0px;
    bottom: 0px;
    margin: 5px;
    z-index: 500;
    max-width: 280px;
    text-align: left;
    overflow: visible;
}

.footer-credit-details {
    position: relative;
    z-index: 510;
    overflow: visible
}

.footer-credit-details[open] {
    z-index: 700
}

.footer-credit-details summary {
    display: grid;
    gap: 2px;
    min-width: 220px;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 16px;
    background: rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .78);
    font-size: .78rem;
    line-height: 1.35;
    list-style: none;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease
}

.footer-credit-details summary::-webkit-details-marker {
    display: none
}

.footer-credit-details summary::after {
    content: "+";
    position: absolute;
    right: 14px;
    top: 50%;
    color: rgba(255, 255, 255, .7);
    font-size: 1rem;
    transform: translateY(-50%)
}

.footer-credit-details[open] summary::after {
    content: "-"
}

.footer-credit-details summary strong {
    padding-right: 20px;
    color: rgba(255, 255, 255, .9);
    font-size: .86rem;
    font-weight: 700
}

.footer-credit-details summary:hover,
.footer-credit-details[open] summary {
    background: rgba(255, 255, 255, .13);
    color: var(--white, #fff)
}

.footer-credit-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    z-index: 720;
    width: min(280px, 84vw);
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 18px;
    background: rgba(43, 64, 99, .98);
    box-shadow: 0 18px 38px rgba(24, 59, 99, .24);
    overflow: visible
}

.footer-school-link {
    display: inline-flex;
    color: var(--accent-light, #d8ebe9);
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.45;
    text-decoration: none
}

.footer-school-link:hover {
    text-decoration: underline
}

.footer-credit-list {
    display: grid;
    gap: 8px;
    justify-content: start;
    list-style: none;
    margin: 0;
    padding: 0
}

.footer-credit-item {
    position: relative;
    z-index: 730
}

.footer-credit-item:hover,
.footer-credit-item:focus-within {
    z-index: 900
}

.footer-credit-name {
    display: inline-flex;
    color: rgba(255, 255, 255, .78);
    font-size: .86rem;
    font-weight: 650;
    line-height: 1.35;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease
}

.footer-credit-name:hover,
.footer-credit-name:focus-visible {
    color: var(--accent-light, #d8ebe9);
    transform: translateX(3px)
}

.footer-credit-card {
    position: absolute;
    right: calc(100% + 10px);
    bottom: 0;
    z-index: 950;
    width: min(260px, 82vw);
    display: grid;
    gap: 7px;
    padding: 14px;
    border: 1px solid rgba(77, 103, 151, .14);
    border-radius: 14px;
    background: rgba(255, 255, 255, .98);
    color: #222;
    box-shadow: 0 18px 40px rgba(24, 59, 99, .2);
    opacity: 0;
    visibility: hidden;
    transform: translateX(8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    pointer-events: none
}

.footer-credit-card strong {
    color: var(--primary-dark, #183b63);
    font-size: 1rem
}

.footer-credit-card span {
    color: #555;
    font-size: .88rem;
    line-height: 1.45
}

.footer-credit-card a {
    color: var(--primary, #4d6797);
    font-size: .88rem;
    font-weight: 700;
    text-decoration: none;
    word-break: break-word
}

.footer-credit-card a:hover {
    text-decoration: underline
}

.footer-credit-item:hover .footer-credit-card,
.footer-credit-item:focus-within .footer-credit-card {
    opacity: 1;
    visibility: visible;
    transform: translateX(0)
}