/* A shared reading scale: headlines, section headings, body, support and labels. */
:root {
  --type-hero: 64px;
  --type-page: 52px;
  --type-section: 36px;
  --type-subheading: 24px;
  --type-product: 28px;
  --type-body: 17px;
  --type-lead: 18px;
  --type-support: 14px;
  --type-label: 13px;
}
body { font-size: var(--type-body); }
h1,h2,h3 { font-weight: 700; letter-spacing: -.035em; }
.cinematic-hero h1 { font-size: var(--type-hero); line-height: 1.08; max-width: 600px; letter-spacing: -.045em; }
.page-intro h1,.page-about .page-intro h1,.page-contact .page-intro h1,.visual-intro h1 { font-size: var(--type-page); line-height: 1.12; letter-spacing: -.035em; }
.statement h2,.section-heading h2,.market-summary h2,.cta h2,.story-heading h2,.leader h2,#markets>h2 { font-size: var(--type-section); line-height: 1.2; }
.focus-grid h3,.criteria-grid h3,.role-grid h3,.markets h3 { font-size: var(--type-subheading); line-height: 1.3; }
.product-info h2,.product-info h3,.page-portfolio .product-info h2,.leader h3,.contact-person h2,.enquiry-panel h2 { font-size: var(--type-product); line-height: 1.25; }
.hero-subtitle { font-size: 26px; line-height: 1.4; margin-top: 18px; letter-spacing: -.02em; }
.lead,.cinematic-hero .lead,.page-intro .lead,.page-about .page-intro .lead,.visual-intro .lead { font-size: var(--type-lead); line-height: 1.7; }
.statement p:not(.section-marker),.section-heading p,.section-heading>p,.focus-grid p,.market-summary p,.story-heading p,.timeline p,.leader p,.criteria-grid p,.role-grid p,.markets p:last-child,.cta p,.enquiry-panel p,.page-portfolio .product-info p:not(.small-label) { font-size: var(--type-body); line-height: 1.75; }
.eyebrow,.section-marker,.statement .section-marker,.section-heading .eyebrow,.cinematic-hero .eyebrow,.page-intro .eyebrow,.visual-intro .eyebrow,.product-info .small-label,.markets .small-label,.page-portfolio .product-info .small-label { font-size: var(--type-label); line-height: 1.6; }
.footnote,.ecosystem .footnote,.enquiry-panel .footnote,.notice,.role,.leader .role,.footer-main p:not(.footer-name),.footer-contact>span,.positioning-rail span,.market-symbol small { font-size: var(--type-support); line-height: 1.7; }
.cinematic-hero .hero-foot,.hero-foot>span,.connection-art figcaption,.footer-bottom { font-size: var(--type-label); line-height: 1.6; }
.hero-foot p { font-size: inherit; }
.button,.text-link,.cinematic-hero .button,.cinematic-hero .text-link,.visual-intro .button,.cta .button,.product-info .text-link,.site-header nav,.site-header nav a,.menu-toggle,.footer-main nav,.footer-main nav a,.footer-contact,.footer-contact a,.footer-bottom a,.cinematic-hero .motion-toggle { font-size: var(--type-support); line-height: 1.5; }
.button,.menu-toggle,.motion-toggle,.nav-enquiry { font-weight: 400; }
.text-link { font-weight: 700; }
.enquiry-panel label,.contact-links>a>span { font-size: var(--type-support); line-height: 1.6; }
.enquiry-panel input,.enquiry-panel select,.enquiry-panel textarea { font-size: 16px; }
.contact-links strong { font-size: 22px; line-height: 1.4; }
.timeline .year { font-size: 28px; line-height: 1.3; }
.positioning-rail strong { font-size: 18px; }
.cinematic-hero { min-height: 620px; }
.hero-content { padding-top: 70px; padding-bottom: 74px; }
.cinematic-hero .eyebrow { margin-bottom: 26px; }
.hero-foot { padding-block: 18px; }
.hero-foot>span { margin-right: 160px; }
.cinematic-hero .motion-toggle { padding: 8px 15px; min-height: 40px; bottom: 10px; }
.positioning-rail .wrap>div { gap: 16px; }
.positioning-rail span { max-width: 170px; }
.statement { padding-block: 82px; }
.section { padding-block: 80px; }
.focus-section { padding-block: 68px; }
.section-heading { margin-bottom: 36px; gap: 72px; }
.section-heading>p,.section-heading>div+div { padding-top: 0; }
.focus-grid { gap: 36px; }
.focus-grid h3 { margin-bottom: 14px; }
.page-intro { padding-top: 64px; padding-bottom: 52px; }
.page-about .page-intro { align-items: start; }
.page-about .page-intro .lead { padding-top: 4px; }
.visual-intro-inner { padding-block: 56px; }
.connection-art { height:auto; display:flex; flex-direction:column; justify-content:center; gap:14px; }
.connection-art img { width:100%; height:auto; max-height:none; object-fit:contain; mix-blend-mode:normal; }
.connection-art figcaption { position:static; flex:none; text-align:center; }
.role-grid article,.role-grid article:first-child { padding-top: 30px; padding-bottom: 30px; }
.role-grid article>span { font-size: 26px; margin-bottom: 20px; }
.cta { padding-block: 62px; }
.cta-inner { gap: 50px; }
.cta h2 { max-width: 760px; }
.cta p { margin-top: 20px; }
.footer-main { gap: 60px; }
.footer-contact { gap: 16px; }
.footer-main p:not(.footer-name) { max-width: 305px; }
@media (max-width:1100px) {
  :root { --type-hero:56px; --type-page:48px; --type-section:34px; }
  .site-header nav { gap:20px; }
  .positioning-rail .wrap>div { display:block; padding-inline:24px; }
  .positioning-rail span { display:block; margin-top:4px; max-width:none; }
  .footer-main { gap:45px; }
}
@media (max-width:800px) {
  :root { --type-hero:48px; --type-page:44px; --type-section:32px; --type-subheading:22px; --type-body:16px; --type-product:26px; }
  .cinematic-hero { min-height:620px; }
  .hero-content { padding-top:66px; padding-bottom:64px; }
  .cinematic-hero h1 { max-width:470px; }
  .hero-subtitle { font-size:24px; }
  .cinematic-hero .lead { max-width:440px; }
  .hero-foot { gap:18px; }
  .hero-foot>span { margin-right:145px; }
  .positioning-rail .wrap>div { padding-inline:20px; }
  .statement { padding-block:64px; }
  .section { padding-block:64px; }
  .section-heading { gap:36px; }
  .focus-grid { gap:24px; }
  .focus-section { padding-block:56px; }
  .cta { padding-block:56px; }
  .footer-main { gap:35px 45px; }
  .footer-main nav { gap:14px; }
  .footer-contact { gap:12px; }
  .contact-links strong { font-size:20px; }
}
@media (max-width:600px) {
  :root { --type-hero:40px; --type-page:38px; --type-section:28px; --type-subheading:22px; --type-product:26px; --type-lead:17px; }
  .cinematic-hero { min-height:0; }
  .hero-content { padding-top:42px; padding-bottom:258px; }
  .cinematic-hero h1 { max-width:350px; }
  .hero-subtitle { font-size:22px; }
  .cinematic-hero .eyebrow { margin-bottom:22px; }
  .cinematic-hero .lead { margin-top:22px; }
  .cinematic-hero .actions { gap:15px; margin-top:26px; }
  .cinematic-hero .hero-visual { bottom:80px; height:420px; }
  .hero-foot { display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding-block:15px; }
  .hero-foot>span { margin-right:0; text-align:left; }
  .cinematic-hero .motion-toggle { bottom:7px; right:20px; }
  .positioning-rail span { margin:0; }
  .positioning-rail .wrap>div,.positioning-rail .wrap>div:first-child { gap:18px; }
  .positioning-rail strong { font-size:17px; }
  .statement,.section { padding-block:48px; }
  .statement .section-marker { margin-bottom:18px; }
  .statement p:not(.section-marker) { margin-top:20px; }
  .focus-section { padding-block:48px; }
  .section-heading { margin-bottom:28px; }
  .section-heading>p,.section-heading>div+div { margin-top:20px; }
  .focus-grid h3 { margin-bottom:12px; }
  .market-summary { padding-bottom:48px; }
  .market-summary p { margin-top:20px; }
  .market-symbol small { padding-left:18px; }
  .cta { padding-block:48px; }
  .cta-inner { gap:26px; }
  .footer-main { gap:28px 20px; }
  .footer-contact>span { font-size:13px; }
  .page-intro { padding-top:40px; padding-bottom:36px; }
  .page-about .page-intro .lead { padding-top:0; }
  .visual-intro-inner { padding-top:40px; gap:20px; }
  .connection-art { height:auto; gap:14px; }
  .connection-art img { max-height:none; height:auto; }
  .connection-art figcaption { font-size:13px; }
  .criteria { padding-top:48px; }
  .criteria-grid article { padding-block:24px; }
  .contact-links strong { font-size:22px; }
  .page-contact .statement { padding-top:48px; }
}

.enquiry-panel fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:18px}
.enquiry-panel fieldset:disabled{display:none}
.form-fallback{padding:18px;border:1px solid var(--rule);background:#fff}
.form-fallback[hidden]{display:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.role-icon{display:block;margin-bottom:22px}
.not-found{min-height:50vh;padding-bottom:88px}
.product-art img[src*="sinovidol"]{max-width:518px;margin-inline:auto}

.contact-map{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:64px;align-items:center;padding-top:64px;padding-bottom:64px;border-top:1px solid var(--rule)}
.contact-map h2{font-size:32px;line-height:1.2;margin:0 0 24px}
.contact-map address{font-style:normal;white-space:pre-line;font-size:17px;line-height:1.8;margin-bottom:28px}
.contact-map iframe{display:block;width:100%;height:420px;border:1px solid var(--rule);background:var(--mist,#f3f6f7)}
@media(max-width:900px){.contact-map{grid-template-columns:1fr;gap:32px;padding-top:40px;padding-bottom:40px}.contact-map iframe{height:360px}}
@media(max-width:500px){.contact-map h2{font-size:28px}.contact-map iframe{height:320px}}
