/* ExecWing i18n (Nov 10, 2026): language switcher, per-script fonts, RTL helpers. Loaded on every page. */
.langsw{position:relative;margin-left:8px;flex:none}
.langsw>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid var(--line,#E1E8ED);border-radius:10px;padding:8px 10px;font-weight:600;font-size:.88rem;line-height:1;color:inherit;background:#fff;user-select:none}
.langsw>summary::-webkit-details-marker{display:none}
.langsw>summary:hover,.langsw[open]>summary{background:var(--bg-2,#EEF4F7)}
.langsw>summary:focus-visible{outline:2px solid var(--blue,#196DB5);outline-offset:2px}
.langsw-list{position:absolute;top:calc(100% + 8px);right:0;z-index:70;min-width:200px;list-style:none;margin:0;padding:6px;background:#fff;border:1px solid var(--line,#E1E8ED);border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.14)}
.langsw-list a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink,#2E3338);text-decoration:none;font-size:.95rem;line-height:1.3}
.langsw-list a:hover,.langsw-list a:focus-visible{background:var(--bg-2,#EEF4F7);outline:none;color:var(--blue-d,#145A96)}
.langsw-list a[aria-current=page]{font-weight:700;color:var(--blue-d,#145A96)}
.langsw-list a[aria-current=page]::after{content:" ✓"}
[dir=rtl] .langsw{margin-left:0;margin-right:8px}
[dir=rtl] .langsw-list{right:auto;left:0}
.langsw-list a[dir=rtl]{text-align:right}
@media(max-width:960px){.langsw{margin-left:6px}.langsw>summary{padding:8px}.langsw-list{position:fixed;top:78px;right:12px;left:auto}[dir=rtl] .langsw-list{left:12px;right:auto}}
.i18n-note{background:var(--bg-2,#EEF4F7);border-bottom:1px solid var(--line,#E1E8ED);font-size:.88rem;padding:8px 0;color:var(--ink-2,#4A5158)}
.i18n-note.legal{background:#FFF8E6}
.i18n-note a{color:var(--blue-d,#145A96)}
/* Fonts per script. System fonts first; Noto as the open fallback. Urdu uses self-hosted Noto Nastaliq Urdu (OFL). */
@font-face{font-family:"EW Nastaliq";src:url(/assets/noto-nastaliq-urdu.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F,U+2010-2011,U+204F,U+2E41}
html:lang(zh-Hans) body,html:lang(zh-Hans) button,html:lang(zh-Hans) input,html:lang(zh-Hans) select,html:lang(zh-Hans) textarea{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Noto Sans CJK SC","Source Han Sans SC",system-ui,sans-serif}
html:lang(hi) body,html:lang(hi) button,html:lang(hi) input,html:lang(hi) select,html:lang(hi) textarea{font-family:"Noto Sans Devanagari","Nirmala UI","Kohinoor Devanagari","Mangal",system-ui,sans-serif;line-height:1.7}
html:lang(ar) body,html:lang(ar) button,html:lang(ar) input,html:lang(ar) select,html:lang(ar) textarea{font-family:"Noto Naskh Arabic","Noto Sans Arabic","Segoe UI","Geeza Pro","Tahoma",system-ui,sans-serif;line-height:1.75}
html:lang(ur) body,html:lang(ur) button,html:lang(ur) input,html:lang(ur) select,html:lang(ur) textarea{font-family:"EW Nastaliq","Noto Nastaliq Urdu","Jameel Noori Nastaleeq","Urdu Typesetting","Noto Naskh Arabic",serif;line-height:2.1}
html:lang(ur) h1,html:lang(ur) h2,html:lang(ur) h3{line-height:1.9}
html:lang(zh-Hans) .eyebrow,html:lang(hi) .eyebrow,html:lang(ar) .eyebrow,html:lang(ur) .eyebrow,html:lang(zh-Hans) .mega .mh,html:lang(ar) .mega .mh,html:lang(ur) .mega .mh,html:lang(hi) .mega .mh{letter-spacing:0;text-transform:none}
[dir=rtl] .hsearch kbd{right:auto;left:8px}
[dir=rtl] .crumbs ol,[dir=rtl] .ctas{direction:rtl}
/* keep Latin-only tokens (phone, email, URLs) left-to-right inside RTL text */
[dir=rtl] a[href^="tel:"],[dir=rtl] a[href^="mailto:"]{direction:ltr;unicode-bidi:isolate}
/* longer labels in translated menus */
@media(min-width:961px){html:not([lang=en]) .menu>li>a,html:not([lang=en]) .menu>li>button{font-size:.9rem;padding-left:8px;padding-right:8px}}
/* translated labels are longer: tighten the desktop header; if it still does not fit, i18n.js adds .ew-tight (search collapses to its icon button) */
@media(min-width:961px) and (max-width:1480px){html:not([lang=en]) .hdr{gap:12px}html:not([lang=en]) .hsearch{min-width:110px;flex-basis:170px}html:not([lang=en]) .hdr .btn.sm{padding:9px 13px}}
@media(min-width:961px){.hdr.ew-tight .hsearch{display:none}.hdr.ew-tight .hs-toggle{display:inline-flex}.hdr.ew-tight .menu>li>a,.hdr.ew-tight .menu>li>button{padding-left:6px;padding-right:6px;white-space:nowrap}}
html:not([lang=en]) .hdr>.brand{flex:none}html:not([lang=en]) .hdr>.brand img{max-width:none}
@media(min-width:961px){.hdr.ew-tighter{gap:6px}.hdr.ew-tighter .menu>li>a,.hdr.ew-tighter .menu>li>button{font-size:.84rem;padding-left:5px;padding-right:5px}.hdr.ew-tighter .btn.sm{padding:8px 10px;font-size:.84rem}.hdr.ew-tighter .langsw-cur{display:none}.hdr.ew-tighter .brand img{height:44px!important}}

/* Nov 11, 2026: mobile header overflow on zh/ur (lang switcher + search toggle) */
@media(max-width:960px){
  .hdr{gap:8px}
  .hs-toggle{margin-left:0;margin-inline-start:0}
  html:not([lang=en]) .hdr>.brand img{height:36px!important;width:auto;max-width:none}
  .langsw-cur{padding-left:8px;padding-right:8px}
  .skip{inset-inline-start:-999px;left:auto;right:auto}
}
