/* Footer 模块 - 所有 footer 变体共用的基础样式 */
.mod-footer { background: var(--dark, #111); color: rgba(255,255,255,.85); margin-top: 40px; }
.mod-footer__inner { max-width: 1100px; margin: 0 auto; padding: 50px 24px 30px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 32px; }
.mod-footer__col h4 { color: #fff; font-size: 15px; margin: 0 0 16px; }
.mod-footer__col a { display: block; color: rgba(255,255,255,.7); text-decoration: none; font-size: 14px; margin-bottom: 10px; transition: color var(--animation-duration, .2s); }
.mod-footer__col a:hover { color: var(--primary, #2563eb); }
.mod-footer__col p { font-size: 14px; color: rgba(255,255,255,.7); margin: 0 0 10px; }
.mod-footer__social { display: flex; gap: 14px; }
.mod-footer__social a { display: inline-flex; margin: 0; color: rgba(255,255,255,.7); }
.mod-footer__social a:hover { color: var(--primary, #2563eb); }
.mod-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 20px 24px; text-align: center; font-size: 13px; color: rgba(255,255,255,.5); }
.mod-footer__legal { margin-bottom: 8px; }
.mod-footer__legal a { color: rgba(255,255,255,.6); text-decoration: none; }
.mod-footer__legal a:hover { color: var(--primary, #2563eb); }
.mod-footer__legal span { margin: 0 8px; color: rgba(255,255,255,.3); }
@media (max-width: 600px) { .mod-footer__inner { grid-template-columns: 1fr 1fr; gap: 24px; } }

/* ===== footer02: 单行极简版 ===== */
.mod-footer--v2 .mod-footer__minimal-inner { max-width: 1000px; margin: 0 auto; padding: calc(var(--spacing-unit, 8px) * 4) 24px; text-align: center; }
.mod-footer__minimal-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: calc(var(--spacing-unit, 8px) * 2.5); margin-bottom: 14px; }
.mod-footer__minimal-nav a { color: rgba(255,255,255,.8); text-decoration: none; font-size: 14px; }
.mod-footer__minimal-legal { margin-bottom: 12px; }
.mod-footer__minimal-legal a { color: rgba(255,255,255,.6); text-decoration: none; font-size: 13px; margin: 0 10px; }
.mod-footer__minimal-copyright { font-size: 12px; color: rgba(255,255,255,.5); margin: 0; }

/* ===== footer03: 品牌横幅+三栏版 ===== */
.mod-footer--v3 .mod-footer__banner-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: calc(var(--spacing-unit, 8px) * 2); max-width: 1100px; margin: 0 auto; padding: calc(var(--spacing-unit, 8px) * 3) 24px; border-bottom: 1px solid rgba(255,255,255,.1); }
.mod-footer__banner-contact { display: flex; gap: calc(var(--spacing-unit, 8px) * 3); flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.7); }
.mod-footer__banner-social { display: flex; gap: 14px; }
.mod-footer__banner-social a { color: rgba(255,255,255,.7); }
.mod-footer__banner-social a:hover { color: var(--color-primary, var(--primary, #2563eb)); }
.mod-footer__banner-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 32px; max-width: 1100px; margin: 0 auto; padding: calc(var(--spacing-unit, 8px) * 4) 24px; }
.mod-footer__banner-col h4 { color: #fff; font-size: 15px; margin: 0 0 16px; }
.mod-footer__banner-col a { display: block; color: rgba(255,255,255,.7); text-decoration: none; font-size: 14px; margin-bottom: 10px; }
.mod-footer__banner-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 20px 24px; text-align: center; font-size: 13px; color: rgba(255,255,255,.5); }
.mod-footer__banner-legal a { color: rgba(255,255,255,.6); text-decoration: none; }
.mod-footer__banner-legal span { margin: 0 8px; color: rgba(255,255,255,.3); }

/* ===== footer04: 居中堆叠版 ===== */
.mod-footer--v4 { text-align: center; padding: calc(var(--spacing-unit, 8px) * 4) 24px; }
.mod-footer__stack-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: calc(var(--spacing-unit, 8px) * 2.5); margin-bottom: 16px; }
.mod-footer__stack-nav a { color: rgba(255,255,255,.8); text-decoration: none; font-size: 14px; }
.mod-footer__stack-social { display: flex; justify-content: center; gap: 16px; margin-bottom: 16px; }
.mod-footer__stack-social a { color: rgba(255,255,255,.7); }
.mod-footer__stack-legal { margin-bottom: 10px; }
.mod-footer__stack-legal a { color: rgba(255,255,255,.6); text-decoration: none; font-size: 13px; }
.mod-footer__stack-legal span { margin: 0 8px; color: rgba(255,255,255,.3); }
.mod-footer__stack-copyright { font-size: 12px; color: rgba(255,255,255,.5); margin: 0; }
