/* 全站统一底部 — 对齐 UI 稿 1920×1080 */
.site-footer {
    /* 分割线上方（二维码→线）与下方（线→版权文字）共用，保持对称 */
    --footer-line-gap: 96px;
    background-color: #14abab;
    /* 波浪背景：全站 footer 统一贴底（含 list / detail） */
    background-image: url('../imgs/footline.png');
    background-repeat: repeat-x;
    background-position: center bottom;
    background-size: 100% auto;
    color: #fff;
    padding: 0;
    text-align: center;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
    box-sizing: border-box;
}

/* 首页整屏滚动：高度固定为一屏 */
.site-footer.snap-section {
    height: 100vh;
    height: 100dvh;
    min-height: 100dvh;
}

.site-footer__container {
    flex: 1 1 auto;
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    z-index: 1;
    max-width: 1920px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

/* 2K / 4K 宽屏：放大页脚主视觉，减少「中间一条、两边空」的感觉 */
@media (min-width: 2560px) {
    .site-footer__container {
        max-width: min(3200px, 94vw);
    }

    .site-footer__brand img {
        height: 96px;
    }

    .site-footer__slogan {
        margin-top: 52px;
        margin-bottom: 64px;
    }

    .site-footer__slogan img {
        width: 560px;
        max-width: 72vw;
    }

    .site-footer__qrcodes {
        gap: 96px;
    }

    .site-footer__qrcode-item img {
        width: 168px;
        height: 168px;
        padding: 12px;
    }

    .site-footer__qrcode-item p {
        font-size: 17px;
    }

    .site-footer__divider-wrap,
    .site-footer__copyright-inner {
        max-width: 1600px;
    }

    .site-footer__line {
        font-size: 18px;
        line-height: 32px;
    }

    .site-footer__plane {
        width: 120px;
        top: 48px;
    }
}

/*
 * 桌面页脚一屏内垂直居中
 * 4K + 250% 缩放实测约 1536×825，高度 <921 也必须走这里
 */
@media (min-height: 700px) and (min-width: 769px) {
    .site-footer__container {
        justify-content: center;
    }

    .site-footer__main {
        margin-top: 0;
        padding-top: 0;
    }

    .site-footer.snap-section .site-footer__container {
        justify-content: center;
    }
}

/* 列表/详情：页脚区域至少占满一屏，波浪贴底 */
body.page-list .site-footer,
body.page-detail .site-footer {
    min-height: 100vh;
    min-height: 100dvh;
}

body.page-list .site-footer__container,
body.page-detail .site-footer__container {
    min-height: 100%;
}

.site-footer__main {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    position: relative;
    width: 100%;
    padding: 130px 20px 0;
    box-sizing: border-box;
    margin-top: 50px;
}

.site-footer__plane {
    position: absolute;
    top: 42px;
    right: 14%;
    width: 100px;
    height: auto;
    opacity: 0.92;
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: screen;
}

.site-footer__brand {
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 0;
    margin-top: 0;
}

.site-footer__brand img {
    display: block;
    width: auto;
    height: 75px;
    mix-blend-mode: screen;
}

.site-footer__slogan {
    /* 仅调整标语上下间距，logo 块位置不变 */
    margin-top: 52px;
    margin-bottom: 56px;
    line-height: 0;
}

.site-footer__slogan img {
    display: block;
    width: 450px;
    max-width: 88vw;
    height: auto;
    margin: 0 auto;
}

.site-footer__qrcodes {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 72px;
    flex-wrap: nowrap;
}

.site-footer__qrcode-item {
    text-align: center;
    flex: 0 0 auto;
}

.site-footer__qrcode-item img {
    display: block;
    width: 140px;
    height: 140px;
    margin: 0 auto 14px;
    background-color: #fff;
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
    object-fit: cover;
}

.site-footer__qrcode-item p {
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    margin: 0;
    letter-spacing: 0;
}

.site-footer__divider-wrap {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 1200px;
    margin: var(--footer-line-gap) auto 0;
    padding: 0 20px;
    box-sizing: border-box;
}

.site-footer__divider {
    width: 100%;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.22) 18%,
        rgba(255, 255, 255, 0.82) 50%,
        rgba(255, 255, 255, 0.22) 82%,
        rgba(255, 255, 255, 0) 100%
    );
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.12);
}

.site-footer__copyright {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    margin-top: 0;
    padding-bottom: 80px;
    background: transparent;
}

.site-footer__copyright-inner {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 100%;
    max-width: 1200px;
    margin: var(--footer-line-gap) auto 0;
    padding: 0 20px;
    box-sizing: border-box;
}

.site-footer__line {
    font-size: 16px;
    line-height: 28px;
    color: #fff;
    margin: 0;
    letter-spacing: 0.2px;
}

.site-footer__line a {
    color: #fff;
    text-decoration: none;
}

.site-footer__line a:hover {
    text-decoration: underline;
    opacity: 0.9;
}

.site-footer__line + .site-footer__line {
    margin-top: 15px;
}

.site-footer__sep {
    display: inline-block;
    width: 40px;
}

/*
 * 有效高度 ≤920（如 1536×825、250% 缩放）
 * 元素适中缩小 + 保留间距，避免底部过大或挤成一团
 */
@media (max-height: 920px) and (min-width: 769px) {
    .site-footer.snap-section {
        height: auto;
        min-height: 100dvh;
        overflow: visible;
    }

    .site-footer__container {
        justify-content: center;
        padding-top: 12px;
        padding-bottom: 20px;
        box-sizing: border-box;
    }

    .site-footer__main {
        margin-top: 0;
        padding-top: 0;
    }

    .site-footer__plane {
        top: 10px;
        width: 76px;
    }

    .site-footer__brand img {
        height: 60px;
    }

    .site-footer__slogan {
        margin-top: 48px;
        margin-bottom: 44px;
    }

    .site-footer__slogan img {
        width: 360px;
        max-width: 80vw;
    }

    .site-footer__qrcodes {
        gap: 48px;
    }

    .site-footer__qrcode-item img {
        width: 112px;
        height: 112px;
        margin-bottom: 10px;
        padding: 8px;
        border-radius: 8px;
    }

    .site-footer__qrcode-item p {
        font-size: 14px;
    }

    .site-footer {
        --footer-line-gap: 56px;
    }

    .site-footer__copyright {
        padding-bottom: 32px;
    }

    .site-footer__line {
        font-size: 14px;
        line-height: 22px;
    }

    .site-footer__line + .site-footer__line {
        margin-top: 8px;
    }
}

@media (max-width: 1280px) {
    .site-footer__plane {
        right: 10%;
        width: 88px;
    }
}

@media (max-width: 768px) {
    .site-footer,
    body.page-list .site-footer,
    body.page-detail .site-footer {
        min-height: 0;
        height: auto;
    }

    .site-footer.snap-section {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .site-footer__container,
    body.page-list .site-footer__container,
    body.page-detail .site-footer__container {
        min-height: 0;
        justify-content: flex-start;
        padding-bottom: 0;
    }

    .site-footer__main {
        padding-top: 48px;
        margin-top: 0;
    }

    .site-footer__plane {
        top: 24px;
        right: 6%;
        width: 56px;
    }

    .site-footer__brand img {
        height: 52px;
    }

    .site-footer__slogan {
        margin-top: 28px;
        margin-bottom: 32px;
    }

    .site-footer__slogan img {
        width: 280px;
    }

    /* 三个二维码始终单行 */
    .site-footer__qrcodes {
        flex-wrap: nowrap;
        justify-content: center;
        align-items: flex-start;
        gap: clamp(10px, 3.2vw, 20px);
        width: 100%;
        max-width: 100%;
        padding: 0 12px;
        box-sizing: border-box;
    }

    .site-footer__qrcode-item {
        flex: 1 1 0;
        min-width: 0;
        max-width: 112px;
    }

    .site-footer__qrcode-item img {
        width: 100%;
        max-width: 96px;
        height: auto;
        aspect-ratio: 1;
        padding: 6px;
        border-radius: 10px;
        margin-bottom: 8px;
    }

    .site-footer__qrcode-item p {
        font-size: 12px;
        line-height: 1.35;
    }

    .site-footer {
        --footer-line-gap: 18px;
    }

    .site-footer__divider-wrap {
        margin-top: 22px;
        padding: 0 16px;
    }

    .site-footer__divider {
        opacity: 0.55;
        box-shadow: none;
    }

    .site-footer__copyright {
        padding-bottom: 36px;
    }

    .site-footer__copyright-inner {
        margin-top: 14px;
        padding: 0 16px;
    }

    .site-footer__line {
        font-size: 12px;
        line-height: 1.65;
        color: rgba(255, 255, 255, 0.92);
    }

    .site-footer__line + .site-footer__line {
        margin-top: 10px;
    }

    .site-footer__sep {
        display: none;
    }

    .site-footer__line span {
        display: inline;
    }

    /* 手机端：项与项之间用单个英文句点分隔 */
    .site-footer__line--contact span + span::before,
    .site-footer__line--meta span + span::before,
    .site-footer__line--links span + span::before {
        content: "·";
        margin: 0 0.35em;
        opacity: 0.8;
    }

    .site-footer__line--contact {
        white-space: normal;
    }

    .site-footer__line--links {
        line-height: 1.7;
    }
}

/* 桌面端：项之间用间距分隔（不用句点） */
@media (min-width: 769px) {
    .site-footer__line--contact span + span::before,
    .site-footer__line--meta span + span::before,
    .site-footer__line--links span + span::before {
        content: none;
        margin: 0;
    }

    .site-footer__line--contact span + span,
    .site-footer__line--meta span + span,
    .site-footer__line--links span + span {
        margin-left: 40px;
    }
}

@media (max-width: 380px) {
    .site-footer__qrcode-item {
        max-width: 100px;
    }

    .site-footer__qrcode-item img {
        max-width: 84px;
        padding: 5px;
    }

    .site-footer__qrcode-item p {
        font-size: 11px;
    }
}
