.footer { width: calc(100% - 32px); margin: 32px auto 0; padding: 30px 2px 25px; color: var(--muted); font-size: 13px; }
.footer p { margin: 0; }
.footer-main { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; padding: 0 2.5% 36px; }
.footer-brand { width: 140px; }
.footer-brand img { display: block; width: 100%; height: auto; }
.footer nav { display: flex; gap: clamp(60px,7vw,140px); }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.footer-column h2 { margin: 0 0 7px; font-size: 15px; color: var(--ink); }
.footer button { padding: 0; border: 0; background: transparent; font-size: inherit; color: var(--muted); }
.footer a { color: var(--muted); text-decoration: none; }
.footer button:hover,.footer a:hover { color: var(--ink); }
.footer-bottom { border-top: 1px solid var(--border); padding-top: 20px; display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; font-size: 11px; }
dialog { width: min(440px,calc(100vw - 40px)); padding: 32px; border: 2px solid var(--control-border,var(--border)); border-radius: 10px; background: var(--paper); color: var(--ink); box-shadow: var(--panel-shadow,none); }
dialog::backdrop { background: rgba(0,0,0,.35); }
dialog h2 { font-size: 22px; }
dialog p { color: var(--muted); font-size: 14px; line-height: 1.8; }
.dialog-close { position: absolute; right: 16px; top: 12px; border: 0; background: transparent; font-size: 25px; }
.footer-identity { display: grid; gap: 16px; }
.footer-contacts { display: flex; gap: 18px; align-items: center; }
.contact-icon { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; padding: 4px; background: transparent; color: var(--muted); border-radius: 6px; }
.contact-icon svg { width: 23px; height: 23px; fill: currentColor; stroke: none; }
.contact-icon:hover { color: var(--ink); }
.wechat-contact { position: relative; }
.wechat-popover { position: absolute; left: 0; bottom: calc(100% + 10px); padding: 12px; width: min(244px,calc(100svh - 60px)); border: 1px solid var(--border); border-radius: 10px; background: #fff; color: #24201b; box-shadow: 0 6px 22px rgba(0,0,0,.16); z-index: 9; text-align: center; }
.wechat-popover::after { content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 12px; }
.wechat-popover img { display: block; width: min(220px,calc(100svh - 84px)); height: auto; margin: 0 auto; }
.wechat-popover p { margin: 8px 0 0; font-size: 12px; }
.reading-dialog { width: min(760px,calc(100vw - 32px)); max-height: 85svh; overflow: hidden; padding: 32px; }
.reading-dialog #dialog-copy { max-height: calc(85svh - 132px); overflow-y: auto; overscroll-behavior: contain; }
.reading-dialog h2 { padding-right: 28px; }
.reading-dialog h3 { font-size: 17px; margin: 24px 0 10px; line-height: 1.5; }
.reading-dialog h4 { font-size: 15px; margin: 20px 0 8px; }
.reading-dialog p,.reading-dialog li { color: var(--ink); font-size: 14px; line-height: 1.9; }
.reading-dialog a { color: var(--accent); }
.reading-dialog ul,.reading-dialog ol { padding-left: 22px; }
.reading-dialog li + li { margin-top: 8px; }
.reading-dialog section + section { border-top: 1px solid var(--border); margin-top: 24px; padding-top: 4px; }
#home-dialog .entry[hidden] { display: none; }
@media(max-width:959px) { .reading-dialog { padding: 24px 20px; } }

.footer { --ink:#24201b; --muted:#797064; --border:#e6dfd4; }
[data-theme=dark] .footer { --ink:#fff9f0; --muted:#bcb3a8; --border:#453d35; }
.footer-brand { display:block; }
[data-theme=dark] .footer-brand img { filter:invert(.97) sepia(.12); }
.footer-column a { font-size:13px; line-height:1.7; }

.filing { display: flex; justify-content: flex-end; gap: 20px; flex-wrap: wrap; }
.filing a { color: var(--muted); text-decoration: none; }
.filing a:hover { color: var(--ink); }
.dialog-close { background: rgba(var(--glass),.1); border-radius: 6px; }
.footer { line-height:normal; }
.footer-main .footer-brand img { aspect-ratio:450/200; }

@media(max-width:959px) { .footer-main { flex-wrap:wrap; gap:30px; } .footer nav { gap:50px; } .filing { justify-content:flex-start; } }
