* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body { margin: 0; font-family: "Segoe UI", Arial, sans-serif; color: #252d34; background: #fff; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
.container { width: min(1200px, calc(100% - 64px)); margin: 0 auto; }
.service-bar { min-height: 36px; display: flex; align-items: center; font-size: 12px; }
.service-inner, .header-inner, .nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.service-links, .main-nav, .header-tools { display: flex; align-items: center; gap: 22px; }
.header-tools { gap: 14px; }
.service-links a, .main-nav a { white-space: nowrap; }
.site-header { min-height: 118px; display: flex; align-items: center; }
.official-brand { display: flex; align-items: center; gap: 24px; flex: 1 1 auto; min-width: 0; }
.official-mark { position: relative; width: 96px; height: 96px; flex: 0 0 96px; color: currentColor; --logo-bg: #fff; }
.official-mark .ray { position: absolute; left: 50%; top: 50%; width: 39px; height: 3px; border-radius: 3px; background: currentColor; transform-origin: 0 50%; transform: rotate(var(--ray-angle)) translateX(15px); }
.official-mark .ray::after { content: ""; position: absolute; right: -9px; top: 50%; width: 15px; height: 15px; border: 3px solid currentColor; border-radius: 50%; background: var(--logo-bg); transform: translateY(-50%); }
.official-mark .ray:nth-child(1) { --ray-angle: 0deg; }
.official-mark .ray:nth-child(2) { --ray-angle: 45deg; }
.official-mark .ray:nth-child(3) { --ray-angle: 90deg; }
.official-mark .ray:nth-child(4) { --ray-angle: 135deg; }
.official-mark .ray:nth-child(5) { --ray-angle: 180deg; }
.official-mark .ray:nth-child(6) { --ray-angle: 225deg; }
.official-mark .ray:nth-child(7) { --ray-angle: 270deg; }
.official-mark .ray:nth-child(8) { --ray-angle: 315deg; }
.official-core { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; place-items: center; width: 66px; height: 31px; border: 2px solid currentColor; border-radius: 50%; background: var(--logo-bg); transform: translate(-50%,-50%); font: 800 12px/1 Georgia,"Times New Roman",serif; letter-spacing: .03em; }
.official-title { display: block; max-width: 820px; font: 22px/1.34 Georgia,"Times New Roman",serif; }
.official-title strong { font-weight: 400; }
.brand { display: flex; align-items: center; gap: 15px; min-width: 300px; }
.brand-name { display: block; font-size: 30px; line-height: 1; font-weight: 700; letter-spacing: -.03em; }
.brand-sub { display: block; max-width: 310px; margin-top: 6px; font-size: 11px; line-height: 1.35; letter-spacing: .045em; text-transform: uppercase; }
.brand-mark { width: 48px; height: 48px; flex: 0 0 auto; position: relative; }
.site-nav { min-height: 54px; display: flex; align-items: center; }
.main-nav { font-size: 14px; font-weight: 650; }
.search-button { width: 40px; height: 40px; display: grid; place-items: center; color: inherit; border: 0; background: transparent; }
.search-icon { width: 17px; height: 17px; border: 2px solid currentColor; border-radius: 50%; position: relative; }
.search-icon::after { content: ""; position: absolute; width: 7px; height: 2px; background: currentColor; right: -6px; bottom: -3px; transform: rotate(45deg); }
.language-switcher { position: relative; z-index: 40; }
.language-switcher summary { min-width: 82px; height: 40px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 0 12px; border: 1px solid rgba(120,135,145,.42); border-radius: 20px; cursor: pointer; font-size: 12px; font-weight: 750; letter-spacing: .04em; list-style: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher summary:hover,.language-switcher[open] summary { border-color: currentColor; background: rgba(120,135,145,.1); }
.language-switcher summary:active { transform: scale(.97); }
.language-icon { position: relative; width: 15px; height: 15px; border: 1.5px solid currentColor; border-radius: 50%; }
.language-icon::before,.language-icon::after { content:""; position:absolute; inset:2px 5px; border-left:1px solid currentColor; border-right:1px solid currentColor; border-radius:50%; }
.language-icon::after { inset:6px 1px auto; height:1px; border:0; border-top:1px solid currentColor; border-radius:0; }
.language-chevron { width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; }
.language-switcher[open] .language-chevron { transform:rotate(225deg) translate(-1px,-1px); }
.language-menu { position:absolute; top:calc(100% + 9px); right:0; width:196px; padding:7px; color:#27343d; border:1px solid #dce4e8; border-radius:12px; background:#fff; box-shadow:0 18px 44px rgba(27,43,53,.18); }
.language-menu a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:39px; padding:0 11px; border-radius:8px; font-size:13px; transition:background .18s ease, color .18s ease; }
.language-menu a:hover,.language-menu a[aria-current="page"] { color:#087bb7; background:#eef7fb; }
.language-menu small { font-size:10px; font-weight:800; letter-spacing:.08em; opacity:.65; }
.section { padding: 68px 0; }
.section-tight { padding: 48px 0; }
.eyebrow { margin: 0 0 16px; font-size: 12px; line-height: 1.2; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 30px; }
.section-head h2 { margin: 0; max-width: 760px; font-size: 40px; line-height: 1.08; letter-spacing: -.035em; }
.section-head p { max-width: 430px; margin: 0; font-size: 16px; line-height: 1.6; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border-radius: 4px; font-size: 14px; font-weight: 700; }
.button-outline { background: transparent; border: 1px solid currentColor; }
.arrow-link { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; }
.arrow-link::after { content: "\2192"; font-size: 19px; }
.meta { font-size: 12px; line-height: 1.45; }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.news-card { min-height: 290px; display: flex; flex-direction: column; padding: 28px; }
.news-card .news-type { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.news-card h3 { margin: auto 0 14px; font-size: 24px; line-height: 1.2; }
.news-card p { margin: 0; font-size: 13px; line-height: 1.5; }
.news-card .news-date { display: block; margin-top: 22px; font-size: 12px; }
.news-card .news-more { align-self:flex-start; display:inline-flex; align-items:center; justify-content:center; min-height:38px; margin-top:18px; padding:0 17px; border:1px solid currentColor; border-radius:3px; font-size:12px; font-weight:750; }
.footer { padding: 48px 0 26px; }
.footer-top { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 44px; padding-bottom: 40px; }
.footer-title { margin: 0 0 17px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.footer-list { display: grid; gap: 11px; font-size: 13px; line-height: 1.4; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 22px; border-top: 1px solid currentColor; font-size: 11px; opacity: .72; }
.footer .official-brand { align-items: flex-start; gap: 14px; }
.footer .official-mark { width: 58px; height: 58px; flex-basis: 58px; --logo-bg: #1c252b; }
.footer .official-mark .ray { width: 23px; height: 2px; transform: rotate(var(--ray-angle)) translateX(10px); }
.footer .official-mark .ray::after { right: -6px; width: 9px; height: 9px; border-width: 2px; }
.footer .official-core { width: 42px; height: 20px; font-size: 8px; border-width: 1px; }
.footer .official-title { max-width: 320px; white-space: nowrap; font: 11px/1.45 "Segoe UI",Arial,sans-serif; }
.structure-link { display:block; border-radius:5px; transition:color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; }
.structure-link:hover,.structure-link:focus-visible { transform:translateX(3px); }
.motion-enabled .reveal-ready { opacity:0; transform:translateY(18px); transition:opacity .65s ease, transform .65s cubic-bezier(.22,.61,.36,1); }
.motion-enabled .reveal-ready.is-visible { opacity:1; transform:none; }
.hero .hero-image,.hero .hero-lab { animation:photo-in .8s cubic-bezier(.22,.61,.36,1) both; }
.hero .hero-lab { animation-delay:.16s; }
.hero .hero-image img,.hero .hero-lab img,.history-photo img { transition:transform .7s cubic-bezier(.22,.61,.36,1); }
.hero .hero-image:hover img,.hero .hero-lab:hover img,.history-photo:hover img { transform:scale(1.035); }
@keyframes photo-in { from { opacity:0; transform:translateY(16px) scale(.985); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .motion-enabled .reveal-ready,.motion-enabled .reveal-ready.is-visible,.hero .hero-image,.hero .hero-lab { opacity:1; transform:none; animation:none; transition:none; }
  .hero .hero-image img,.hero .hero-lab img,.history-photo img,.structure-link { transition:none; }
}
@media (max-width: 900px) {
  .container { width: min(100% - 32px, 720px); }
  .service-links, .main-nav { flex-wrap: wrap; gap: 10px 16px; }
  .site-nav { padding: 12px 0; }
  .header-tools { display: none; }
  .official-title { font-size: 17px; }
  .section-head { display: block; }
  .section-head p { margin-top: 18px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .news-grid { grid-template-columns: 1fr; }
}
