/* Final typography layer. Load after every page-specific stylesheet.
   Chinese uses the full Simplified Chinese subset. English uses the supplied
   Lato family; the original logo and Arial brand wordmark are unchanged. */
:root{
 --site-font-zh:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
 --site-font-en:Lato,"Noto Sans SC","Helvetica Neue",Arial,sans-serif;
 --site-font:var(--site-font-zh);
 --site-heading-weight:500;
}
:root:lang(en){--site-font:var(--site-font-en);--site-heading-weight:400}
:root body{font-family:var(--site-font);font-kerning:normal;-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Several original page templates declare a family directly on main. */
:root body main{font-family:var(--site-font)!important}
:root body main :is(h1,h2,h3){font-family:inherit!important;font-weight:var(--site-heading-weight)!important}
:root body main :is(button,input,select,textarea){font-family:var(--site-font)!important}
:root body main :is(input,select,textarea){font-weight:400}

/* Intentional Latin treatments: product identifiers, addresses, and the
   existing English editorial signature. Real medium/semibold faces preserve
   the template's existing button, label and navigation weights. */
:root .sj-story-brand{font-family:Lato,"Noto Sans SC",sans-serif;font-weight:700;font-style:italic}
:root .sj-story-brand small{font-family:inherit;font-weight:400;font-style:italic}
:root body main :is(code,.pr-detail-model strong,.fi-feature-model){font-family:Lato,"Noto Sans SC",sans-serif;font-weight:400;font-variant-numeric:tabular-nums;hyphens:none}
:root body main a[href^="mailto:"],:root body main a[href^="tel:"]{font-family:Lato,"Noto Sans SC",sans-serif;font-weight:400;hyphens:none}
:root:lang(en) body main :is(.pr-table-head,.psc-table-head){font-weight:700}

/* Do not let flex's automatic minimum size squeeze a translated heading or
   product name out of its column. Technical model strings retain explicit
   wrap opportunities rather than language hyphenation. */
.sj-heading-row>h2,.sj-news-heading>h2,.pr-heading-row>div,.pr-heading-row>p,
.pr-detail-model strong,.pr-entry-title,.pr-related-title,
.fi-business-heading>span:last-child,.fi-company-profile-heading,
.psc-sector :is(.scope-heading,.section-heading)>div{min-width:0}
:root:lang(en) body main :is(h1,h2,h3){word-break:normal;overflow-wrap:break-word;hyphens:auto}
:root body main :is(code,.pr-detail-model,.fi-feature-model){white-space:normal;overflow-wrap:anywhere;word-break:normal;hyphens:none}
.pr-spec-table,.pr-comparison table,.psc-sector .sector-product-table{font-variant-numeric:tabular-nums}

/* Keep the label flexible and the explicit arrow intact. Brand spans and
   decorative technical images are deliberately outside these selectors. */
:root body main :is(.sj-link,.fi-line-button,.psc-sector .btn,.pr-inline-inquiry .btn,.pr-enquiry-panel .btn)>span[data-en]{min-width:0;overflow-wrap:break-word}
:root body main :is(.fi-line-button,.psc-sector .btn,.pr-inline-inquiry .btn,.pr-enquiry-panel .btn)>span[aria-hidden="true"]{flex-shrink:0}
.pr-photo-caption{flex-wrap:wrap;row-gap:5px}
.pr-photo-caption>*{min-width:0;max-width:100%}

@media(max-width:1024px){
 /* iOS zooms focused form controls below 16px. */
 .faithful-header .faithful-mobile-search input{font-size:16px}
 .faithful-search-field input{font-size:16px}
}
@media(max-width:767px){
 .pr-photo-caption small{white-space:normal}
 :root body main :is(.pr-inline-inquiry .btn,.pr-enquiry-panel .btn){max-width:100%;white-space:normal;gap:20px}
 .psc-contact #enquiry .form-actions>.btn{max-width:100%;white-space:normal}
 :root:lang(en) body main .sj-link>span:first-child{line-height:1.4}
 :root:lang(en) .sj-story-card-copy,:root:lang(en) .sj-project-copy{min-height:0}
}
