/* Site footer (index.py: footer) */
.pvt-footer {
    position: relative;
    overflow: hidden;
    margin-top: 0;
    color: #c9cfe6;
    background: linear-gradient(160deg, #0b0f24 0%, #121838 55%, #1c1748 100%);
    font-size: 14px;
}
/* thin brand-gradient line on top */
.pvt-footer::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #3B4CC0, #5B4FC6, #8E6BD8, #3B4CC0);
}
/* soft colored glow in the corner */
.pvt-footer-glow {
    position: absolute;
    width: 520px; height: 520px;
    right: -160px; top: -260px;
    background: radial-gradient(circle, rgba(91, 79, 198, 0.35) 0%, rgba(91, 79, 198, 0) 70%);
    pointer-events: none;
}
/* only vertical padding: keep Bootstrap's .container side padding = header */
.pvt-footer-inner { position: relative; padding-top: 56px; padding-bottom: 24px; }

.pvt-footer-grid {
    display: grid;
    /* brand column takes the free space; Team + Resources sit together
       on the right, flush with the container edge */
    grid-template-columns: 1fr auto auto;
    gap: 40px 120px;
}
@media (max-width: 768px) {
    .pvt-footer-grid { grid-template-columns: 1fr; justify-content: stretch; gap: 28px; }
}

.pvt-footer-logo {
    font-size: 26px;
    font-weight: 800;
    letter-spacing: 0.12em;
    background: linear-gradient(90deg, #ffffff, #b9b0ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.pvt-footer-tagline {
    margin: 10px 0 22px;
    max-width: 380px;
    line-height: 1.6;
    color: #9aa3c7;
}
.pvt-footer-partners { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.pvt-footer-partners img {
    height: 34px;
    opacity: 0.85;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.pvt-footer-partners img.pvt-partner-badge { border-radius: 6px; }
/* trimmed png (berkeley_lab_logo_trim.png), so it sits flush left */
.pvt-footer-partners img[alt="Berkeley Lab"] { height: 38px; }
.pvt-footer-partners a:hover img { opacity: 1; transform: translateY(-2px); }

.pvt-footer-heading {
    margin-bottom: 14px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #ffffff;
}
.pvt-footer-list { list-style: none; padding: 0; margin: 0; }
.pvt-footer-list li { margin-bottom: 9px; color: #c9cfe6; }

.pvt-footer-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #c9cfe6;
    text-decoration: none;
    transition: color 0.2s ease, transform 0.2s ease;
}
.pvt-footer-link:hover { color: #ffffff; text-decoration: none; transform: translateX(3px); }
.pvt-footer-link::before {
    content: "";
    width: 16px; height: 16px;
    background-color: currentColor;
    -webkit-mask: var(--ico) center / contain no-repeat;
    mask: var(--ico) center / contain no-repeat;
}
.pvt-ico-github {
    --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z'/%3E%3C/svg%3E");
}
.pvt-ico-mail {
    --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E");
}

.pvt-footer-bottom {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    text-align: center;
}
.pvt-footer-funding {
    max-width: 820px;
    margin: 0 auto 10px;
    font-size: 12px;
    line-height: 1.6;
    color: #7f88ad;
}
.pvt-footer-copy { margin: 0; font-size: 12.5px; font-weight: 600; color: #aeb5d6; letter-spacing: 0.02em; }

/* Space between page content and the footer. Pages that paint their own
   full-width background down to the footer (PV-Copilot) opt out. */
.pvt-page-body { padding-bottom: 56px; }
.pvt-page-body:has(.pvcopilot-root) { padding-bottom: 0; }
