@font-face { font-family: 'Oswald'; font-style: normal; font-weight: 200 700; font-display: swap; src: url(/assets/fonts/oswald-latin.woff2) format('woff2'); }
:root {
  --red: #ff0000;
  --ink: #000;
  --grey: #f0f0f0;
  --head: 'Oswald', 'Arial Narrow', sans-serif;
  --body: 'Avenir Next', Avenir, 'Nunito Sans', 'Helvetica Neue', Arial, sans-serif;
  --gutter: clamp(16px, 4vw, 40px);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--ink); font: 400 14px/1.75 var(--body); }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--head); font-weight: 300; line-height: 1.2; margin: 0; }
p { margin: 0; }
.center { text-align: center; }
.dash::after { content: ''; display: block; width: 8px; height: 2px; background: currentColor; margin: 12px auto 0; }
.dash-left::after { margin-left: 0; }

/* 头部 */
.site-header { background: #fff; position: relative; z-index: 10; }
.header-inner { max-width: 1060px; margin: 0 auto; padding: 26px var(--gutter) 10px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px 20px; }
.brand { font: 300 clamp(20px, 2vw, 26px)/1.2 var(--head); text-decoration: none; letter-spacing: .01em; }
.site-nav { grid-column: 1 / -1; justify-self: center; display: flex; gap: 22px; padding: 14px 0 6px; }
.site-nav a { font: 700 10px/1 var(--body); letter-spacing: .06em; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current] { color: var(--red); }
.menu-toggle { display: none; }
@media (max-width: 640px) {
  .menu-toggle { display: grid; gap: 5px; background: none; border: 0; padding: 8px; cursor: pointer; }
  .menu-toggle span { display: block; width: 24px; height: 2px; background: var(--ink); }
  .site-nav { display: none; flex-direction: column; gap: 0; justify-self: stretch; }
  .nav-open .site-nav { display: flex; }
  .site-nav a { font-size: 13px; padding: 12px 0; border-top: 1px solid var(--grey); }
}

/* 页脚 */
.site-footer { background: #000; color: #fff; padding: 50px var(--gutter) 30px; margin-top: 80px; }
.footer-inner { max-width: 800px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.footer-name { font: 300 26px/1.2 var(--head); margin-bottom: 14px; }
.site-footer address, .footer-contact { font-style: normal; font-size: 12px; line-height: 1.7; }
.footer-contact a { text-decoration: none; }
.copyright { text-align: center; font-size: 11px; margin-top: 50px; }
@media (max-width: 560px) { .footer-inner { grid-template-columns: 1fr; } }

/* 通用 */
.section-head { max-width: 560px; margin: 0 auto; text-align: center; padding: 60px var(--gutter) 0; }
.section-head h1, .section-head h2 { font-size: clamp(26px, 2.8vw, 40px); }
.section-head p { font-size: 13px; margin-top: 18px; }
.more-btn { display: inline-block; border: 1px solid #000; font: 700 10px/1 var(--body); letter-spacing: .06em; padding: 7px 16px; text-decoration: none; margin-top: 30px; }
.more-btn:hover { background: #000; color: #fff; }
.big-num { font: 300 clamp(70px, 9.7vw, 140px)/1 var(--head); color: var(--red); }
.deco { position: absolute; inset: 0; background: center / 100% auto no-repeat; pointer-events: none; z-index: -1; }
.rel { position: relative; isolation: isolate; }

/* 首页 */
.home-hero img { width: 100%; height: clamp(320px, 57vw, 820px); object-fit: cover; }
.feature { max-width: 900px; margin: 120px auto 0; padding: 0 var(--gutter); display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.feature.flip .pics { order: 2; }
.pics { position: relative; height: 560px; }
.pics img { position: absolute; width: 58%; object-fit: cover; }
.pics img:first-child { top: 0; right: 0; aspect-ratio: 360 / 380; }
.pics img:last-child { bottom: 0; left: 0; aspect-ratio: 363 / 360; }
.feature.flip .pics img:first-child { left: 0; right: auto; }
.feature.flip .pics img:last-child { right: 0; left: auto; }
.feature h2 { font-size: clamp(24px, 2.2vw, 30px); margin-top: 8px; }
.feature p { font-size: 12px; margin-top: 26px; max-width: 320px; }
.facilities { padding-top: 100px; }
.facility-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 50px; }
.facility-grid img { width: 100%; aspect-ratio: 577 / 432; object-fit: cover; }
@media (max-width: 760px) {
  .feature { grid-template-columns: 1fr; margin-top: 70px; }
  .feature.flip .pics { order: 0; }
  .pics { height: 360px; }
  .facility-grid { grid-template-columns: repeat(2, 1fr); }
}

/* About */
.about-img img { width: min(980px, 100%); margin: 50px auto 0; aspect-ratio: 980 / 330; object-fit: cover; }
.testimonial { background: var(--grey); margin-top: 90px; padding: 90px var(--gutter); text-align: center; }
.testimonial h2 { font-size: clamp(22px, 2.2vw, 30px); }
.testimonial blockquote { max-width: 620px; margin: 30px auto 0; font-size: 13px; }
.testimonial cite { display: block; color: var(--red); font-style: normal; font-size: 12px; margin-top: 30px; }
.about-name { text-align: center; font-size: clamp(24px, 2.4vw, 34px); margin-top: 80px; }

/* Activities */
.act-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 70px; }
.act-grid img { width: 100%; height: 100%; aspect-ratio: 360 / 500; object-fit: cover; }
.act { padding: 40px clamp(14px, 2vw, 34px); }
.act h2 { font-size: 22px; }
.act p { font-size: 12px; margin-top: 24px; }
@media (max-width: 900px) { .act-grid { grid-template-columns: repeat(2, 1fr); } }

/* Location */
.map-row { max-width: 980px; margin: 50px auto 0; display: grid; grid-template-columns: 1fr 1fr; padding: 0 var(--gutter); }
.map-row img, .map-row iframe { width: 100%; aspect-ratio: 490 / 430; object-fit: cover; border: 0; height: 100%; }
.way { max-width: 980px; margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.way img { width: 100%; aspect-ratio: 490 / 430; object-fit: cover; }
.way .txt { padding: 30px clamp(16px, 4vw, 50px); }
.way.flip img { order: 2; }
.way h2 { font-size: 26px; }
.way p { font-size: 12px; margin-top: 28px; }
.contact-block { max-width: 420px; margin: 0 auto; padding: 0 var(--gutter); }
.contact-form { display: grid; gap: 10px; margin-top: 40px; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid #000; font: 12px var(--body); padding: 6px 10px; border-radius: 0; }
.contact-form textarea { min-height: 110px; }
.contact-form button { justify-self: center; background: #000; color: #fff; border: 0; font: 700 11px var(--body); padding: 10px 26px; cursor: pointer; }
.hub-status { font-size: 13px; text-align: center; }
@media (max-width: 640px) { .map-row, .way { grid-template-columns: 1fr; } .way.flip img { order: 0; } }

/* Careers */
.jobs { max-width: 900px; margin: 0 auto; padding: 50px var(--gutter) 0; }
.jobs h1 { font-size: clamp(30px, 3vw, 42px); font-weight: 400; margin-bottom: 30px; }
.job { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 36px; font-size: 14px; line-height: 1.8; }
.job b { font-weight: 700; }
.apply { background: var(--red); color: #fff; text-decoration: none; font-size: 11px; padding: 6px 42px; }
.apply:hover { background: #c00; }
.job-page { max-width: 900px; margin: 0 auto; padding: 50px var(--gutter) 0; font-size: 14px; line-height: 1.8; }
.job-page h1 { font-size: clamp(26px, 2.6vw, 36px); font-weight: 400; margin-bottom: 30px; }
.job-page h2 { font: 700 14px var(--body); margin-top: 24px; }
.job-page ul { margin: 6px 0 0; padding-left: 22px; }
.job-page p + p { margin-top: 14px; }

/* 编号覆盖各区块的段落样式 */
.feature .big-num, .act .big-num, .way .big-num { font: 300 clamp(60px, 7vw, 100px)/1 var(--head); color: var(--red); margin: 0 0 8px; max-width: none; }
.feature { max-width: 1060px; }
.pics { height: 640px; }
.pics img { width: 72%; }
@media (max-width: 760px) { .pics { height: 420px; } }
