/* Shared typography and clearly labelled contact controls. */
:root{--interface-font:"Helvetica Neue",Helvetica,Arial,"PingFang TC","Microsoft JhengHei",sans-serif}
body{font-family:var(--interface-font);font-weight:400}
:root:lang(zh-Hans){--interface-font:"Helvetica Neue",Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif}
body:is(:lang(zh-Hant),:lang(zh-Hans)){font-family:var(--interface-font)}
.section h2,.contact h2{font-family:inherit;font-size:clamp(26px,2.4vw,32px);font-weight:500;line-height:1.3;letter-spacing:-.015em;margin-bottom:28px}
body:is(:lang(zh-Hant),:lang(zh-Hans)) :is(.section h2,.contact h2){letter-spacing:.025em;line-height:1.45}
.navigation-picker .primary-nav a,.floating-navigation .primary-nav a{font-family:inherit;font-size:16px;font-weight:400;line-height:1.5;letter-spacing:.01em;min-height:48px;opacity:1}
.partners .partners-list{margin-top:8px;gap:0 32px}
.partners .partners-list li{font-family:inherit;font-size:17px;font-weight:400;line-height:1.65;letter-spacing:.01em;padding:20px 0;border-top:1px solid var(--line);color:var(--ink)}
.contact .email{font-family:inherit;font-size:18px;font-weight:400;line-height:1.6;letter-spacing:0;color:var(--ink);opacity:1;padding:8px 0;overflow-wrap:anywhere;text-decoration-thickness:1px;text-underline-offset:6px}
.contact .email span{font-size:16px;margin-left:8px}
.contact .social-links{gap:12px;margin-top:24px;align-items:center}
:root[data-theme] .contact .social-links a,:root.reading-mode .contact .social-links a{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;width:auto;height:auto;min-width:48px;min-height:48px;padding:11px 16px;border:1px solid var(--line);border-radius:12px;color:var(--ink);opacity:1;box-shadow:none;filter:none;transform:none;font-family:inherit;font-size:16px;font-weight:400;line-height:1.5;letter-spacing:0;text-decoration:none;transition:border-color .2s,color .2s}
.contact .social-links a::before{display:none}
.contact .social-links a svg{width:22px;height:22px;flex:0 0 22px}
.contact .social-label{display:block}
:root[data-theme] .contact .social-links a[title]:is(:hover,:focus-visible,:active){color:var(--ink);border-color:currentColor;box-shadow:none;filter:none;transform:none;opacity:1}
:root[data-theme] :is(.contact .email,.contact .social-links a,.primary-nav a):focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:8px}
.contact .contact-bottom{margin-top:40px;font-family:inherit;font-size:15px;line-height:1.7;color:var(--ink)}
@media(max-width:650px){.section h2,.contact h2{font-size:26px;margin-bottom:24px}.partners .partners-list{gap:0}.partners .partners-list li{font-size:17px;padding:18px 0}.contact .social-links{gap:10px}.contact .email{font-size:17px}:root[data-theme] .contact .social-links a{padding:11px 14px}.contact .contact-bottom{margin-top:32px;font-size:14px}}
@media(prefers-reduced-motion:reduce){:root[data-theme] .contact .social-links a{transition:none}}

/* Larger icon-only social links retain each platform's coloured glow. */
:root[data-theme] .contact .social-links a,:root.reading-mode .contact .social-links a{justify-content:center;gap:0;width:56px;height:56px;min-width:56px;min-height:56px;padding:12px;border-radius:16px;transition:color .25s,border-color .25s,box-shadow .25s,filter .25s,transform .25s}
.contact .social-label{display:none}
.contact .social-links a svg{width:30px;height:30px;flex:0 0 30px}
:root[data-theme] .contact .social-links a[title]:is(:hover,:focus-visible,:active){color:var(--social-ink);border-color:var(--social-light);box-shadow:0 0 16px var(--social-glow),inset 0 0 10px var(--social-glow);filter:drop-shadow(0 0 4px var(--social-glow));transform:translateY(-2px);opacity:1}
:root:is([data-theme="dark"],[data-theme="twilight"]) .contact .social-links a[title]:is(:hover,:focus-visible,:active){color:var(--social-light)}
@media(prefers-reduced-motion:reduce){:root[data-theme] .contact .social-links a{transition:none}:root[data-theme] .contact .social-links a[title]:is(:hover,:focus-visible,:active){transform:none}}

/* Quiet partner list: whitespace replaces repeated rules. */
.partners .partners-list li{border:0;padding:16px 0}
@media(max-width:650px){.partners .partners-list li{padding:15px 0}}
