/* Shared typography: load after page styles. Content and locale logic stay local. */
:root {
  --font-display: "Avenir Next", "Segoe UI", "Microsoft YaHei", sans-serif;
  --font-body: "Avenir Next", "Segoe UI", "Microsoft YaHei", sans-serif;
  --type-small: 13px;
  --type-copy: 15px;
  --type-body: 16px;
  --type-card: 20px;
  --type-section: clamp(28px, 2.7vw, 40px);
  --type-title: clamp(34px, 3.8vw, 56px);
  --page-gutter: clamp(20px, 3vw, 48px);
}
body {font-family:var(--font-body);font-size:var(--type-body);line-height:1.6;-webkit-font-smoothing:antialiased}
body .container, body .wrap {width:min(1280px,calc(100% - var(--page-gutter) * 2));margin-inline:auto}
h1,h2,h3,h4 {font-family:var(--font-display);font-weight:600;text-wrap:pretty;overflow-wrap:break-word}
h1 {font-size:var(--type-title);line-height:1.15;letter-spacing:-.025em}
h2 {font-size:var(--type-section);line-height:1.22;letter-spacing:-.02em}
h3 {font-size:var(--type-card);line-height:1.35;letter-spacing:-.01em}
p,dd,li {overflow-wrap:break-word}
p {text-wrap:pretty}
button,input,select,textarea {font-family:var(--font-body)}
/* Header: identical type across the home and inner pages. */
.site-header .brand,.top .brand {font-family:var(--font-display);font-size:16px;line-height:1.4;font-weight:600;letter-spacing:.02em}
.top .brand b {width:36px;height:36px;flex:0 0 36px;border-radius:6px;font-size:0;background:#19232a url("sield-mark.svg") center/cover no-repeat}
.site-header .nav-link,.top .nav {font-family:var(--font-body);font-size:13px;font-weight:600;line-height:1.5;letter-spacing:.02em}
html:lang(ru) .top .nav,html:lang(es) .top .nav,html:lang(ru) .nav-link,html:lang(es) .nav-link {font-size:13px}
.top .nav {flex-wrap:wrap;gap:8px 20px}
.top .nav a {overflow-wrap:normal}
.language-button,.top .locale select {font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:.02em}
.btn,.button,.top .quote {font-size:13px;font-weight:600;line-height:1.45;letter-spacing:.06em;min-height:46px;text-align:center;white-space:normal}
.eyebrow,.kicker,.m-hero .eyebrow {font-size:12px;line-height:1.5;letter-spacing:.08em;font-weight:600}
/* Homepage: one clear heading scale, aligned copy and card actions. */
.hero h1 {font-size:clamp(36px,4.6vw,64px);line-height:1.14;max-width:900px;letter-spacing:-.025em}
html:lang(ru) .hero h1,html:lang(es) .hero h1 {font-size:clamp(34px,4.2vw,58px);line-height:1.18;max-width:960px}
.hero .desc {font-size:17px;line-height:1.65;max-width:62ch;margin-top:24px}
.hero-meta strong {font-size:16px;line-height:1.4;letter-spacing:0}
.hero-meta span {font-size:14px;line-height:1.6;display:block;margin-top:6px}
.section {padding-block:clamp(56px,6vw,88px)}
.section-head {align-items:start;gap:24px 48px;margin-bottom:32px}
.section-head h2,.split-content h2,.mission-copy h2,.company-copy h2,.final-cta h2,.contact-box h2 {font-size:var(--type-section);line-height:1.22}
.section-head p,.split-content p,.mission-copy p,.company-copy p,.final-cta p {font-size:16px;line-height:1.65;max-width:62ch}
.category-body {padding:20px;min-height:240px}
.category-body h3 {font-size:18px;line-height:1.4;min-height:2.8em;letter-spacing:0}
.category-body p,.step p,.resource-card p,.trust-card p,.byline {font-size:14px;line-height:1.65}
.category-body .arrow {padding-top:20px;font-size:13px;line-height:1.5}
.feature-card h3,.trust-card h3,.resource-card h3 {font-size:20px;line-height:1.35}
.feature-card p {font-size:15px;line-height:1.65}
.trust-card {align-items:start}
.testimonial-copy {display:flex;flex-direction:column;flex:1}
.testimonial-copy .quote {font-size:20px;line-height:1.45;letter-spacing:-.01em}
.testimonial-copy .byline {margin-top:16px}
.testimonial-copy .card-link {margin-top:auto;padding-top:24px}
.step h3 {font-size:16px;line-height:1.4;min-height:2.8em}
.company-stats dd {font-size:clamp(32px,3.4vw,44px)}
.company-stats dt {font-size:14px;line-height:1.6}
.contact-grid label {font-size:13px;line-height:1.5;font-weight:600}
.contact-grid input,.contact-grid select,.contact-grid textarea {font-size:16px;line-height:1.5}
/* Product browsing: compact hierarchy, consistent baselines and numeric columns. */
.intro h1,.category-hero h1,.model-intro h1,.m-hero h1 {font-size:var(--type-title);line-height:1.16;letter-spacing:-.025em}
.intro p,.category-hero p,.model-intro p,.m-intro {font-size:16px;line-height:1.65;max-width:62ch}
.intro {align-items:start;gap:32px}
.family h2 {font-size:28px;line-height:1.25;margin-block:12px 24px}
.family-body {padding:28px}
.toolbar {align-items:baseline;gap:16px 24px}
.toolbar h2 {font-size:24px;line-height:1.3}
.type-card h3 {font-size:20px;line-height:1.35;hyphens:auto}
.type-card p {font-size:14px;line-height:1.65;margin-block:12px 20px}
.model-copy h2 {font-size:22px;line-height:1.35;min-height:2.7em;overflow-wrap:anywhere}
.model-specs div {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:baseline}
.model-specs {font-size:14px;line-height:1.6}
.model-specs dd {overflow-wrap:anywhere}
.filters h2 {font-size:20px;line-height:1.35}
.filter-choice,.model-types a {font-size:14px;line-height:1.5;overflow-wrap:break-word;hyphens:auto}
.crumbs,.toolbar small,.number {font-size:13px;line-height:1.5}
.pd-summary h1 {font-size:var(--type-title);line-height:1.2}
.pd-summary h2 {font-size:20px;line-height:1.5}
.pd-section h2 {font-size:24px;line-height:1.35}
.pd-section p,.pd-data>div {font-size:15px;line-height:1.65}
.pd-thumb {font-size:12px;line-height:1.4;padding:10px 6px;overflow-wrap:break-word;hyphens:auto}
.pd-caption,.pd-footnote,.model-source {font-size:13px;line-height:1.6}
/* Manufacturing: readable deliverables, common left edges, relaxed density. */
.m-copy .m-lead {font-size:clamp(24px,2.2vw,30px);line-height:1.3;letter-spacing:-.015em;margin-bottom:16px}
.m-copy>p {font-size:15px;line-height:1.7;margin-bottom:24px}
.m-step-label {gap:12px;align-items:baseline}
.m-step-label h2 {font-size:14px;line-height:1.5;letter-spacing:0}
.m-copy dl {grid-template-columns:1fr;gap:16px}
.m-copy dl>div {display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px}
.m-copy dt {font-size:13px;line-height:1.6;font-weight:600;margin:0}
.m-copy dd {font-size:14px;line-height:1.65}
.m-team strong {font-size:32px;letter-spacing:-.02em}
.m-team span,.m-index a {font-size:14px;line-height:1.5}
.m-closing h2,.project-band h2 {font-size:var(--type-section);line-height:1.25}
.m-closing p {font-size:16px;line-height:1.65}
/* Language-aware typography; no truncation or hidden translations. */
html:lang(zh) body {line-height:1.75}
html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) h3,html:lang(zh) .m-lead {letter-spacing:0;line-height:1.4}
html:lang(zh) .btn,html:lang(zh) .button,html:lang(zh) .nav-link,html:lang(zh) .top .nav {letter-spacing:.02em}
html:lang(ru) .m-copy dl>div,html:lang(es) .m-copy dl>div {grid-template-columns:1fr;gap:4px}
html:lang(ru) .category-body h3,html:lang(es) .category-body h3 {hyphens:auto}
@media(min-width:601px) and (max-width:1100px) {
  .timeline {grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1180px) {
  .top-inner {flex-wrap:wrap;padding-block:16px;gap:16px}
  .top .nav {order:3;width:100%;margin:0;justify-content:flex-start;gap:8px 24px}
  .top .locale {margin-left:auto}
  .top .nav .secondary {display:block}
}
@media(max-width:760px) {
  .section-head {gap:20px;margin-bottom:28px}
  .category-body h3,.model-copy h2,.step h3 {min-height:0}
  .pd-thumbs {grid-template-columns:repeat(3,minmax(0,1fr))}
  .pd-thumb {font-size:12px;min-height:84px}
  .pd-section {gap:20px}
  .hero .desc {font-size:16px}
  .m-hero .button,.m-closing .button {white-space:normal}
}
@media(max-width:600px) {
  .top .nav {gap:4px 18px}
  .top .nav a {min-height:44px;display:flex;align-items:center}
  .category-body {min-height:0;padding:20px}
  .category-body .arrow {margin-top:20px}
  .m-copy dl>div {grid-template-columns:1fr;gap:4px}
  .m-team>div {align-items:start}
  .m-team span {font-size:13px}
  .type-card h3 {font-size:20px}
  .family-body {padding:24px}
  .pd-data>div {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
}
