/* Shared header only: contact's 10.5px increased by 15%. */
.mobile-nav-backdrop { display:none; }
@media(max-width:980px) {
 body header.subpage-header { backdrop-filter:none; -webkit-backdrop-filter:none; }
 body header .subpage-nav {
   position:fixed;inset:0 0 0 auto;width:80vw;max-width:360px;height:100dvh;
   display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
   padding:90px 24px 28px;background:rgb(255 255 255 / .7);color:#152a30;overflow-y:auto;
   backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
   z-index:2;visibility:hidden;transform:translateX(100%);pointer-events:none;
   transition:transform 260ms ease-out,visibility 260ms;
 }
 body header .subpage-nav.is-open {visibility:visible;transform:translateX(0);pointer-events:auto;}
 body header .subpage-nav>a {font-size:17px!important;padding:18px 0;line-height:1.5;}
 body header .subpage-nav .contact-languages {margin-top:auto;padding-top:28px;font-size:16px!important;}
 body header .subpage-menu-toggle {z-index:3;position:relative;}
 .mobile-nav-backdrop {display:block;position:fixed;inset:0;background:rgb(0 0 0 / .4);z-index:1;opacity:0;visibility:hidden;transition:opacity 260ms ease-out,visibility 260ms;}
 body.subpage-menu-open .mobile-nav-backdrop {opacity:1;visibility:visible;}
}
@media(prefers-reduced-motion:reduce) {
 body header .subpage-nav,.mobile-nav-backdrop {transition:none;}
}
body header .subpage-logo img { width:clamp(170px,16vw,220px); height:auto; }
@media(max-width:800px) {
 body:not(.home-page) header .subpage-logo img { width:79px; }
}
header .subpage-nav, header .subpage-nav > a,
.home-page header .nav-links, .home-page header .nav-links > a { font-size:12.075px !important; }
header .contact-languages { display:flex; align-items:center; gap:10px; white-space:nowrap; font-size:12.075px; }
header .contact-languages button { padding:12px 2px; border:0; background:none; font:inherit; color:inherit; }
header .contact-languages button:disabled { color:inherit; opacity:.6; cursor:not-allowed; }
header .contact-languages > span[aria-hidden] { opacity:.45; }
header .contact-languages [aria-current] { font-weight:500; }
@media(max-width:980px) {
 header .subpage-nav > a, header .subpage-nav .contact-languages { font-size:16.1px; }
 header .subpage-nav .contact-languages { margin-top:26px; justify-self:start; }
}
@media(max-width:800px) {
 .home-page header .nav-links, .home-page header .nav-links > a,
 .home-page header .contact-languages { font-size:16.1px !important; }
}

.mobile-language-picker { display:none; }
@media(max-width:760px) {
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .has-mobile-picker > a,
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .has-mobile-picker > span { display:none; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-picker { display:block; position:relative; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-picker summary {
   cursor:pointer; list-style:none; padding:10px 4px; white-space:nowrap;
 }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-picker summary::-webkit-details-marker { display:none; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-picker summary::after { content:' ▾'; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-options {
   position:absolute; top:100%; right:0; min-width:64px; background:#fff; color:#111315;
   border:1px solid #d8dddd; box-shadow:0 6px 16px #00000012;
 }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-options a { display:block; padding:14px 18px; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-options a:hover,
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page header .mobile-language-options a:focus-visible { background:#eef5f3; }
}

/* Chinese mobile: compact header with an independent language picker. */
@media(max-width:760px) {
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header {
   height:60px; min-height:60px; flex-wrap:nowrap; gap:12px; padding:0 20px;
   background:transparent; color:#fff;
 }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .header-logo { width:79px; height:38px; flex:none; margin-right:auto; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .logo-white { opacity:1; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .logo-color { opacity:0; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header.scrolled { background:rgb(255 255 255 / .25); color:#111315; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header.scrolled .logo-white { opacity:0; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header.scrolled .logo-color { opacity:1; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .menu-toggle { display:grid; width:44px; height:44px; justify-content:center; color:inherit; cursor:pointer; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header > .mobile-language-picker { font:500 13px "Noto Sans SC",sans-serif; z-index:3; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .mobile-language-picker summary { min-height:44px; display:flex; align-items:center; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .nav-links {
   position:absolute; inset:60px 0 auto; display:flex; flex-direction:column;
   flex-wrap:nowrap; align-items:stretch; justify-content:flex-start; gap:0;
   padding:12px 20px 20px; background:#fff; color:#111315; visibility:hidden; opacity:0;
   transform:none; pointer-events:none; max-height:calc(100dvh - 60px); overflow-y:auto;
   box-shadow:0 12px 20px #0000000d; font-family:"Noto Sans SC",sans-serif;
 }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .nav-links.open { visibility:visible; opacity:1; pointer-events:auto; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .nav-links > a {
   padding:15px 4px; border:0; border-radius:0; white-space:nowrap; font-size:16px !important;
 }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .nav-links > a[aria-current] { color:#008d80; }
 html:is(:lang(zh), :lang(en), :lang(ja)) .home-page .site-header .contact-languages { display:none; }
}
