/* NyahVolt Footer Partners & Sponsors v1.1 */
.nvfp-section {
    --nvfp-cyan: #35d7ff;
    --nvfp-purple: #9e63ff;
    --nvfp-card: rgba(9, 28, 47, .92);
    --nvfp-border: rgba(86, 204, 255, .22);
    --nvfp-logo-height: 54px;
    --nvfp-duration: 32s;
    position: relative;
    z-index: 2;
    margin: 24px 0 0;
    padding: var(--nvfp-section-padding, 14px) 0;
    overflow: hidden;
    border-top: 1px solid rgba(64, 196, 255, .22);
    border-bottom: 1px solid rgba(111, 86, 255, .18);
    background:
        radial-gradient(circle at 12% 12%, rgba(15, 164, 238, .15), transparent 30%),
        radial-gradient(circle at 88% 0%, rgba(131, 77, 255, .16), transparent 32%),
        linear-gradient(135deg, rgba(4, 18, 31, .99), rgba(5, 12, 25, .99));
    box-shadow: inset 0 1px rgba(255, 255, 255, .035);
}

.nvfp-shell {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.nvfp-header {
    margin: 0 0 12px;
    text-align: center;
}

.nvfp-kicker {
    display: block;
    margin-bottom: 3px;
    color: var(--nvfp-cyan);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .18em;
}

.nvfp-header h2 {
    margin: 0;
    color: #f6fbff;
    font-size: var(--nvfp-heading-size, 18px);
    line-height: 1.12;
}

.nvfp-header p {
    max-width: 720px;
    margin: 5px auto 0;
    color: #94adc2;
    font-size: 11px;
    line-height: 1.4;
}

.nvfp-group + .nvfp-group {
    margin-top: 14px;
}

.nvfp-group h3 {
    margin: 0 0 7px;
    color: #cceeff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.nvfp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
    gap: 6px;
}

.nvfp-logo-card {
    box-sizing: border-box;
    display: flex;
    min-width: 0;
    min-height: var(--nvfp-card-height, 84px);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 8px 10px;
    overflow: hidden;
    border: 1px solid var(--nvfp-border);
    border-radius: 11px;
    background:
        linear-gradient(145deg, rgba(12, 38, 61, .92), rgba(5, 17, 31, .98));
    box-shadow:
        0 12px 28px rgba(0, 0, 0, .2),
        inset 0 1px rgba(255, 255, 255, .04);
    color: #eef9ff !important;
    text-align: center;
    text-decoration: none !important;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.nvfp-logo-card[href]:hover,
.nvfp-logo-card[href]:focus-visible {
    transform: translateY(-3px);
    border-color: rgba(69, 218, 255, .55);
    background: linear-gradient(145deg, rgba(14, 52, 82, .98), rgba(11, 23, 45, .99));
    box-shadow:
        0 16px 34px rgba(0, 0, 0, .3),
        0 0 22px rgba(40, 197, 255, .09),
        inset 0 1px rgba(255, 255, 255, .06);
    outline: none;
}

.nvfp-logo-stage {
    display: flex;
    width: 100%;
    height: calc(var(--nvfp-logo-height) + 4px);
    align-items: center;
    justify-content: center;
}

.nvfp-logo-stage img {
    display: block;
    width: auto;
    max-width: min(160px, 88%);
    height: auto;
    max-height: var(--nvfp-logo-height);
    object-fit: contain;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .28));
}

.nvfp-logo-copy {
    display: block;
    width: 100%;
    min-width: 0;
}

.nvfp-logo-copy strong,
.nvfp-logo-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nvfp-logo-copy strong {
    color: #f3fbff;
    font-size: 11px;
    font-weight: 800;
}

.nvfp-logo-copy small {
    margin-top: 2px;
    color: #7fcce8;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nvfp-type-sponsor {
    border-color: rgba(255, 184, 70, .27);
}

.nvfp-type-partner,
.nvfp-type-community {
    border-color: rgba(157, 104, 255, .28);
}

.nvfp-grayscale .nvfp-logo-stage img {
    filter: grayscale(1) opacity(.8) drop-shadow(0 6px 10px rgba(0, 0, 0, .25));
    transition: filter .2s ease;
}

.nvfp-grayscale .nvfp-logo-card:hover img,
.nvfp-grayscale .nvfp-logo-card:focus-visible img {
    filter: grayscale(0) opacity(1) drop-shadow(0 6px 10px rgba(0, 0, 0, .3));
}

.nvfp-carousel {
    overflow: hidden;
}

.nvfp-carousel-window {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
}

.nvfp-track {
    display: flex;
    width: max-content;
    will-change: transform;
}

.nvfp-track-set {
    display: flex;
    gap: 12px;
    padding-right: 12px;
}

.nvfp-layout-carousel .nvfp-logo-card {
    width: 158px;
    flex: 0 0 158px;
}

.nvfp-carousel.nvfp-ready .nvfp-track {
    animation: nvfp-scroll var(--nvfp-duration) linear infinite;
}

.nvfp-pause-hover .nvfp-carousel:hover .nvfp-track,
.nvfp-pause-hover .nvfp-carousel:focus-within .nvfp-track {
    animation-play-state: paused;
}

.nvfp-carousel.nvfp-static .nvfp-track-set {
    flex-wrap: wrap;
}

@keyframes nvfp-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}



/* Density options */
.nvfp-density-standard .nvfp-header {
    margin-bottom: 22px;
}

.nvfp-density-standard .nvfp-header p {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.55;
}

.nvfp-density-standard .nvfp-group + .nvfp-group {
    margin-top: 22px;
}

.nvfp-density-standard .nvfp-group h3 {
    margin-bottom: 10px;
}

.nvfp-density-standard .nvfp-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.nvfp-density-standard .nvfp-logo-card {
    min-height: max(var(--nvfp-card-height, 112px), 100px);
    gap: 9px;
    padding: 13px 14px;
    border-radius: 14px;
}

.nvfp-density-standard .nvfp-logo-stage {
    height: calc(var(--nvfp-logo-height) + 8px);
}

.nvfp-background-solid,
.nvfp-background-image,
.nvfp-background-transparent {
    background-attachment: scroll;
}

@media (prefers-reduced-motion: reduce) {
    .nvfp-carousel .nvfp-track {
        animation: none !important;
        transform: none !important;
    }
    .nvfp-logo-card {
        transition: none;
    }
}

@media screen and (max-width: 700px) {
    .nvfp-section {
        padding: var(--nvfp-section-padding, 12px) 0;
    }
    .nvfp-shell {
        width: min(100% - 22px, 1180px);
    }
    .nvfp-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }
    .nvfp-logo-card {
        min-height: var(--nvfp-card-height, 80px);
        padding: 8px 7px;
    }
    .nvfp-layout-carousel .nvfp-logo-card {
        width: 145px;
        flex-basis: 145px;
    }
}

@media screen and (max-width: 390px) {
    .nvfp-grid {
        grid-template-columns: 1fr;
    }
}


/* NyahVolt Footer Partners & Sponsors v1.2 compact defaults */
.nvfp-section {
    margin-top: 12px;
    padding: var(--nvfp-section-padding, 8px) 0;
}
.nvfp-header { margin-bottom: 6px; }
.nvfp-header h2 { font-size: var(--nvfp-heading-size, 14px); }
.nvfp-header p { margin-top: 3px; font-size: 10px; }
.nvfp-group + .nvfp-group { margin-top: 8px; }
.nvfp-group h3 { margin-bottom: 4px; font-size: 9px; }
.nvfp-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 5px;
}
.nvfp-density-slim .nvfp-logo-card {
    min-height: var(--nvfp-card-height, 68px);
    flex-direction: row;
    justify-content: flex-start;
    gap: 7px;
    padding: 6px 8px;
    border-radius: 9px;
}
.nvfp-density-slim .nvfp-logo-stage {
    width: 64px;
    height: calc(var(--nvfp-logo-height, 30px) + 4px);
    flex: 0 0 64px;
}
.nvfp-density-slim .nvfp-logo-stage:only-child {
    width: 100%;
    flex: 1 1 auto;
}
.nvfp-density-slim .nvfp-logo-stage img { max-width: 100%; }
.nvfp-density-slim .nvfp-logo-copy { text-align: left; }
.nvfp-density-slim .nvfp-logo-copy strong { font-size: 10px; }
.nvfp-density-slim .nvfp-logo-copy small { font-size: 7px; }
.nvfp-density-slim.nvfp-layout-carousel .nvfp-logo-card {
    width: 176px;
    flex-basis: 176px;
}
@media screen and (max-width: 700px) {
    .nvfp-section { padding: var(--nvfp-section-padding, 8px) 0; }
    .nvfp-density-slim .nvfp-logo-card {
        min-height: var(--nvfp-card-height, 68px);
        padding: 6px;
    }
}
