/* Keep the legacy gradient first for Safari 15.5 and other older browsers. */
@font-face {
  font-family:"Bebas Neue";
  src:url("./bebas-neue.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"HarmonyOS Sans";
  src:url("./harmonyos-sans-regular.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"HarmonyOS Sans";
  src:url("./harmonyos-sans-light.ttf") format("truetype");
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"HarmonyOS Sans";
  src:url("./harmonyos-sans-thin.ttf") format("truetype");
  font-weight:100;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"HarmonyOS Sans SC";
  src:url("./harmonyos-sans-sc-regular.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Inter";
  src:url("./inter-light.woff2") format("woff2");
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Butler";
  src:url("./butler-light.otf") format("opentype");
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Butler";
  src:url("./butler-regular.otf") format("opentype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

:root {
  --u:calc(100vw / 1920);
  --ink:#000;
  --navy:#001526;
  --blue:#034071;
  --teal:#1db4bf;
  --muted:#687781;
  --paper:#f3f6f9;
  --line:#c7c7c7;
  --heading:"Bebas Neue",sans-serif;
  --body:"HarmonyOS Sans","HarmonyOS Sans SC",Arial,sans-serif;
  --serif:"Butler","Times New Roman",serif;
  --badge:"Inter",Arial,sans-serif;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:var(--body); font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; }
button,input,textarea,select { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
a { color:inherit; text-decoration:none; }
button { color:inherit; cursor:pointer; }
button:disabled { cursor:default; }
img,svg { display:block; max-width:100%; }
img { width:100%; height:100%; object-fit:cover; }
picture { display:block; width:100%; height:100%; }
h1,h2,h3,p,ul,ol,dl,dd { margin:0; }
h1,h2,h3 { font-family:var(--heading); font-weight:400; }
p { overflow-wrap:break-word; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #d7a55c; outline-offset:5px; }
::selection { color:#fff; background:#295987; }
.sr-only { position:absolute; left:0; top:0; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:12px; left:16px; z-index:100; transform:translateY(-200%); background:#fff; color:#001526; padding:12px 20px; }
.skip-link:focus { transform:translateY(0); }
.container { width:calc(1520 * var(--u)); margin-inline:auto; }
.section { position:relative; }
.text-link { display:inline-flex; align-items:center; gap:12px; }
.button { display:inline-flex; justify-content:center; align-items:center; border:1px solid currentColor; border-radius:999px; padding:8px 22px; gap:16px; }
.button-dark { color:#fff; border-color:transparent; background:linear-gradient(90deg,#1db4bf,#0052ff); background:linear-gradient(90deg in srgb,#1db4bf,#0052ff); }
.button-light { color:#fff; background:transparent; }
.pending-download { opacity:.65; }

/* Preview tools stay outside the page's measured design geometry. */
.preview-bar { position:fixed; z-index:90; left:16px; bottom:16px; display:flex; align-items:center; gap:14px; padding:8px 9px 8px 14px; border:1px solid #ffffff50; border-radius:6px; color:#fff; background:#001526e6; font:12px/1.4 var(--body); box-shadow:0 2px 12px #0002; }
.preview-bar button { display:grid; place-items:center; width:28px; height:28px; padding:0; color:#fff; background:transparent; border:0; font-size:22px; line-height:1; }

/* The original six artboards place the header over the first 1000px image. */
.site-header { position:absolute; z-index:20; left:0; right:0; top:0; height:calc(140 * var(--u)); color:#fff; background:transparent; }
.brand { position:absolute; left:calc(102 * var(--u)); top:calc(55 * var(--u)); width:calc(317 * var(--u)); height:calc(30 * var(--u)); }
.brand-logo { width:100%; height:100%; object-fit:contain; object-position:left center; }
.site-nav { position:absolute; left:calc(1018 * var(--u)); top:calc(60 * var(--u)); width:calc(802 * var(--u)); height:calc(20 * var(--u)); font-size:calc(16 * var(--u)); line-height:calc(20 * var(--u)); font-weight:400; letter-spacing:.05em; }
.site-nav>a,.site-nav>.nav-segments { position:absolute; top:0; white-space:nowrap; }
.nav-segments { left:0; }
.nav-segments-toggle { display:flex; align-items:center; gap:calc(10 * var(--u)); list-style:none; cursor:pointer; }
.nav-segments-toggle::-webkit-details-marker { display:none; }
.nav-segments-chevron { flex:none; width:calc(10 * var(--u)); height:calc(6 * var(--u)); transition:transform .2s; }
.nav-segments[open] .nav-segments-chevron { transform:rotate(180deg); }
.nav-segments-options { position:absolute; left:-16px; top:calc(100% - 1px); width:clamp(280px,calc(420 * var(--u)),420px); max-width:calc(100vw - 48px); padding:8px; border:1px solid #ffffff30; border-radius:4px; color:#fff; background:#001526f5; box-shadow:0 12px 32px #0003; font-size:clamp(14px,calc(16 * var(--u)),16px); line-height:1.5; letter-spacing:0; white-space:normal; }
.nav-segments-options:before { content:""; position:absolute; top:-1px; right:0; left:0; height:1px; }
.nav-segments-options>a { display:block; padding:12px; border-radius:2px; }
.nav-segments-options>a:hover,.nav-segments-options>a:focus-visible,.nav-segments-options>a[aria-current=page] { background:#ffffff14; }
.nav-products { left:calc(185 * var(--u)); }
.nav-esg { left:calc(370 * var(--u)); }
.nav-about { left:calc(501 * var(--u)); }
.language-switch { position:absolute; left:calc(701 * var(--u)); top:0; width:calc(102 * var(--u)); font-size:calc(16 * var(--u)); letter-spacing:0; }
.language-current,.language-switch summary { display:flex; align-items:center; gap:calc(10 * var(--u)); white-space:nowrap; list-style:none; }
.language-switch summary { cursor:pointer; }
.language-switch summary::-webkit-details-marker { display:none; }
.language-switch img { width:calc(20 * var(--u)); height:calc(20 * var(--u)); flex:none; object-fit:contain; }
.language-switch img.language-chevron { width:calc(10 * var(--u)); height:calc(6 * var(--u)); }
.language-options { position:absolute; right:0; top:calc(100% - 1px); min-width:120px; padding:10px 16px; color:#fff; background:#001526e8; border:1px solid #ffffff30; border-radius:4px; font-size:14px; line-height:2; }
.language-options>a,.language-options>span { display:block; }
.menu-toggle { display:none; }

/* Shared hero geometry. Individual artboards override crop/offsets in page CSS. */
.hero { position:relative; isolation:isolate; height:calc(1000 * var(--u)); overflow:hidden; color:#fff; background:#001526; }
.hero-art,.hero-slide { position:absolute; inset:0; }
.hero-art { z-index:-2; overflow:hidden; }
.hero-art:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#001526e6 0%,#001526b0 23.4719%,#0015261a 61.4848%); background:linear-gradient(90deg in srgb,#001526e6 0%,#001526b0 23.4719%,#0015261a 61.4848%); }
.hero-slide { isolation:isolate; }
.hero-content { position:absolute; left:calc(102 * var(--u)); top:calc(247 * var(--u)); margin:0; padding:0; width:auto; max-width:calc(1716 * var(--u)); z-index:1; }
.hero-content h1,.hero-content .news-hero-title { margin:0; max-width:none; font:400 calc(150 * var(--u))/calc(130 * var(--u)) var(--heading); letter-spacing:0; text-transform:uppercase; white-space:pre-line; color:transparent; background:linear-gradient(180deg,#fff,#ffffff00) 0 0 / 100% calc(130 * var(--u)) repeat-y; background:linear-gradient(180deg in srgb,#fff,#ffffff00) 0 0 / 100% calc(130 * var(--u)) repeat-y; -webkit-background-clip:text; background-clip:text; }
.hero-kicker { position:absolute; top:calc(-43 * var(--u)); left:0; font:300 calc(24 * var(--u))/calc(30 * var(--u)) var(--serif); white-space:pre-line; }
.hero-subtitle { margin-top:calc(18 * var(--u)); font:300 calc(36 * var(--u))/calc(44 * var(--u)) var(--serif); letter-spacing:.05em; white-space:pre-line; }
.hero-translation { margin-top:calc(18 * var(--u)); font:400 calc(32 * var(--u))/calc(40 * var(--u)) var(--body); letter-spacing:.15em; white-space:pre-line; }
.hero-year { font-family:var(--serif); font-weight:300; font-size:calc(220 * var(--u)); font-style:italic; line-height:1; color:#e7d3af; }
.hero-badge { position:relative; width:calc(307 * var(--u)); height:calc(159 * var(--u)); margin-top:calc(48 * var(--u)); }
.badge-laurel { position:absolute; inset:0 auto auto 0; width:100%; height:calc(117 * var(--u)); object-fit:fill; }
.badge-copy { position:absolute; left:calc(45 * var(--u)); right:calc(45 * var(--u)); top:0; color:#fff; text-align:center; font:300 calc(24 * var(--u))/calc(30 * var(--u)) var(--badge); white-space:pre-line; }
.badge-year { position:absolute; top:calc(129 * var(--u)); left:0; right:0; color:#fff; text-align:center; font:400 calc(24 * var(--u))/calc(29 * var(--u)) var(--serif); letter-spacing:.05em; }
.hero-bottom { position:absolute; left:0; right:0; bottom:calc(60 * var(--u)); display:flex; justify-content:center; z-index:2; }
.hero-pagination { display:flex; align-items:center; gap:calc(20 * var(--u)); }
.hero-pagination button[data-hero-go] { position:relative; display:block; flex:none; width:calc(80 * var(--u)); height:24px; padding:0; border:0; color:transparent; background:transparent; }
.hero-pagination button[data-hero-go]:after { content:""; position:absolute; left:0; right:0; top:50%; height:calc(4 * var(--u)); min-height:2px; border-radius:999px; background:#fff3; }
.hero-pagination button[aria-pressed=true]:after { background:linear-gradient(90deg,#1db4bf,#295987); background:linear-gradient(90deg in srgb,#1db4bf,#295987); }
.hero-pagination [data-hero-pause] { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
.hero-pagination [data-hero-pause]:focus-visible { position:relative; width:32px; height:32px; clip-path:none; background:#001526; border:1px solid #fff; color:#fff; }

/* Media pending states remain explicit; decorative backgrounds need no placeholder. */
.visual { position:relative; overflow:hidden; }
.has-background-image { position:relative; isolation:isolate; overflow:hidden; }
.section-background { position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.placeholder-art,.placeholder-scene { position:absolute; inset:0; overflow:hidden; background:#e7eef1; color:#425d69; }
.placeholder-scene { background:#234b61; color:#fff; }
.asset-label { position:absolute; bottom:20px; left:20px; padding:5px 8px; font:10px/1.4 var(--body); letter-spacing:.12em; color:inherit; background:#ffffff1f; }
.placeholder-ring { position:absolute; width:65%; aspect-ratio:1; border:1px solid #7599aa55; border-radius:50%; left:35%; top:25%; }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:calc(40 * var(--u)); }
.metric-number { font:400 calc(80 * var(--u))/1 var(--heading); }
.metric-number span { margin-left:calc(5 * var(--u)); }
.metric p { white-space:pre-line; }
.carousel-controls { display:flex; gap:calc(20 * var(--u)); }
.carousel-controls button { display:grid; place-items:center; width:calc(50 * var(--u)); height:calc(50 * var(--u)); padding:0; border:0; border-radius:50%; color:#fff; background:#a2b5cb; font:400 calc(32 * var(--u))/1 var(--body); }
.carousel-controls button:disabled { opacity:.45; }
.form-status.is-error,.field-error { color:#a12727; }
.form-status.is-success { color:#137757; }
.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

/* Render the original SVG filters before clipping: off-canvas shapes supply the blue glow. */
.site-footer { position:relative; height:calc(800 * var(--u)); min-height:0; overflow:hidden; color:#fff; background:#000 url("./design-footer-glow.svg") center / 100% 100% no-repeat; }
.footer-contact { position:absolute; left:calc(307 * var(--u)); top:calc(120 * var(--u)); width:calc(350 * var(--u)); }
.footer-brand { display:block; width:calc(64 * var(--u)); height:calc(43 * var(--u)); }
.footer-brand img { object-fit:contain; }
.footer-details { margin-top:calc(57.5 * var(--u)); font-size:calc(16 * var(--u)); line-height:calc(24 * var(--u)); }
.footer-details>div { margin-bottom:calc(17.5 * var(--u)); }
.footer-details dd { margin-top:calc(5 * var(--u)); }
.footer-details address { padding-top:calc(2.5 * var(--u)); font-style:normal; line-height:calc(22 * var(--u)); white-space:pre-line; }
.footer-column { position:absolute; top:calc(154.5 * var(--u)); }
.footer-segments { left:calc(801 * var(--u)); width:calc(530 * var(--u)); }
.footer-products { left:calc(1437 * var(--u)); width:calc(260 * var(--u)); }
.footer-column h2 { font:400 calc(24 * var(--u))/calc(29 * var(--u)) var(--body); }
.footer-column ul { padding:0; margin-top:calc(29.5 * var(--u)); list-style:none; font-size:calc(16 * var(--u)); line-height:calc(39 * var(--u)); }
.footer-column li { white-space:nowrap; }
.site-footer a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-copyright { position:absolute; left:calc(250 * var(--u)); right:calc(250 * var(--u)); bottom:calc(57.5 * var(--u)); text-align:center; font-size:calc(16 * var(--u)); line-height:calc(24 * var(--u)); letter-spacing:.05em; }
.notfound { min-height:70vh; padding:180px 8vw 100px; color:#fff; background:#001526; }
.notfound h1 { margin:25px 0; font-size:clamp(50px,7vw,110px); line-height:1; }

@media(max-width:1023px) {
  .container { width:calc(100% - 48px); }
  .preview-bar { max-width:calc(100vw - 32px); padding-block:0; }
  .preview-bar button { flex:none; width:44px; height:44px; }
  .site-header { height:90px; }
  .brand { left:24px; top:27px; width:min(265px,calc(100vw - 110px)); height:30px; }
  .menu-toggle { position:absolute; right:20px; top:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; width:44px; height:44px; padding:10px; border:1px solid #ffffff60; background:#00152633; }
  .menu-toggle>span:not(.sr-only) { display:block; width:20px; height:1px; background:#fff; transition:transform .2s; }
  .menu-toggle[aria-expanded=true]>span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded=true]>span:nth-child(2) { transform:translateY(-4px) rotate(-45deg); }
  .site-nav { position:absolute; top:76px; left:20px; width:calc(100% - 40px); height:auto; max-height:calc(100vh - 96px); max-height:calc(100dvh - 96px); overflow-y:auto; overscroll-behavior:contain; padding:14px 22px; border:1px solid #ffffff33; background:#001526f5; font-size:16px; line-height:1.5; }
  .js .site-nav { display:none; }
  .js .site-nav.is-open { display:block; }
  .site-nav>a { position:static; display:block; padding:12px 0; border-bottom:1px solid #ffffff20; }
  .site-nav>.nav-segments { position:static; border-bottom:1px solid #ffffff20; }
  .nav-segments-toggle { justify-content:space-between; gap:10px; min-height:48px; padding:12px 0; }
  .nav-segments-chevron { width:10px; height:6px; }
  .nav-segments-options { position:static; width:auto; max-width:none; margin:0 0 12px; padding:0 0 0 12px; border:0; border-left:1px solid #ffffff40; border-radius:0; background:transparent; box-shadow:none; font-size:14px; }
  .nav-segments-options:before { display:none; }
  .nav-segments-options>a { min-height:44px; padding:10px 12px; }
  .language-switch { position:relative; top:auto; left:auto; width:auto; padding:14px 0 5px; font-size:14px; }
  .language-current,.language-switch summary { gap:10px; }
  .language-switch summary,.language-options>a { min-height:44px; }
  .language-options>a { display:flex; align-items:center; }
  .language-switch img { width:20px; height:20px; }
  .language-switch img.language-chevron { width:10px; height:6px; }
  .language-options { position:relative; top:auto; left:auto; margin-top:10px; }
  .hero { height:auto; min-height:640px; }
  .hero-content { position:relative; left:auto; top:auto; width:calc(100% - 48px); max-width:none; margin:0 24px; padding:165px 0 90px; }
  .hero-content h1,.hero-content .news-hero-title { font-size:clamp(54px,10vw,100px); line-height:.92; background-size:100% .92em; overflow-wrap:break-word; }
  .hero-kicker { top:125px; font-size:20px; line-height:26px; }
  .hero-subtitle { margin-top:18px; font-size:26px; line-height:1.2; }
  .hero-translation { margin-top:18px; font-size:17px; line-height:1.5; letter-spacing:1px; }
  .hero-year { font-size:130px; }
  .hero-badge { width:220px; height:114px; margin-top:32px; }
  .badge-laurel { height:84px; }
  .badge-copy { top:4px; left:33px; right:33px; font-size:17px; line-height:20px; }
  .badge-year { top:90px; font-size:17px; line-height:20px; }
  .hero-bottom { bottom:22px; }
  .hero-pagination { gap:12px; }
  .hero-pagination button[data-hero-go] { width:44px; height:44px; }
  .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; }
  .metric-number { font-size:60px; }
  .carousel-controls { gap:14px; }
  .carousel-controls button { width:44px; height:44px; font-size:28px; }
  .site-footer { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:42px 24px; height:auto; padding:70px 24px 36px; background-size:auto 100%; background-position:center bottom; }
  .footer-contact,.footer-column,.footer-copyright { position:static; width:auto; min-width:0; }
  .footer-contact { grid-column:1/-1; }
  .footer-brand { width:64px; height:43px; }
  .footer-details { margin-top:32px; max-width:340px; font-size:14px; line-height:22px; }
  .footer-details>div { margin-bottom:16px; }
  .footer-details dd { margin-top:4px; overflow-wrap:anywhere; }
  .footer-details address { padding-top:0; line-height:22px; }
  .footer-column h2 { font-size:20px; line-height:26px; }
  .footer-column ul { margin-top:20px; font-size:13px; line-height:1.6; }
  .footer-column li { margin-bottom:13px; white-space:normal; }
  .footer-column li>a { display:flex; align-items:center; min-height:44px; }
  .footer-copyright { grid-column:1/-1; padding-top:90px; font-size:12px; line-height:1.6; letter-spacing:.1px; }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
